Codex, Gemini, OpenCode, Cursor, GitHub Copilot, Amp, Droid, Grok, Aider, Goose and Crush are CLIs devpit knows by name. It can start them and it can tell you they are running. It cannot hold a conversation with one, and it says so here rather than offering a chat it cannot hold.
What you get
Starting one. The palette — ⌘K (Ctrl on Linux and Windows) — lists every CLI devpit knows, and picking one opens a terminal and types its name into it, which is what you would have done. From a card, the Work section has a button per installed CLI that opens a terminal in that card's own checkout with the CLI already started. Or make it the Default agent in Settings → Providers, and every new terminal opens it.
Starting an agent is opening a terminal and typing into it. Nothing is spawned
beside the pane: a process the terminal does not own is one that closing the
tab cannot stop. A pane that is already busy refuses — "this terminal is
running <command>".
Recognition. devpit reads what is actually in front of each terminal rather
than trusting the process name, because agent CLIs often run under node or a
launcher, and the process name alone would just say node. So the tab
strip, the sidebar and the project picker can say that a terminal has Codex
open, and closing that pane asks Stop this agent? instead of closing work
you were watching.
Running, unless it reports. A recognised CLI shows as running. Working,
waiting and done come from hooks. Claude Code takes devpit's own, and Gemini
CLI reports from devpit's terminals with nothing to set up. Any other agent can
report with devpit-agent hook, and then shows on the island
and its card like Claude Code — see Providers. Until one
does, the card says an agent is open, and nothing more.
What you do not get
No chat and no agent steps: both are devpit reading a stream of structured output, and Claude Code is the only CLI whose output devpit knows how to read. A command step can of course run any of these as a command, the way a shell script would.
Inside devpit, a terminal agent behaves exactly as it always has. Adding a second driven CLI means a new driver in devpit's own code — one file per CLI, and today there is one.