See every coding agent on your machine. Know which one needs you.
Devplane is a control plane for AI coding agents. It watches every Claude Code session already running — terminal, VS Code, desktop, background — drives any agent that speaks the Agent Client Protocol, and turns “the agent says it’s done” into “your project’s checks agree”.
$ devplane ls
8 projects · 23 sessions · 5 working · 2 need you · 4 idle · $4.1812 quiet (nothing heard for hours) — devplane ls --allsaas· 4 issues · 2 PRs (1 needs you)◆ 7c vscode 62% $1.04 3m Keep the legacy /v1/login route?
core-lib· 2 sessions · 1 PR● a1 vscode 88% $0.41 2s Bash: cargo test --workspace
○ 4f vscode 12% $0.02 41m waiting for a prompt
mobile◆ 04 cli – $0.12 8m Permission: Bash rm -rf node_modules
Grouped by project, with the issues and pull requests waiting on you. Quiet editor tabs are counted, not listed — and any that starts asking for something joins the working set at once.
Five windows, five agents, and no idea which one is stuck
Claude Code’s own claude agents shows background sessions in one directory. The VS Code Agents window shows what VS Code started. Neither spans your terminal, your editor and the desktop app at once — and none of them knows what done means for your project.
Devplane sits above all of them, on documented interfaces only, and stays out of the way. It does not replace your editor, your tracker or your agent. It is the layer that spans them.
It works before you configure anything. Sessions are discovered from Claude Code’s own roster, so devplane ls is useful on first run with nothing installed. Connecting is what adds live state: cost, context usage, blocking, and the permission gate.
What it does
Sight
Every session on the machine, on one board, with state, cost, context percentage, worktree and pull request — and every open issue and pull request across your projects beside them. Hooks and OpenTelemetry for live state; the session roster for discovery. Your workflow does not change.
Dispatch, prompt, answer permissions and cancel — for Claude Code, Codex, OpenCode and Gemini CLI out of the box, and any other agent that speaks the protocol by naming its command in one file.
Work outlives sessions. An isolated checkout, your own commands as the definition of done, failures handed back to the agent that wrote the code — bounded — and then a person is asked. An unearned claim of done never reaches review.
Declared chains of runs: one agent implements, another reviews, a gate decides, and a person approves where the project says so. The cursor lives on the work item, so a crash resumes where it stopped instead of paying twice.
Claude Code’s rule syntax, implemented in full and resolved per repository. Deny always wins, and holds in auto mode too, where a classifier approves routine calls and no prompt ever appears. A rule that cannot match anything is refused rather than carried, because a deny rule that silently matches nothing reads as protection and is none. The board reads every repository’s rules back in the order they are evaluated, and writes none of them.
Every verdict a rule reaches, every gate, every push and every pull request is appended to a decision log with the reason behind it. “Auto-approved” is not an answer. “Auto-approved by Bash(pnpm test *)” is.