Skip to content

Session Modes

Session modes are the quick-switch surface for changing BMO’s prompt and runtime posture without editing config. Use them for fast context changes in the TUI. For stateful multi-phase workflows, use Choreography.

/mode code # full implementation mode
/mode chat # read-only: no write/edit/bash
/mode coordinator # delegation-first lead mode
/mode review # read-only: view, grep, glob + LSP
/mode debug # subset with bash + diagnostics
/mode plan # planning: view, grep, bash + lighter model
/mode sre # incident response, infra, CI/CD, and ops work

Switch modes at any time with /mode [name] or shift+tab. The current mode is shown in the sidebar.

Treat a blocked tool as a real boundary, not a hint to route around. If the user clearly needs a denied capability, switch to the smallest suitable mode and retry the blocked action directly.

The built-in modal choreography exposes the seven modes above and starts in coordinator by default. Narrower or custom choreographies expose only states reachable through their command:mode transitions.

ModeBest for
codeGeneral coding, edits, commands, and day-to-day development
chatRead-only Q&A and explaining a codebase without changing files
coordinatorDelegation-first synthesis and bounded specialist orchestration without direct implementation
reviewAuditing diffs, tracing logic, and doing careful analysis
debugReproducing failures, running commands, and using diagnostics tools
planProducing plans before execution, especially with staged workflow
sreIncident response, Terraform/Kubernetes/Helm changes, CI/CD, and infrastructure triage

/mode with no argument is a read-only status query over the shared session-mode status family. It reports current mode, reachable modes, deferred mode-change posture, and the latest bounded autoselect/manual-override fact the runtime can observe. Providing a mode changes the session posture for subsequent turns.

[options.session_modes.plan]
model = "claude-haiku-4-20250514"
[options.session_modes.review]
model = "claude-sonnet-4-20250514"

If you still use options.session_modes, BMO treats it as deprecated compatibility input and translates the supported fields into choreography during config normalization.

Supported translation:

FieldCompatibility behavior
modelTranslated into the matching choreography state’s model
toolsTranslated into the matching choreography state’s tools.allow
system_promptParsed for backward compatibility, but ignored at runtime

Use Choreography directly for new configs. It is the only active runtime owner of mode behavior, model overrides, and tool-gate intent.

Session modes remain useful for quick interactive switching, but they are simple and stateless. For multi-phase workflows with automatic transitions, tool gates, prompt shaping, and hooks, use Choreography instead.