Planner & compose
The central agent compose surface. Type a task, see a live cost estimate, choose a mode, send.
The compose box
The big textarea in the Ask tab. Type any task — natural language. The composer supports:
- @-mentions — see @-mentions. Pull files, symbols, folders, git diff, error context, or specific code ranges into the prompt.
- Plain markdown — backticks for code, lists, headers. The agent receives them verbatim.
- Multi-line —
Shift+Enterfor newline,Enterto send.
Three submit modes
Three buttons under the composer:
- Plan only — agent runs in
mode: "plan". Returns reasoning, no diffs. Useful as a sanity check before spending budget on real edits. - Draft explanation —
mode: "draft". Returns explanatory text only. Useful for documentation generation. - Stage diff — full run. Agent generates code changes that go to the Changes panel for review.
Cost preview
To the right of the buttons, a live estimate updates as you type:
~$0.0017 in: 412 → out: 280 session: $0.18 / $5.00
Three numbers: estimated cost for this task, your session-to-date spend, and your daily cap. When you exceed the cap, the estimate goes red and submit is disabled.
The estimate is a POST /api/budget/estimate call — no model tokens spent.
Targeting
When a file in the editor has its Target file flag set, the planner shows a chip:
> Targeting: services/auth.py
The agent will scope its work to that file by default. Click the chip's × to clear targeting.
Cancel a run
While a run is live, the Send button becomes a Stop button. Click to cancel. Esc does the same. The agent receives a cancellation signal and stops at the next checkpoint; budget is freed.
Plan vs Draft vs Stage diff
| Mode | What you get | Cost |
|---|---|---|
| Plan only | Step-by-step approach, no code | Lowest |
| Draft explanation | Human-readable explanation | Low |
| Stage diff | Actual hunks ready to apply | Full |