devpit

Codex, Gemini, Cursor and the rest

Agent CLIs devpit launches and recognises in a terminal.

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.