Getting started — in ninety seconds.
You already have tmux. You already have Claude. Agent Dash finds the sessions you have and lays them side by side. This page walks through the first minute.
Launch
Start Agent Dash from any terminal. It connects to your running tmux server and finds Claude Code sessions automatically — no config, no registration.
Anything you start in a tmux pane appears on the next scan tick, within about two seconds. To bring in sessions you already have, import them once.
If a running Claude session doesn't show up, your Claude Code is probably older than 2.1.119 and doesn't write ~/.claude/sessions/<pid>.json. See Claude Code.
The interface, in two panes
Agent Dash is a dual-pane TUI. On the left: your sessions, live and closed. On the right: a live preview of the one you've selected, rendered with full ANSI fidelity. A closed session has no pane to show, so the preview shows its title, folder, last activity, and last prompt instead.
- Session list — left pane. One row per session: status icon, title, folder, and time since last activity. Closed sessions are dimmed.
- Preview pane — right pane. Low-latency FIFO stream with a
capture-panefallback. - Status bar — bottom strip. The keys that apply right now.
Navigating sessions
j and k step through the list; arrow keys and Ctrl+n / Ctrl+p work too, in every list and picker. 0 focuses the preview pane; 1 focuses the list. / filters the list with fuzzy matching.
Switching and resuming
When you want to type into a session, press o (or Enter). On a live session, Agent Dash attaches your terminal to that tmux pane. On a closed session, it starts a new tmux session named agent-dash-<title> (slugified) in the session's folder, runs claude --resume <id> in it, and switches there. If the folder no longer exists, you get an error and nothing is started.
O opens a live session in a popup instead, leaving Agent Dash in place.
| Key | Action |
|---|---|
j / ↓ / Ctrl+n | Next session |
k / ↑ / Ctrl+p | Previous session |
o / Enter | Switch to the pane, or resume a closed session |
O | Open the pane in a popup |
c | New session: pick a folder, optionally a mode and a new git worktree |
r | Toggle read / unread |
? | Toggle the help overlay |
Grouping and filters
By default the list groups sessions by what needs you:
| Group | Sessions in it |
|---|---|
| In progress | Live and busy |
| Completed | Unread: finished working, or marked with r |
| Need action | Live and waiting on you: a permission prompt, a question, or a Plan or Ask prompt |
| Idle | Everything else, including closed sessions |
A session lands in the first group it matches. Press ` to cycle the grouping: state, then folder (grouped by git repository, so worktrees of one repo share a group, or by working directory outside git), then date. h collapses the group under the cursor and l expands it.
S opens the view settings, which are saved across restarts:
| Setting | Options | Default |
|---|---|---|
| Status | All, Active, Archived | Active |
| Grouping | State, Folder, Date | State |
| Last activity | 1d, 3d, 7d, 30d, All | 7d |
Press 1, 2, or 3 to jump to a setting, or move with j / k and press Enter. Live sessions are never hidden by the Last activity window.
Archive
a archives the selected session, or unarchives it if it already is. Archiving never stops a running Claude; it only takes the session out of the default view. A session you close on purpose is archived automatically, and one that was archived comes back when you resume it. To see archived sessions, set Status to All or Archived in S. Claude Code has the exact rules.
x closes the selected live session's pane after you confirm, and the session is then archived like any other explicit close.
Import what you already have
Importing is a one-time action, so it is a command rather than a key:
It opens a picker listing Claude sessions Agent Dash doesn't know about yet, read from the Claude CLI's transcripts and from Claude Desktop. If a session is in both, it is listed as Desktop. Sessions archived in Desktop are not listed. Nothing is selected to start with. Enter imports the selection, prints Imported N sessions and exits; Esc or q exits without importing. While the session list is empty, Agent Dash shows a hint to run this command.
| Key | Action |
|---|---|
Tab / Shift+Tab | Cycle the source filter: All, CLI, Desktop |
Space | Toggle a session |
a | Select every visible session (honoring the source and text filters) |
n | Deselect all |
/ | Fuzzy filter (Enter keeps it, Esc clears it) |
Enter | Import the selected sessions |
Esc / q | Quit without importing |
The source filter combines with /. Your selection stays when either filter changes, and Enter imports every selected session, including ones currently filtered out.
To skip the picker, pass a flag. Both print the count and exit.
| Flag | Imports |
|---|---|
--all | Every session not tracked yet |
--since <1d|3d|7d|30d> | Untracked sessions active within that window |
--source <cli|desktop> | Only sessions from that source; combine with --all or --since |
Copy mode
Press v in the preview pane to freeze it and enter copy mode — the same motions you know from vim, plus forward/backward search.
- Movement —
hjkl,w b e,0 $,gg G. - Selection — v starts a selection, y yanks to the system clipboard.
- Search — / forward, ? backward, n / N to step through matches.
- Exit — Esc returns to live preview.
Where state lives
Agent Dash keeps its own files next to your config. You can inspect or delete any of them by hand.
| Path | Purpose |
|---|---|
~/.config/agent-dash/config.toml | Configuration (takes precedence over config.json) |
~/.config/agent-dash/config.json | Configuration (used when no config.toml exists) |
~/.config/agent-dash/sessions.json | Every session Agent Dash knows: title, folder, last activity, archived, unread |
~/.config/agent-dash/state.json | View settings, the Worktree checkbox state and collapsed groups |
/tmp/agent-dash-{pid}-preview.fifo | Live preview FIFO |
FIFOs are created with O_NONBLOCK in /tmp. If Agent Dash crashes hard, a stale FIFO may be left behind — it's harmless, and the next launch will replace it.
What next
You've got the loop. From here, a few common places to go:
- Press ? inside Agent Dash for the full, searchable keybind overlay.
- Read the configuration reference (TOML or JSON) to change the layout, theme, or launch command.
- See Claude Code for how sessions are found and when they are archived.