Custom flows and agents.
Every built-in flow opens in an editor. There you change the phases and steps it runs and tune the agents behind them. You can also copy an agent into one flow without touching the others, and run two versions of the same flow against each other.
01The gallery
Open Workflows from the sidebar, under the sub-label Flows & agents. It’s a cross-project view. The header carries a Project dropdown that starts on All projects, and a Show archived checkbox.
The MCPs and Plugins sections are read-only listings of machine-wide config. MCPs shows the servers in your CLI config; Plugins shows your installed Claude Code plugins. Neither has a create or edit action.
- Delete is offered only while a flow has never been run and is not archived. Archive is the reversible way to get one out of the gallery, and Unarchive brings it back.
- New workflow asks about scope before anything else: This flow is available to offers all projects or one named project.
- A flow that is not a built-in has no tuning dial and no runtime mix. It opens straight into the advanced editor.
02The flow editor
The editor has two pages. A built-in opens on the tuning page, which holds the two dials and a preview of what they do. Open advanced editor takes you to the blueprint, and Tuning level goes back.
A badge in the header shows the flow’s current level on both pages. The preview on the tuning page diffs the selected level’s graph against Standard, so a step the preset drops shows struck through rather than vanishing. The Custom card stays unavailable until the flow has a saved custom definition.
In the advanced editor you work on the canvas directly, with + phase and + step buttons, per-phase move and remove controls, and per-step move up, move down, and remove. The last phase, and the last step in a phase, cannot be removed.
A fan-out step renders as a bordered Fan-out template block. Its chip toggles between Parallel ×N and Serial, and the inner chain you edit is the template every lane runs, not a set of separate steps.
Select a step and the right-hand inspector opens on three tabs.
Save does not write straight away. It opens a dialog with four targets:
- Overwrite this flow writes the flow’s custom definition and selects the Custom level. This is the default.
- Create a project-specific copy leaves the shared row alone and forks the edited graph into a flow scoped to one project. The project is preselected when the gallery is filtered to one. From All projects you pick it in the dialog.
- Save as new flow asks for a name, pre-filled with the current name and -copy.
- Save as new variant of this flow files a draft variant. The flow and its level are untouched.
A built-in also carries Reset to default on the advanced page and Delete custom definition on the tuning page. Both clear the custom slot.
A flow that was on the Custom level drops back to Standard. One parked on Efficient or Thorough keeps that level, and past runs keep the spec they froze.
03Agents
The Agents section lists the roles the flows above draw from. Open one and you get its name, description, runtime, model, system prompt, a grid of eight CLI tools with a live count of how many are on, and its MCP access. The tools are Read, Edit, Write, Bash, Grep, Glob, WebSearch, and WebFetch.
The model picker appears only once you pin a runtime for that agent. Left alone, the agent inherits the run model, and the editor says so in place of the list.
Pinned to Claude, the choices are Fable 5.1, Opus 5, Sonnet 5, and Haiku 4.5. Pin Codex or OMP and the row becomes that provider’s model list, read from the runtime installed on your machine. See per-agent pins.
A per-agent runtime pin that is not Claude takes effect on programmatic runs only. An orchestrated run shares one runtime across the whole flow, and the launch blocks the pin. The execution model setting decides which of the two you are on.
The inspector’s agent tab has Customize for this flow. It copies that agent’s description, prompt, tools, and MCPs into the flow, badges the copy workflow copy, and applies to every step that uses that agent. Because the built-ins are shared globally, this is how you tune an agent for one flow without changing it for every project.
04Variants and A/B tests
A variant is a snapshot of a flow’s graph plus a few per-variant pins. Variants live in a panel at the bottom of the advanced editor, in edit mode.
On a built-in the panel is headed with the tuning level it manages, and a variant challenges that one level and only rotates into launches of it. A flow of your own has no levels, so its variants rotate against its own definition.
Create variant from current snapshots the last saved definition, so it’s unavailable while you have unsaved edits. A new variant reads Not in rotation.
A variant’s row actions are Edit, Rename, Add to rotation, Pause, Retire, Archive, and Delete. A weight input appears once it is active.
The flow’s own live definition is a rotation participant too, listed as Baseline (current workflow) and off by default. Weight decides how often each participant is picked for an ordinary launch.
Change a status, an archive state, or the membership while a rotation experiment is running and the panel asks whether to start a new one, because the current experiment closes as superseded. A weight change that keeps the same arms does not ask.
The variant editor adds pins the flow editor has no equivalent of: an execution model of inherit, orchestrated, or programmatic. It also carries a variant-wide runtime and model default, and an agent overrides block for per-agent model and system-prompt deltas. For a non-Claude variant that block holds a note in place of the per-agent rows, because those runs use one model for the whole run.
A/B Test on a card opens Run an A/B test. Each arm picker offers the current workflow as baseline, any active or draft variant, and a quick session, so a flow with no variants can still be compared against one. A quick-session arm gets its own runtime, model, reasoning effort, and permission mode.
Pairwise judging and per-arm grading run while Auto-grade variant & experiment runs is checked at Settings → AI → Session settings → Code Review Eval, which it is by default. Turning it off stops the extra judge cost without touching the global eval toggle. Rotation stats, randomized rotations, and past experiments live in Insights.