Skip to content

Agent Tools

The agent has access to built-in tools from the Claude Agent SDK plus 21 custom tools provided by Starpod.

Built-in Tools

These come from the agent-sdk and provide core capabilities:

ToolDescription
ReadRead a file from disk
WriteWrite content to a file
EditMake targeted edits to a file
BashExecute shell commands
GlobFind files by pattern
GrepSearch file contents with regex
WebSearchSearch the web
WebFetchFetch a URL

The Bash tool supports run_in_background: true for long-running processes (servers, watchers, etc.) that shouldn't block the agent.

Custom Tools

Memory

ToolInputDescription
MemorySearchquery, limitFull-text search across all memory files
MemoryWritefile, contentWrite or update a memory/knowledge file
MemoryAppendDailytextAppend to today's daily log

Environment

ToolInputDescription
EnvGetkeyLook up an environment variable by key

Environment variables from the vault are injected into the process at serve time, making them available both through EnvGet and as real env vars in Bash/SSH commands. The system prompt lists which vars are available. System keys (LLM provider keys, service tokens) are blocked by EnvGet and stripped from Bash child processes.

Files

ToolInputDescription
FileReadpathRead a file from the agent's filesystem sandbox
FileWritepath, contentWrite a file to the agent's filesystem sandbox
FileListpath (optional)List files and directories in the sandbox
FileDeletepathDelete a file from the sandbox
AttachpathAttach a sandbox file for delivery to the user (see below)

Attach

The Attach tool sends a file to the user through their current channel. After the agent generates or locates a file in its sandbox, calling Attach queues it for delivery:

  • Web UI — delivered as a WebSocket attachment message; images render inline, other files show as download links.
  • Telegram — images sent via send_photo, everything else via send_document.
  • CLI — files remain in the sandbox (already accessible on disk).

The tool validates sandbox paths the same way FileRead does (no .. traversal, no absolute paths, no .starpod/ access). Files must be under 20 MB. MIME type is inferred from the file extension.

Multiple files can be attached in a single turn — they accumulate and are delivered after the agent finishes responding.

Skills

ToolInputDescription
SkillActivatenameLoad a skill's full instructions into context
SkillCreatename, description, bodyCreate a new AgentSkills-compatible skill
SkillUpdatename, description, bodyUpdate an existing skill's description and instructions
SkillDeletenameDelete a skill
SkillListList all active skills

Scheduling

ToolInputDescription
CronAddname, prompt, schedule, delete_after_run, max_retries, timeout_secs, session_modeCreate a scheduled job
CronListList all jobs with next run times
CronRemovenameRemove a job
CronRunsname, limitView execution history
CronRunnameImmediately execute a cron job (manual trigger)
CronUpdatename, prompt, enabled, max_retries, timeout_secs, session_modeUpdate properties of an existing job

Heartbeat

ToolInputDescription
HeartbeatWakemode ("now" or "next"), messageWake the heartbeat system outside its normal cycle

CronAdd Schedule Format

The schedule parameter accepts three formats:

json
{
  "kind": "interval",
  "every_ms": 3600000
}
json
{
  "kind": "cron",
  "expr": "0 0 9 * * MON-FRI"
}
json
{
  "kind": "one_shot",
  "at": "2026-03-14T15:00:00Z"
}

Tool Execution

The agent-sdk drives the agentic loop:

  1. Claude receives the system prompt + conversation history
  2. Claude decides to call one or more tools
  3. The SDK executes the tools and feeds results back to Claude
  4. Claude decides whether to call more tools or respond
  5. Repeats up to max_turns (default: 30)

Custom tools are handled by an external tool handler registered on the Options builder. When Claude calls a tool, the handler checks if it matches a custom tool name. If it does, the handler executes it and returns the result. Otherwise, the SDK's built-in handler runs it.

Released under the MIT License.