Every project has one target terminal: the one you are actually watching. Switching work switches what is attached to it, and the session you were in keeps running in the background. It only stops taking up the screen. devpit draws the terminal; tmux runs what is inside it — psmux, on Windows, where the shell is PowerShell.
Opening one
- New Task → Terminal, or ⌘T (Ctrl on Linux and Windows).
- From a card, Open a terminal in its Work section. That one opens in the card's own checkout, making it first if the card has none. Beside it there is a button for each agent CLI installed on this machine, which opens a terminal with that agent already started.
A new terminal opens the Default agent from Settings → Providers, or a plain shell if you chose No agent there. "A plain shell is an answer too." If the saved default is no longer installed, Settings says so and a new terminal opens a shell.
Panes
A terminal holds a tree of panes. ⇧⌘D splits to the right and ⇧⌘E splits downwards, while the terminal has focus. Each pane's corner has buttons for a New terminal, Split right, Split down and Close.
The layout is devpit's, not tmux's: a tmux split would show every pane in a single client and fight the layout devpit keeps for you. A split opens in the folder of the pane it came from, so a split in a card's checkout stays there, on its branch.
Starting an agent in a pane
devpit starts an agent by typing its launch line into the pane, once the shell has reached its prompt. A pane that is already busy is refused with "this terminal is running <command>" rather than being typed into mid-command.
Only Claude Code is driven end to end. Codex, Gemini, Cursor and the rest are launched and recognised in a terminal; those that report through hooks show what they are doing too. See Providers.
Links and dropped files
A web address printed in a terminal opens in your browser with a click, and a file path opens in devpit's viewer, at the line when one follows the path. Files dropped on a terminal are typed at the prompt as quoted paths, and not run. Dropped on the file tree they are copied in; dropped on Artifacts they are kept there — see Files and changes.
Knowing what is running
devpit asks tmux which program is in front, and reads the process's own command line as well, because Claude Code, Codex, Gemini and OpenCode all run as node and tmux alone would only ever say node.
With Agent status hooks on in Settings → Providers, the island, the sidebar and the card also show working, waiting and done, and the step the agent is on. Those hooks travel with the launch of the agents devpit starts, and nothing is written into your own configuration, "so turning this off is the whole of turning it off."
Closing one that is running
Closing a pane stops what is inside it — everything its shell started, background jobs included, not only what is in front — so devpit asks first: Stop this agent? ("Closing this terminal will stop the agent's current work.") or Stop running command? Ticking Don't ask again for running terminals turns the question off. Ask before stopping a terminal in Settings → General turns it back on. Removing a project ends its terminals.
Closing the devpit window is a different thing entirely. See Sessions that outlive the window.
Colours
The terminal keeps its dark ground in every theme, because a shell paints its ANSI colours for a dark background and they stop being readable on a white one. Terminal contrast in Settings → Appearance lifts them further if you need it.