conchv0.1.8

Reference

Keys and mouse

Every key binding in the TUI, grouped by where it applies. Press ? in conch to see them all; the prefix ctrl+b can be changed with [keys] prefix in config.toml.

Tree

KeyAction
↑↓ jkmove
←→ hlfold
spacetoggle
enteropen pane / view changes
/filter (/ ! keeps only the agents waiting for you)
!next agent waiting for you
Qreview queue: what needs a decision, across every machine (v checks a row, o opens the check's output, f sends a failed check or CI run to the branch's agent, R hands a reviewer's report to it, C continues an agent stopped at its plan limit once it resets, x dismisses a row or takes a scheduled one off the schedule)
Bbroadcast a message to the agents and terminals of the selection
ffiles: browse the selected project's checkout, or a branch's worktree
oopen PR
b $on a branch: the git window — any git command, the everyday ones behind tab, and messages for the agent working there
Ton a branch, or an agent working in one: move its worktree to another machine or a new sandbox, agents and all; on a project: move the whole project. The status bar shows T move wherever it does something
ycopy
mmenu
?all keys: ↑↓ jk pgup pgdn g G and the wheel scroll the list, ←→ hl (or shift+wheel) pan across long lines, any other key or a click closes it
qdetach

Create

KeyAction
ttask: a branch and worktree in a git project; on a machine, or a folder that isn't a repository, an agent with the prompt right there
cdefault agent here
Astart or install any agent
nterminal here
Hssh to a host from this computer, with extra ssh options if you need them; asks whether to save the host (default no)
eon a saved ssh host or an ssh session: edit its host, name, folder and ssh options
Kon a saved ssh host or an ssh session: set up login without a password — copies your public key to the host (makes ~/.ssh/id_ed25519 first if you have no key)
aon a folder of SSH: add a saved host to it, without connecting
Ppair a phone with this computer: a QR code and a one-time code for conch web, for a phone that may type into terminals too; in it v / r / f give a new code for view, reply or full, y copies the link and c the code (or click them), s starts conch web when it isn't running. 🌐 in the status bar opens it too
aadd project
Madd a machine: Over ssh…, or New sandbox… and a provider (sandboxes)
rrename an agent, terminal or machine
xclose / remove (a branch: its worktree, or the branch itself once that is gone)
Rrefresh git and PRs, or reconnect a machine

Other keys on tree items:

KeyAction
iagent setup for a project, branch or pane. In it: s gives the other agents this one's setup (one setup, every agent), u undoes that, S installs or removes conch's own skill for the agent whose tab is open, c copies missing local files, f edits the patterns
Fnew worktrees of a project: its setup command and local file patterns
Lopen a checkout's preview ($CONCH_PORT) in the browser
Wclean up a project's worktrees
Ssummarise an agent
Cinstall Claude Code on a machine
:ask the brain
,settings
v / s / Oopen the selected item in a split right / below / a new tab

Pane

KeyAction
any keygoes to the program
ctrl+b [scroll history
ctrl+b then any keyback to the tree
ctrl+b zzoom
ctrl+b rredraw the pane
ctrl+b uopen a link the pane printed: put back together across the lines and the box it was wrapped in, opened in the browser and copied
ctrl+b bback to where the split was before the last jump; again returns
ctrl+b !next waiting
ctrl+b Malert when the pane goes quiet after printing, like tmux's monitor-silence; again to stop
ctrl+b Aalert when the pane prints while you are elsewhere, like tmux's monitor-activity; again to stop
ctrl+b ddetach
ctrl+b ?all keys

Changes

KeyAction
↑↓file
enterdiff
spacemark a file for the next commit — a click in the ✓ column does the same (in a diff, the hunk under ▸)
n Nnext, previous hunk in a diff
sin a diff, side by side or unified (wide terminals start side by side)
ain a diff, comment on the hunk under ▸ (✎)
Ssend the branch's comments to its agent
eopen the file in $EDITOR at the hunk under ▸, in a pane of its own
Fin a diff, follow what just changed
Rre-read the branch, or the open diff
ctrl+b Cthe branch this split is on, in a tab of its own
ccommit the marked files, or every change
Ppush — when the remote is ahead, conch offers to take its commits and put this branch's on top
popen a pull request
Mmerge into the base
Ddiscard the branch and its worktree
Acompare the attempts at this task
Tmove the worktree to another machine or a new sandbox, agents and all
oopen PR
ycopy path / diff
escback

Sessions

KeyAction
enterresume the session, or show its pane when it is open
/search titles and conversations (enter keeps, esc clears)
sshare the conversation with another agent, new or running, here or on another machine
Yopen the conversation to scroll, select and copy from
ddelete the session (after confirming)
afilter by agent
Rreload
Iresume all interrupted runs
xdismiss an interrupted run

Files

KeyAction
↑↓ jk, pgup pgdn, g Gmove
enter l →open a folder, or show a file (below 100 columns the preview takes the split; esc goes back)
h ←fold the folder, or go up to the one it is in
/find by name in what has been loaded (enter keeps, esc clears)
atype the file's path into the agent working in this checkout
ycopy the file's path
dthe file's diff, in its branch's changes
eopen it in $EDITOR in a new terminal, on its machine
. / ihide dotfiles (they are shown) / show files git ignores. Both are remembered
wthe project's next checkout: the main one, then each worktree
rread the checkout again
Uon a machine elsewhere: copy a file or folder from this computer into the selected folder there (or the one the selected file is in). Dropping files on the view does the same
Don a machine elsewhere: copy the selected file or folder to ~/Downloads here
- backspace / ~under a machine's own Files: up a folder / back to its home
esc qback to the tree

Click a line to select it and again to open it; the wheel moves the selection, or scrolls the preview under the pointer; click a folder in the path above the list to go back up to it.

Splits and tabs

Keys
ctrl+b % or v / ctrl+b " or -split right / down (beside a terminal or agent, the new split starts a shell in its folder; otherwise it waits for you to open something)
ctrl+b ←→↑↓, o, ;move focus between splits: by direction, to the next, to the last one focused
ctrl+b { / }swap the split with the previous / next
ctrl+b qshow split numbers; press a number while they show to focus that split
ctrl+b spacenext layout: even-horizontal, even-vertical, main-horizontal, main-vertical, tiled (ctrl+b alt+1–alt+5 pick one)
ctrl+b ctrl+arrow / alt+arrowresize by 1 / 5 cells; press the arrow again within half a second to keep resizing
ctrl+b xclose the split; an agent or terminal in it ends, after you confirm
ctrl+b c, n, p, 0-9, lnew tab with a terminal in it, next, previous, go to, last tab (among the tabs listed for the tree selection)
ctrl+b < / >, .move the tab left / right, or to a position you type (among the tabs listed)
ctrl+b wpick any tab or split, grouped by project and CLI, with each split's branch or folder and agent state
ctrl+b &, ,close, rename tab
ctrl+b N, ( / ), $, Xnew workspace, previous / next workspace, rename it, close it (its projects, hosts and tabs move to workspace 1; it asks whether its agents and terminals move too or end) — also the +, numbers and × beside conch at the top of the sidebar
ctrl+b =, zequalize splits, zoom
ctrl+b rdraw the selected pane's screen again, when a program left stale text behind (a partial redraw after the pane changed size). conch clears its copy of the screen — without keeping the stale one in the scrollback — and tells the program its size changed, so nothing is typed into it; a program that doesn't repaint (a plain shell) shows its prompt again on the next keypress. Also in the pane menu, and conch redraw ID from a shell.
ctrl+b Stype into every agent and terminal in the tab at once, like tmux's synchronize-panes; their borders turn amber and the status bar shows SYNC. Press it again to stop.
ctrl+b ddetach (agents keep running)
ctrl+b !, :jump to the next agent waiting for you, ask the brain
v / s / O in the treeopen the selected item in a split right / below / a new tab

These follow tmux's default bindings; ctrl+b 1 is the first tab and 0 the tenth. ctrl+b ! jumps to the next agent waiting for you instead of breaking a pane out.

Scroll mode

ctrl+b [ (or ctrl+b pgup) enters scroll mode with a cursor.

KeyAction
↑↓←→ / hjklmove the cursor (scrolling at the edges)
0 / $line start / end
pgup / pgdnpage
goldest line
/ / ?search up (back through the history) / down; enter finds, esc cancels, enter alone repeats the last search
n / Nnext match the same way / the other way; a search that reaches an end goes on from the other
v or spacestart a selection
y or entercopy the selection
any other keyreturn to live

Git panel

KeyIn the git panel
enterrun what is typed: git's arguments (a leading git is optional), or a message for the agent
↑↓earlier commands
tabshow the everyday actions in place of the output; each has its own key, the arrows move and enter runs one; tab or esc goes back
ctrl+tsend to the next agent on the branch instead, then to git again
pgup pgdnscroll the output (the wheel too)
escclose

Mouse

  • Click to select; click a selected folder (or its arrow) to fold. A click on a branch shows its changes; b or $ opens the git window over them.
  • Double-click to open.
  • With [ui] hover on (Settings → Theme), the row or tab under the pointer is tinted before you click it, a link in a pane is underlined while alt or ctrl is held, and in Ghostty or kitty the pointer becomes a hand over it. It asks the terminal to report every pointer move rather than only drags — a message per cell crossed — so it is off until asked for, and a program in a pane still receives only the mouse it asked for.
  • Right-click for a context menu. On an agent's pane it holds Prompt…, which sends that agent its next message and tells you when the work it started ends (see Agents working together).
  • A row's menu also holds Actions… when you have configured any: your own commands from config.toml, run in that row's checkout on that row's machine. See [[actions]].
  • Wheel to scroll; over a pane, the wheel scrolls back through its history.
  • Drag the sidebar's edge to resize, or a border between splits.
  • A pane with history keeps a bar on its right edge: how far back the screen is, and how much there is. Drag it to go there directly, rather than turning the wheel through a long conversation. Borders shared with another split still resize — the outer edge is the one that scrolls.
  • Drag a row into a folder of its own section, or back out onto the section itself to leave it. The row under the pointer is marked while you hold; a folder of another section does not take it, since a pane listed under Terminals belongs in a Terminals folder.
  • With the tree grouped by tab, drag an agent or terminal row in the tree onto a tab's section to put it in that tab — the same move, reached from the tree. A pane that was in another tab leaves it, and that tab closes if it was the last split in it; one that was in no tab is opened there. The section under the pointer is marked while you hold; let go anywhere else and nothing moves.
  • Drag a split by its title onto a tab in the bar to move it into that tab: it leaves the split it was in, which closes as closing a split does, and the tab it was dropped on is the one shown afterwards. A tab that held nothing else goes with it. Dropped on the + it goes to a tab of its own, beside the one it left — conch has no "break this split out" key, since ctrl+b ! jumps to the next agent waiting. The tab or + under the pointer is marked while you hold. Let go on the space between tabs and nothing moves; nor does the + take the only split of a tab, which is already a tab of its own.
  • Drag a split by its title onto another split to swap the two — the layout stays as it is, so the halves keep the sizes you gave them, and each view keeps what it was holding (a diff its scroll, a file explorer its folder). While you hold, the split being carried is marked and so is the one it would land on; after you let go, both stay marked for a moment, since two panes full of text swapping is otherwise hard to see happen.
  • Drag a tab along the bar to reorder it — the bar reorders under the pointer as you go, and letting go anywhere keeps it (ctrl+b < > and ctrl+b . do the same from the keyboard).
  • Drag across a pane or a page (a diff, a file, a list) to select and copy; double-click copies a word in a pane, triple-click the whole line (without the blanks it is padded to). A line too long for the pane is several rows on screen but one line when copied: conch joins the rows it wrapped over, so a command pasted into a shell runs as one command. Dragging past the top or bottom edge, or turning the wheel mid-drag, scrolls and keeps selecting.
  • Drop files on a remote machine's pane to upload them there and paste their paths there.
  • alt+click (option+click) or ctrl+click a link an agent printed to open it in the browser; it is copied as well. A plain click never opens a link: it selects, or belongs to the program when it asked for the mouse. A link wrapped over several rows opens whole. ctrl+b u still lists every link on the screen, which is the way to reach one that has scrolled away.
  • Click ⚑ N waiting · N done to jump to the next agent that needs you.
  • Click the plan chip (Claude 5h 42% · 7d 18%) for a window with all of it, at the bottom right beside the chip: every agent that has reported on every machine, and every window it named — the five-hour, the week, a weekly allowance for one model, a spend limit — each with a bar that fills as it opens, the percentage, when it resets (both how long and at what time), when the agent last said so, and what conch itself has seen that machine spend — which counts whole conversations, as each agent counts them, with the prompt, cache-read, cache-write and output tokens kept apart. That is not the same as the agent's own usage panel, which counts the run it is on: a conversation days old reads as hundreds of dollars here and a few in a panel opened a minute ago, and both are right. Click it again or press esc to close.

Clicks inside a pane go to programs that use the mouse. Hold shift (option in iTerm2) to select text with your terminal, or set [ui] mouse = false.