DIRECT mode
§ DIRECT
DIRECT is where Octopush stops being a chat and becomes an orchestra. You define a pipeline: a sequence of stages, each handled by an agent with its own role, model, and tools, with human checkpoints between them. Then you run it and watch the work move from stage to stage.
Where TALK is one agent in one conversation, DIRECT lets you compose many — a planner that scopes the work, an implementer that writes it, a reviewer that critiques it, an approver that gates it. DIRECT is optional per workspace, and it’s the part of Octopush that has no real equivalent in a normal editor.
How to open it
Section titled “How to open it”Press ⌘⇧D, or click Direct in the mode switcher. DIRECT is opt-in per workspace.
[screenshot: DIRECT mode run track — horizontal stage cards numbered with roman numerals]
The interface
Section titled “The interface”Stages
Section titled “Stages”A pipeline is a chain of stages. Each stage has:
- A role — one of
planner,implementer,reviewer,approver, ordebugger. The role shapes what the stage is for. - An assigned model — picked per stage, and overridable per run so you can swap in a stronger or cheaper model without editing the pipeline.
- A substrate pill — either
API(the stage runs against the Anthropic API) orCLI(the stage runs Claude Code CLI directly inside the worktree). The pill tells you, at a glance, where each stage’s work happens. - Enabled tools — the set of tools that stage is allowed to use.
The pipeline builder
Section titled “The pipeline builder”Pipelines are authored in a visual graph editor. Drag stages, connect them, set roles, assign models, and choose substrates and tools — all without writing config by hand.
[screenshot: the visual pipeline builder graph editor]
Checkpoints
Section titled “Checkpoints”Between stages you can place checkpoints, marked with the ⟜ glyph. When a run reaches a checkpoint it pauses and waits for a human. You can:
- Approve — let the run continue.
- Reject with feedback — stop and send your notes back.
- Send back to a stage — return the work to an earlier stage to be redone.
- Resume — restart a run that halted for a transient reason (a rate limit, for example) without re-deciding the work.
Review loops
Section titled “Review loops”A reviewer stage can loop: send work back to an implementer, get a revision, review again. Octopush tracks the iteration as N of M and surfaces exhaustion when the loop hits its limit without converging — so a pipeline can’t spin forever.
The run track
Section titled “The run track”A live run is shown as a horizontal track of stage cards. Each card carries a roman numeral (I · II · III …) and a status glyph, and the cards are connected by ⟶ for a normal hand-off and ⟜ where a checkpoint sits.
[screenshot: run track with a checkpoint pause and an active review loop counter]
The cost ledger
Section titled “The cost ledger”DIRECT’s cost ledger is savings-first. Instead of only showing what you spent, it frames the run against the all-premium baseline:
saved $X · Y% under all-premium · spent $Z
You can set an optional per-run budget, and expand the ledger for a per-stage breakdown of where the money went.
A typical flow
Section titled “A typical flow”- Press
⌘⇧Dand open the pipeline builder. - Add a
plannerstage on a cheaper model, animplementeron a stronger one, and areviewerafter it. - Choose a substrate per stage —
APIfor the planner,CLIfor the implementer so it edits the worktree directly. - Place a checkpoint (
⟜) before the implementer so you approve the plan before any code is written. - Wire the reviewer to loop back to the implementer, capped at a few iterations.
- Start the run, optionally overriding a stage’s model for this run only.
- At the checkpoint, approve, reject with feedback, or send back to a stage.
- Watch the loop counter (
2 of 3) as the reviewer and implementer converge. - When it finishes, read the ledger: saved $X · Y% under all-premium · spent $Z, and expand it for the per-stage breakdown.
Shortcuts
Section titled “Shortcuts”| Shortcut | Action |
|---|---|
⌘⇧D | Switch to DIRECT |
⌘K | Command palette (model switch, templates) |