Skip to content

Session modes

Mayfly's interaction intensity has three session modes, cycled with Shift+Tab under editor focus:

normal → plan → yolo

Outside normal, a mode badge sits in the status bar's first row (plan in the accent tier, with a pending ellipsis while messages are queued; yolo in the warning tier). These are not Mayfly-owned states: plan comes from dsh's native plan projection, while yolo is the display label for the native danger-full-access + never permission preset.

normal

The default. Every tool call pops the four-option approval panel (allow once / allow for this session / reject / reject with feedback, see Approvals & questionnaires); user questions pop as usual.

plan — plan first, act later

In plan mode the agent produces a plan before acting. When the plan is final, the harness's exit_plan_mode request surfaces as the plan review panel (editor-slot replacement, mounted like the approval panel):

  • the full plan renders as Markdown inside a bordered plan box;
  • beneath it a numbered decision list — number keys pick directly, or ←→ + Enter; ↑↓ / PageUp / PageDown scroll only the plan body:
OptionEffect
1. ApproveApprove the plan, exit plan mode, start executing
2. RejectReject — the model hears "the user chose to keep planning" and reacts in the same turn
3. Revise <text>Inline revision: keep polishing the plan with your feedback

yolo — full access

yolo selects dsh's danger-full-access permission preset directly: the filesystem sandbox is disabled and the never approval policy applies, so the four-option approval panel stops popping. User questions still pop because a permission policy does not answer questions for you. Pressing Shift+Tab again selects workspace-write; the command forms are /permission danger-full-access and /permission workspace-write. Mayfly does not register extra /yolo or /yes commands.

Shift+Tab only orchestrates native commands: normal executes /plan; plan executes /plan off and then selects the full-access permission preset; yolo selects the workspace-write preset. If other commands leave plan and yolo active together, the cycle also exits plan to keep the three labels exclusive.

Relation to /preset

Plan mode is supplied by the harness's plan-mode plugin, composed through agent presets (/preset, see the slash commands reference) — the preset decides which capabilities a session has; the session mode decides how closely this interaction asks.

Preview · v0.1.0-alpha.1