Priyanshu Yadav

● open to roles · IST

← work

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.

Role
Author
Year
2026
Built with
Node.js, Plain ES modules, TOML and JSON config parsing, GitHub Actions
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
AgentDeck overview screen listing detected coding agents with their instruction files, settings and health status.
The overview: every detected agent, its files, and what the health check found.

What happens when you press Apply

  1. DetectFind each agent by its config folder, binary or editor extension.
  2. CompileLevers become instruction text; settings become each tool’s own keys.
  3. DiffEvery file change is shown before it is written.
  4. Back upA copy of each target is saved to ~/.agentdeck/backups.
  5. WriteAtomic write via a temp file and rename. Comments and unknown keys survive.
  6. UndoAny action or single file can be restored later.
Behaviour levers only touch a marked block at the end of CLAUDE.md, AGENTS.md or GEMINI.md. Everything outside the markers is never rewritten.

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.
AgentDeck behaviour tab with lever controls for verbosity, grounding and autonomy.
Behaviour levers compile to a marked block in each agent’s instruction file.
AgentDeck hooks tab listing hook recipes such as guard destructive commands and protect secrets.
Hook recipes are plain Node scripts, so they also run on Windows.