Open source
AgentDeck: one control panel for every AI coding agent
Every AI coding agent keeps its behaviour in a different file, in a different format, in a different folder. AgentDeck finds them all and gives you one window to tune how they talk, what they are allowed to do, what they cost, and whether they agree with each other. It is a plain Node server with no dependencies and no build step. Every change is shown as a diff first and can be undone.
21coding agents supported through one adapter file
65tests, run on Windows, macOS and Linux × Node 18 to 24
0dependencies and 0 network requests
~25behaviour levers plus presets such as Token saver

What happens when you press Apply
- DetectFind each agent by its config folder, binary or editor extension.
- CompileLevers become instruction text; settings become each tool’s own keys.
- DiffEvery file change is shown before it is written.
- Back upA copy of each target is saved to ~/.agentdeck/backups.
- WriteAtomic write via a temp file and rename. Comments and unknown keys survive.
- UndoAny action or single file can be restored later.
The problem
I run several coding agents. Claude Code reads CLAUDE.md and settings.json, Codex reads AGENTS.md and a TOML file, Gemini CLI has its own again. Keeping permissions, MCP servers and working preferences consistent across them meant editing six files by hand and forgetting one.
What it does
- Behaviour levers: about 25 controls (verbosity, grounding, scope, code volume, planning, testing, autonomy) that compile to instruction text, applied to one agent or all of them in one diff.
- Enforced settings and permissions written into each tool’s own config: model, reasoning effort, approval mode, sandbox, allow and deny lists with one-click rule sets.
- Hook recipes as plain Node scripts, so they work on Windows: block destructive commands, keep the agent out of .env files, require passing tests before it may finish.
- Usage and cost by day, model and project, read from Claude Code’s own transcripts on disk. Nothing is uploaded.
- A health check for plain-text secrets in MCP configs, settings that no longer parse, safety modes left off, and hooks pointing at missing scripts.
- Agents, skills, commands and MCP servers created once and copied to several tools, each in its own location and format.
Engineering choices
- The server binds to 127.0.0.1, generates a session key per run that is handed only to the window it opens, checks the Host header against DNS rebinding, and ships a content security policy. It makes no network requests.
- Writes are atomic (temp file, then rename), preceded by a backup, and preserve byte-order marks, file modes, comments and unknown keys in TOML and frontmatter. A JSON file with comments is left alone and sent to the raw editor.
- Adding a tool is one entry in lib/adapters.js; the support table in the README is generated from that file so the docs cannot drift.
- The destructive-command guard parses a shell line into segments and words first, so a commit message that mentions rm -rf is not mistaken for the command.

