Skip to main content
dotbot exposes three categories of supporting MCP tools beyond task and session management: implementation plan management, operator steering, and development environment control. Plans are markdown documents linked to tasks that capture the implementation approach before execution begins. The steering heartbeat lets an operator inject guidance into a running autonomous session without stopping it. The dev tools start and stop the project’s development environment via project-specific hook scripts.

Plans

Implementation plans are stored in .bot/workspace/plans/ and linked to their parent task by ID. They are written during the analysis phase and consumed by the implementation phase. This separation means the agent can produce a detailed, reviewed plan before writing a single line of code.

plan_create

Creates an implementation plan for a task and links it to the task record. The plan is written as markdown and typically includes the goal, affected files, implementation approach, key patterns to follow, risks, and step-by-step instructions. Required: task_id, content.
task_id
string
required
The task ID to create a plan for (e.g. "task-a1b2c3d4").
content
string
required
The full markdown content of the plan. Typically includes: goal, affected files, implementation approach, key patterns to follow, risks, and step-by-step instructions.

plan_get

Retrieves the implementation plan for a task. The implementation phase calls this at the start of execution to load the analysis phase’s output without re-running exploration. Required: task_id.
task_id
string
required
The task ID whose plan to retrieve.
Returns the full markdown content of the plan.

plan_update

Replaces the content of an existing implementation plan. Use this when the analysis phase refines the approach after initial planning, or when an operator reviews and revises the plan before execution begins. Required: task_id, content.
task_id
string
required
The task ID whose plan to update.
content
string
required
The new markdown content of the plan. Replaces the existing content in full.

Steering

The steering mechanism is dotbot’s human-in-the-loop channel for autonomous sessions. Rather than stopping the AI process to give feedback, you send a “whisper” message through the dashboard’s Processes tab. The agent picks up the message at its next heartbeat and incorporates the guidance before proceeding.

steering_heartbeat

Updates the process registry with a heartbeat and current status, and checks for operator whisper messages. The agent must call this tool between major steps during autonomous execution so that the operator can inject guidance without interrupting the session. When a whisper is pending (set via the dashboard’s Processes tab or the steering.ps1 hook), steering_heartbeat returns the whisper text and clears it from the queue. The agent is expected to incorporate the guidance before proceeding to its next action. Required: session_id, process_id, status.
session_id
string
required
The current session ID, obtained from session_initialize.
process_id
string
required
The process registry ID for this execution slot (e.g. proc-a1b2c3). This ID is passed to the agent via the launch prompt.
status
string
required
A short human-readable description of what the agent is currently doing (e.g. "Analysing task d5093..."). Shown in real time on the dashboard’s Processes tab.
next_action
string
What the agent plans to do next (e.g. "Check dependencies"). Shown in the dashboard’s Processes tab alongside the current status.
Call steering_heartbeat before and after each significant action — reading files, running tests, preparing a commit. Frequent heartbeats give operators real-time visibility and a tighter feedback loop for whispers.

Development environment

The dev tools delegate entirely to project-specific hook scripts in .bot/dev-scripts/. The exact behaviour — starting a local server, running a file watcher, opening browser tabs — is defined by your project’s stack, not by dotbot itself.

dev_start

Starts or restarts the project’s development environment by invoking .bot/dev-scripts/Start-Dev.ps1.
noLayout
boolean
When true, skips opening any dev layout windows (terminal panes, browser tabs). Useful in CI or headless environments.

dev_stop

Stops the development environment by invoking .bot/dev-scripts/Stop-Dev.ps1. Takes no parameters.
dev_start and dev_stop delegate entirely to project-specific hook scripts. If your project does not have Start-Dev.ps1 or Stop-Dev.ps1 in .bot/dev-scripts/, these tools will do nothing.