Launching an agent

Brief

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.

Technical

The panel

Opening it#

  • The ⌁ LAUNCH AGENT button under NOTHING 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 SESSION to LAUNCH AGENT.

Keys#

typingfilter projects
↑ ↓pick a project
Tabnext model
⇧+Tabswitch harness
← →effort
click a chipreach
↵launch
Escclose

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#

claudecodex
modelsopus, sonnet, haikugpt-5-codex, gpt-5
effortlow medium high xhigh max; default highlow medium high xhigh; default medium
this repo--permission-mode acceptEdits--sandbox workspace-write
this machine--permission-mode auto--sandbox danger-full-access
anywhereno flagno 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

  1. Projects, harnesses and the command line: launcher.rs; defaults: launchpref.rs; the panel: main.rs.