cerveau docs site github
Running it

The three modes

A mode is a contract, not a suggestion. It decides which tools exist for that turn, and the registry refuses a call from the wrong mode before it executes.

The contracts

ModeContract
DiscussionUltra-concise planning. Writes limited to design artifacts. Crystallises into a committed plan.
BrainstormingDeep research: web, code tools and memory. Findings externalised to notes.
AutopilotFull autonomy end to end. Re-plans on failure. Hands back only when truly blocked.

What each mode can reach

Mode fencing is enforced in internal/tools/registry.go. A tool with an empty Modes list is available everywhere; anything else is a whitelist.

ToolDiscussionBrainstormingAutopilot
read grep globyesyesyes
file_map find_symbol find_references outline_fileyesyesyes
check_page ask_user rememberyesyesyes
edit write apply_patchyesyesyes
commit_planyesnono
web_fetchnoyesno
bash servenonoyes
The fence is code, not a prompt A Discussion turn cannot run bash — not by asking, not by a jailbreak, because the mode check happens in Go before dispatch. A model that tries gets a refusal it can read and act on, rather than a silent failure.

Discussion

For deciding what to do. The model is asked to be brief, and writes are limited to design artifacts rather than implementation. It is the only mode with commit_plan, which turns the conversation into a structured plan that Autopilot can later follow.

The plan-in-a-file habit The model's most persistent habit is writing its plan to a Markdown file instead of calling commit_plan. The harness translates rather than pleads: a plan-shaped write is also committed as a structured plan event, so the plan card and the planner both see it. The rewrite is disclosed.

Brainstorming

For finding out. The only mode with web_fetch, so research cannot happen by accident in a mode meant for building. Findings are externalised to notes rather than held in the window, which is the difference between research that survives compaction and research that does not.

Autopilot

For doing. Full autonomy: it plans, acts, verifies, and re-plans when a step fails. It is the only mode with bash and serve, and therefore the only mode where the safety guard has real work to do.

If a plan was committed in Discussion it is injected as guidance — the agent follows its intent but adapts freely. No plan is fine; it plans as it goes.

It hands back only when genuinely blocked, and a handback is surfaced as such in the plan strip rather than as a silent stop.

Fencing through a reflex

A reflex can re-dispatch tool calls of its own. Mode fencing propagates through it: a bash step inside a reflex is still autopilot-only. That is what the ModeTool interface exists for — the recipe executor receives the invoking mode at execution time rather than losing it at the boundary.

Switching mode

From the panel's mode dial, with crvcli -mode, or over the API with PATCH /api/sessions/{id}. A session keeps its mode until changed; a new session starts in the default.