Feature Reference

Keyboard shortcuts, operation legend, and session file layout

Keyboard Shortcuts

Global / Browse tab

KeyActionContext
qQuit the applicationGlobal
bSwitch to the Browse tab (keeps the current graph/list choice)Global
sSwitch to the Session tabGlobal
rSwitch to the Running tabGlobal
vToggle the Browse area between graph and list viewBrowse
dBrowse as list viewGlobal
gBrowse as graph viewGlobal
spaceMark / unmark the focused nodeBrowse
cOpen the dimension-comparison matrix over the marked nodesBrowse
EnterOpen the focused node’s detail hubBrowse (focused node)
AOpen the Operations dialog for the focused nodeBrowse (focused node)
fToggle the focused module’s “deferred” statusBrowse
Ctrl+RRetry applying the initializer agent outputRunning tab

DAG graph view

Shown in the footer when the graph has focus:

KeyAction
/ Move between graph layers
/ Move between columns within a layer
EnterOpen the focused node
hSet the focused node as HEAD
oOpen the operation that produced the focused node
pView the focused node’s full proposal
xStart a compare against the focused node
EscapeCancel an in-progress compare selection

Node detail hub

Opened with Enter on a node:

KeyAction
aOpen the Operations dialog
cCompare from this node
vFullscreen proposal view
eExport the node’s proposal
oOpen the operation that produced this node
TabFocus the minimap
EscapeClose

Operations dialog and wizard

The Operations dialog (A / a) lists the operations; selecting one opens a configuration wizard.

KeyActionContext
aChoose OperationsOperations dialog
cChoose CompareOperations dialog
HShow operation helpOperations dialog / wizard
wCycle the preview-pane widthWizard
lToggle line numbers in the previewWizard
EscapeClose the dialogOperations dialog / wizard

Operation detail and logs

KeyActionContext
Escape / qCloseOperation detail screen
rRefreshLog detail
tShow the log tailLog detail
fShow the full logLog detail

Module preview

Shown by the review-before-apply gate (buttons; Escape cancels):

ActionEffect
AcceptApply the proposed modules to the graph
Re-runSupply a steering note and run the decomposition again
CancelDiscard the proposal; graph untouched

Every key above can be rebound — press ? in the TUI for the in-place editor, or use Settings → Shortcuts.

Node box anatomy

In graph view each node is a five-row box:

┌──────────────────────────┐  ← top border (green = HEAD, orange = anchor)
│ n003  ☑                  │  ← node id + selection checkbox (☑ marked / ☐ not)
│ explore                  │  ← operation badge (color-coded, see below)
│ Variant: cache-first …   │  ← one-line description
└──────────────────────────┘  ← bottom border

Operation color legend

The operation badge is color-coded by the operation that produced the node:

ColorOperation
Cyanexplore
Yellowcompare
Magentasynthesize
Greenmodule decompose
Orangemodule merge
Purplemodule sync
Dim greybootstrap (seed / initial node)

Module status colors

Module nodes also carry a fluid status badge (a render of progress, separate from the operation that created them):

ColorStatus
Dim greyunstarted
Cyanin design
Yellowin implementation
Greenimplemented
Orangemerged
Red (italic)deferred (an overlay marker, set with f)

Operations and agents

Design operations are launched from the Operations dialog (A); each dispatches one or more background agents:

OperationWhat it doesAgent
ExploreCreate new design variants from a base nodeexplorer
CompareRun an agent comparison across the marked nodescomparator
SynthesizeMerge multiple nodes into a synthesissynthesizer
Module DecomposeFork module subgraph roots from a proposalmodule decomposer
Module MergeMerge a module up into an ancestormodule merger
Module SyncPull a linked module’s as-implemented design back inmodule syncer

Session-lifecycle operations (Session tab) run no agents: pause, resume, finalize (export HEAD proposal to aiplans/), archive, delete.

Agent model defaults

Each design operation dispatches a code agent of a fixed agent type, and every agent type has a configurable default model and launch mode. There are seven agent types: the six design-operation agents in the table above (explorer, comparator, synthesizer, module decomposer, module merger, module syncer) plus the initializer — the bootstrap agent that reformats an imported markdown draft (ait brainstorm init --proposal-file) into the first graph node.

Where the defaults live. Per-type defaults are stored in aitasks/metadata/codeagent_config.json under defaults, keyed brainstorm-<type>:

"defaults": {
  "brainstorm-explorer": "<agent>/<model>",
  "brainstorm-synthesizer": "<agent>/<model>",
  "brainstorm-module_decomposer": "<agent>/<model>"
}

Each brainstorm-<type> value is an <agent>/<model> string — the code-agent binary and the model it runs. An optional paired brainstorm-<type>-launch-mode key sets that type’s default launch mode.

Layered resolution. Defaults resolve in three layers, each overriding the one before it:

  1. Built-in resource defaults (per-type max_parallel and launch_mode).
  2. Project config — codeagent_config.json (shared, committed).
  3. Per-user override — codeagent_config.local.json (gitignored).

The agent and model are bound when a session is initialized (when the brainstorm crew registers its agent types). Changing a default therefore takes effect on the next session you start — not one that is already running.

Launch mode. Every type has a default launch mode (interactive). Override it globally with the brainstorm-<type>-launch-mode config key, or per operation from the launch-mode selector in the operation wizard when you run that operation.

Changing a default. The simplest way to edit these is the Settings TUI: open the Agent Defaults tab, where every brainstorm agent type appears with an agent/model picker and a paired launch-mode picker. Each row shows the project value with your user override below it, so you can change a model for the whole project or just for yourself.

Module decompose modes

The Module Decompose wizard offers three modes:

ModeNamesAgent?
ManualYou type the module namesYes (assigns content to your names)
Agent-proposed (infer)Left blank; inferred from the decomposition planYes (proposes the module set)
From section markersDerived from <!-- section: --> markersNo (deterministic)

Review before apply is on by default; it routes the result through the module preview (Accept / Re-run / Cancel) before committing. A Re-run steering note overrides the original decomposition plan on conflict, and later revisions override earlier ones. Decompose forks rather than prunes — the umbrella proposal stays whole, and Module Merge is the convergent path back.

Operation provenance

SurfaceWhere
“Generated by” block (operation, group, agents, timestamp)Browse detail pane for the focused node
Operation detail screen (o)Overview tab + per-agent Input / Output / Log tabs

Operation data is resolved on demand from on-disk files via a lightweight pointer (an OpDataRef: kind, target, optional section), so the session state never duplicates agent inputs, outputs, or logs.

Session files and layout

A brainstorm session lives in its own AgentCrew worktree at .aitask-crews/crew-brainstorm-<task_num>/, created by ait crew init and populated by the brainstorm engine:

PathPurpose
br_session.yamlSession metadata and status (init, active, completed, archived)
br_graph_state.yamlThe design DAG: nodes, edges, HEAD, and the module-decomposition maps
br_groups.yamlOperation groups — which agents ran, keyed by group, for provenance
br_nodes/Per-node metadata
br_proposals/Per-node proposal markdown

A completed (finalize) session exports its HEAD proposal into aiplans/; archive and delete retire the worktree.


Next: Settings — configure agent defaults and rebind any of the keys above.