docs / concepts / pilot-mode

Pilot mode

Multi-step tool calling for tasks that need to read, write, run or fetch. Six built-in tools cover file I/O, shell, web and project search. Supervised or fully automatic.

When you want it

Pilot mode kicks in for prompts that imply action: "refactor this file", "check what the latest version of X is", "run the tests and fix anything that fails". The router detects the action verbs and switches the response from a single completion to a tool-using loop.

The six built-in tools

ToolWhat it doesDefined in
file_readRead a file from the project workspacecore/builtin_tools.py
file_writeWrite or patch a file in the project workspacecore/builtin_tools.py
shell_execRun a shell command, capture stdout/stderrcore/builtin_tools.py
http_requestMake an HTTP call (with allowlist enforcement)core/builtin_tools.py
web_fetchFetch and parse a web page to clean textcore/builtin_tools.py
project_searchGrep across the project workspacecore/builtin_tools.py

Supervised vs automatic

Every tool call goes through a confirmation step by default. The user sees what the agent wants to do (e.g. shell_exec: pytest tests/) and approves or denies. For trusted workflows you can switch a persona to pilot_mode: auto, in which case the agent runs the tool without asking.

Automatic mode is powerful and dangerous in the same way sudo is. Use it for personas you trust, and pair it with the audit log so every action is traceable.

How it differs from plan mode

Pilot mode is one agent running a loop of tool calls. Plan mode is one Conductor breaking a goal into a DAG of subtasks, dispatching each to a Worker (which may itself be in pilot mode), and synthesising the results. Pilot is the engine of plan.

Next: plan mode →