Tool Reference
This page documents tool schemas and runtime behavior for built-in tools.
For the full built-in list, see /core-concepts/tools.
question Tool (Ask-User)
Source:
crates/tools/src/question.rscrates/core/src/turn/tool_execution.rs(handle_question_tool)
Purpose:
- Request user input while a turn is still running.
- Return that user response as the tool result text.
Input schema:
| Field | Type | Required | Description |
|---|---|---|---|
question | string | yes | Prompt text shown to the user. |
options | string[] | no | Optional predefined choices. |
Behavior:
- Model calls
questionwith a prompt and optional choices. - Runtime emits
Event::QuestionRequestwith arequest_id. - Frontend captures the answer and sends
Op::QuestionReply. - Runtime resumes the turn and returns answer text as tool output.
Examples:
Free-text response flow:
{"question":"Which branch should I target for this fix?"}Option-based response flow:
{"question":"Run migrations now?","options":["yes","no","later"]}Spec references:
specs/protocol.md(Event::QuestionRequest,Op::QuestionReply)specs/core-runtime.md(NeedQuestion,AwaitingQuestion)
branch Tool (In-Memory Investigation)
Source:
crates/core/src/orchestration_tools/branch.rscrates/core/src/orchestration_tools/mod.rs(register_agent_tools)
Purpose:
- Run a lightweight in-memory branch investigation and return a concise conclusion.
Availability:
- Not part of
core_registry(). - Registered only when agent orchestration tools are wired via
register_agent_tools(...).
Input schema:
| Field | Type | Required | Description |
|---|---|---|---|
description | string | yes | What the branch should investigate. |
max_turns | integer | no | Max internal turns before stop (default 10, minimum 1). |
allow_writes | boolean | no | Include edit/write/bash in branch toolset; default read-only. |
Behavior:
- Uses synthetic IDs like
branch-<timestamp_ms>and emits orchestration events (ForkCreated,ForkEvaluated). - Runs entirely in process memory; it does not create git branches or worktrees.
- Temporary branch context is dropped automatically when execution completes.
cron Tool (CLI Runtime Tooling)
Source:
crates/cron/src/tool.rscrates/cli/src/runtime_tooling.rs
Purpose:
- Manage recurring schedules (
create,list,delete,enable,disable,history).
Availability:
- Not part of
core_registry(). - Registered by CLI runtime tooling when available.
Input schema highlights:
action(required): one ofcreate,list,delete,enable,disable,historyname,schedule,promptforcreatejob_idfordelete/enable/disable/historytimezone,agent,limitoptional
Persistence:
- Uses
.swarmie/cron.dbthroughSqliteCronStore.