Launching an agent
On a pane with nothing on its workbench, press ⌁ LAUNCH AGENT, or just ↵. A panel opens with your projects listed, newest first, and the one you're in already picked.
Type to filter, then choose Claude Code or Codex, a model, an effort level, and how far the agent may go without asking: this repo, this machine or anywhere. The bottom of the panel shows the whole command it will run. ↵ runs it.
If the pane you started from is sitting at a shell prompt, the agent starts right there. If something is already running in it, you get a new tab instead, next to the one you're in. The last line of the panel tells you which before you press ↵.
Technical has the keys, the exact commands and where the defaults live.
The panel
Opening it#
- The
⌁ LAUNCH AGENTbutton underNOTHING ON THE WORKBENCH. - ↵ on a workbench with no agent and no card open.
- When a pane's agent has ended, the verb at the end of its bench strip changes from
END SESSIONtoLAUNCH AGENT.
Keys#
| typing | filter projects |
| ↑ ↓ | pick a project |
| Tab | next model |
| ⇧+Tab | switch harness |
| ← → | effort |
| click a chip | reach |
| ↵ | launch |
| Esc | close |
Projects#
Directories one level deep under a fixed set of folders, your home directory and ~/Work among them, newest-modified first, with hidden directories skipped. The set can't be changed yet, so projects two levels down, such as ~/code/app, don't appear (issue 802). ◆ marks a git repository. Matches rank by exact name, then prefix, then anywhere in the name, then anywhere in the path; a repository beats a plain directory at the same rank. Up to 40 rows show; the filter reaches the rest. With nothing matching: nothing matches — ⌫ to widen.
Choices#
claude | codex | |
|---|---|---|
| models | opus, sonnet, haiku | gpt-5-codex, gpt-5 |
| effort | low medium high xhigh max; default high | low medium high xhigh; default medium |
this repo | --permission-mode acceptEdits | --sandbox workspace-write |
this machine | --permission-mode auto | --sandbox danger-full-access |
anywhere | no flag | no flag |
Switching harness moves the effort to the nearest level the other one has, so max becomes xhigh on Codex. The panel always opens on anywhere.
The command#
claude --model <model> --effort <effort> [reach] --append-system-prompt "$(cat '<briefing>')"
codex --model <model> [reach] -c model_reasoning_effort=<effort>
The briefing is the workbench's instructions to the agent, written owner-only to briefing.txt in the session's state folder. Codex takes no briefing flag and reads AGENTS.md instead.
Where it lands#
If the pane you opened the panel from is known to be at an idle prompt, Terminal Delight types into it: Ctrl+U to clear anything half-typed, cd to the project if the pane is somewhere else, then the command. If the pane is busy, or hasn't been read yet, a new tab opens in the same branch of the left bar. The hint ends in ↵ starts in this pane or ↵ opens a new tab. The pane keeps whichever face it had.
Each launch is recorded in launches.jsonl in the session's state folder: harness, model, effort, reach, directory, command and where it landed.
Defaults#
Open Σ usage, unfold LAUNCH AGENT CONFIG and press a chip. Each row reads chosen or unset; pressing a lit chip clears it. That writes ~/.config/terminal-delight/launch.toml at once:
harness = "codex"
model = "gpt-5"
effort = "high"
Every key is optional. A missing file, a word neither harness knows, or a model from the other harness all read as unset, and unset means Claude, its first model and its default effort. Reach is never stored.
After it starts#
The bench strip has model and effort dials. They type the harness's own /model and /effort commands and keep whatever you had in the composer. The launcher only starts agents; bringing one back is the job of session restore and the graveyard.
Sources
- Projects, harnesses and the command line: launcher.rs; defaults: launchpref.rs; the panel: main.rs.