Repository navigation
Task View and Full Chat
The session screen opens on the task, not the chat transcript. The task view answers four questions at a glance: what the agent is doing, what changed, whether it needs you, and whether the work held up.
TASK ─────────────────────────────────────────────────
Add retry logic to the API client
● executing · opus-5 → haiku-4.5 · 4 files +82 −11 · 38% context
PLAN ─────────────────────────────────────────────────
✓ 1. Add the retry helper src/retry.ts
● 2. Wire it into the client src/client.ts
○ 3. Cover it with tests test/retry.test.ts
EXECUTION ────────────────────────────────────────────
✓ Analyzing code 2.1s
✓ Editing 4 files 8.4s
● Running tests
VERIFICATION ─────────────────────────────────────────
✓ bun run typecheck 1.2s
✗ bun test failed
⚠ summary does not match the diff (1)
Runs of tool calls collapse into the states worth reading. Dozens of reads become one "Analyzing code" line. Nothing is lost: the full transcript is one keystroke away.
Sections appear only when they have something to say. NEEDS YOU is pinned directly under the header whenever a permission request or question is waiting, so a blocked session is never buried. VERIFICATION shows the real result of your project's own commands, and a check that could not run is reported as not run rather than counted as a pass. The choice of view persists between runs.
Defaults come from packages/tui/src/config/keybind.ts:
-
view_toggledefault:ctrl+l,ctrl+o,<leader>v -
leaderdefault:ctrl+x
So:
- Press
ctrl+lto switch between the task view and the full chat. One key, no leader. -
ctrl+o, orctrl+xthenv, does the same.
The command palette entry reads "Show full chat" when on the task view and "Show task view" when on the full chat.
The leader key defaults to ctrl+x. Most actions need the leader first, then the second key. Defaults from packages/tui/src/config/keybind.ts:
| Keys | Command name | Action |
|---|---|---|
ctrl+l, ctrl+o, or ctrl+x then v
|
session.view.toggle |
Switch task view and full chat |
ctrl+x then o
|
mission.control |
Open Mission Control |
ctrl+x then d
|
diff.open |
Open diff viewer to review changes |
ctrl+x then b
|
session.sidebar.toggle |
Toggle sidebar |
ctrl+p |
command.palette.show |
Command palette (no leader) |
tab / shift+tab
|
agent.cycle |
Next / previous agent |
ctrl+x then n
|
session.new |
Create a new session |
ctrl+x then l
|
session.list |
List all sessions |
ctrl+x then m
|
model.list |
List available models |
ctrl+x then a
|
agent.list |
List agents |
ctrl+t |
variant.cycle |
Cycle model variants (no leader) |
ctrl+x then c
|
session.compact |
Compact the session |
ctrl+x then e
|
prompt.editor |
Open external editor |
ctrl+x then x
|
session.export |
Export session to editor |
ctrl+x then q
|
session.queued_prompts |
Manage queued prompts (also exits: ctrl+c, ctrl+d) |
ctrl+x then u
|
session.undo |
Undo message |
ctrl+x then r
|
session.redo |
Redo message |
ctrl+x then t
|
theme.switch |
List available themes |
ctrl+x then s
|
opencode.status |
View status |
ctrl+x then g
|
session.timeline |
Show session timeline |
ctrl+x then i
|
session.blocked.next |
Jump to the next blocked session |
ctrl+x then h
|
tips.toggle |
Toggle tips on home screen (also session.toggle.conceal in sessions) |
ctrl+x then y
|
messages.copy |
Copy message |
ctrl+x then 1 to 9
|
session.quick_switch.N |
Switch to session in quick slot N |
ctrl+r |
session.rename |
Rename session (no leader) |
escape |
session.interrupt |
Interrupt current session (no leader) |
Set "leader": "none" to disable the leader key, or rebind any name under keybinds in tui.json. keybinds is merged with built-in defaults, so only list what you change.