Skip to main content
Claurst exposes a rich set of tools for orchestrating work across multiple agents and across time. This page covers agent spawning, task management, team/swarm control, scheduling, and several utility tools.

AgentTool

Spawn a sub-agent that runs its own agentic query loop to complete an independent task. The parent agent waits for the result (synchronous) or receives a task ID immediately (asynchronous/background). Tool name: Agent (alias Task)
When to use AgentTool vs TaskCreateToolUse AgentTool when you want to delegate a complete sub-task to another Claude instance — it gets its own conversation, tool set, and model call budget.Use TaskCreateTool when you want to track a piece of work in the shared task board — a lightweight record with status, description, and dependency links, not a running agent.

Parameters

string
required
3–5 word label for the task, shown in the UI.
string
required
Full task description given to the sub-agent as its initial user message.
string[]
Subset of tool names to make available in the sub-agent. When omitted, the sub-agent inherits the parent’s tool set (minus AgentTool itself, to prevent unbounded recursion).
string
Custom system prompt for the sub-agent. Overrides the default.
integer
Maximum number of turns for the sub-agent (Rust implementation). Defaults to MAX_TURNS_DEFAULT.
string
Model alias to use for the sub-agent: "sonnet", "opus", or "haiku". Defaults to the session model.
boolean
Launch the sub-agent as a background task and return a task ID immediately.
string
Named agent for messaging via SendMessage.
string
Associate this agent with a named team (swarm).
string
Isolation strategy: "worktree" (dedicated git worktree) or "remote" (remote session).

Return value

Synchronous (run_in_background: false):
string
required
"completed" on success.
string
required
Final assistant message from the sub-agent.
Asynchronous (run_in_background: true):
string
required
"async_launched".
string
required
ID of the launched background agent; use with TaskOutputTool to retrieve results.

Example


TaskCreateTool

Create a task record on the shared task board. Returns a task ID for later reference. Tool name: TaskCreate
Gate: Requires isTodoV2Enabled() (V2 task system).

Parameters

string
required
Short title for the task.
string
required
Detailed description of what the task involves.
object
Arbitrary key-value metadata attached to the task.

Return value

object
required

TaskGetTool

Retrieve a task’s current status, description, and dependency information. Tool name: TaskGet
Gate: Requires isTodoV2Enabled().

Parameters

string
required
ID of the task to retrieve.

Return value

object
null if no task with that ID exists.

TaskUpdateTool

Update a task’s status, subject, description, dependencies, or ownership. Tool name: TaskUpdate
Gate: Requires isTodoV2Enabled().

Parameters

string
required
ID of the task to update.
string
New status. Use "deleted" to remove the task entirely. Valid values: "pending", "in_progress", "completed", "failed", "killed", "deleted".
string
Updated title.
string
Updated description.
string[]
Task IDs that this task should now block.
string[]
Task IDs that now block this task.
string
Assign ownership to an agent name.
object
Updated metadata.

Return value

boolean
required
Whether the update succeeded.
string
required
ID of the updated task.
string[]
required
List of field names that changed.
object
Present when status changed: { from, to }.
string
Error message if success is false.

TaskListTool

List all non-deleted tasks in the current session. Tool name: TaskList
Gate: Requires isTodoV2Enabled().
Input: No parameters required.

Return value

object[]
required

TaskStopTool

Stop a running background task (bash task or agent task). Tool name: TaskStop (alias KillShell)

Parameters

string
ID of the task to stop. Returned when a task was launched with run_in_background: true.

Return value

string
required
Confirmation message.
string
required
ID of the stopped task.
string
required
Type of task that was stopped.

Notes

  • The task must be in a non-terminal state (pending or running).
  • In the Rust implementation, stopping a task sets its status to Failed.

TaskOutputTool

Read the output of a background task, optionally blocking until it completes. Tool name: TaskOutput

Parameters

string
required
ID of the task to read output from.
boolean
default:"true"
When true, wait until the task reaches a terminal state before returning.
number
default:"30000"
Maximum wait time in milliseconds when block is true. Range: 0–600 000 ms.

Return value

string
required
"success", "timeout", or "not_ready".
object
null when retrieval_status is not "success".

SendMessageTool

Send a message to a named agent, broadcast to all agents, or route via a Unix domain socket or bridge session. Tool name: SendMessage
Gate: Requires isAgentSwarmsEnabled().

Parameters

string
required
Recipient address:
  • Agent name (in-process or mailbox)
  • "*" to broadcast to all agents
  • "uds:<path>" for a Unix domain socket
  • "bridge:<session-id>" for a cross-machine bridge (requires user consent)
string
required
Message text, or a structured message object. Structured types:
  • { type: "shutdown_request", reason?: string }
  • { type: "shutdown_response", status: "ok" | "error", message?: string }
  • { type: "plan_approval_response", approved: boolean, comment?: string, requestId: string }
string
Short summary shown in the UI activity feed.

Notes

  • Bridge messages (bridge:<session-id>) always require explicit user approval regardless of permission mode.
  • In the Rust implementation, messages are delivered to the INBOX in-memory store; broadcast (*) delivers to all current recipients.

CronCreateTool

Schedule a prompt to run automatically on a cron schedule. Tool name: CronCreate
Gate: Requires feature('KAIROS') + isKairosCronEnabled().

Parameters

string
required
Standard 5-field cron expression in local time: "M H DoM Mon DoW" (e.g. "0 9 * * 1-5" for weekdays at 9 AM).
string
required
The prompt to enqueue at each scheduled fire time.
boolean
default:"true"
true — fire on every matching cron time (auto-expires after the configured max-age).
false — fire once then auto-delete.
boolean
default:"false"
true — persist the job to .claude/scheduled_tasks.json so it survives process restarts.
false — in-memory only; job is lost when the session ends.

Return value

string
required
Job ID for use with CronDelete and CronList.
string
required
Human-readable schedule description (e.g. "Every weekday at 09:00").
boolean
required
Whether the job recurs.
boolean
Whether the job is durable.

Notes

  • Maximum 50 concurrent scheduled jobs.
  • The cron expression must match at least one date within the next year.
  • Durable crons are not supported for teammate agents.

CronListTool

List all scheduled cron jobs visible to the current agent. Tool name: CronList
Input: No parameters required.

Return value

object[]
required

Notes

  • Teammate agents only see their own jobs. The team lead sees all jobs.

CronDeleteTool

Cancel a scheduled cron job. Tool name: CronDelete

Parameters

string
required
Job ID returned by CronCreate.

Return value

string
required
ID of the cancelled job.

Notes

  • Teammate agents can only delete their own jobs.

SkillTool

Invoke a user-defined skill — a prompt macro stored as a Markdown file in .claude/commands/ or ~/.claude/commands/. Tool name: Skill

Parameters

string
required
Name of the skill to invoke, or "list" to enumerate available skills. The name maps to a <skill>.md file in the commands directory.
string
Arguments to substitute for $ARGUMENTS in the skill template.

How skills work

  1. Claurst resolves <skill>.md from the project commands directory first, then the user commands directory.
  2. YAML frontmatter is stripped.
  3. $ARGUMENTS placeholders are replaced with the provided arguments string.
  4. The resulting text is returned as the tool result, and Claude uses it as its next instruction.
Skills are the primary way to package reusable prompt workflows without writing code.

AskUserQuestionTool

Pause task execution and prompt you for a choice before continuing. Tool name: AskUserQuestion

Parameters

object[]
required
1–4 questions to ask. Each question has:

Return value

object[]
required
The original questions.
object
required
Map of question → selected answer value(s).

Notes

  • Not available when --channels flag is active (no terminal available).
  • In non-interactive mode (Rust implementation with non_interactive: true), returns an error.

ToolSearchTool

Discover available tools by keyword or exact name. Tool name: ToolSearch

Parameters

string
required
Search query. Use "select:<ToolName>" for exact lookup (e.g. "select:WebFetch"), or plain keywords for fuzzy search (e.g. "search files").
integer
default:"5"
Maximum number of tools to return.

Return value

string[]
required
Tool names that matched the query.
string
required
The query that was run.
integer
required
Total number of deferred tools available to search.
string[]
MCP servers still loading whose tools are not yet searchable.

How scoring works

When a match is found via select:<name>, the full tool schema is injected into the conversation context as a tool_reference block.