{"slug": "i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one", "title": "I use three coding agents. So I built one desktop app to run them all, under one set of rules", "summary": "A developer built Bellows, a free cross-platform desktop app that runs multiple coding agents — including Codex, Gemini CLI and Claude — side by side in tabs under a single shared rule set. Bellows acts as an Agent Client Protocol (ACP) client, unifies permission prompts into consistent buttons, and records every allow and deny in a hash-linked audit trail. It also supports shared session links with watch, suggest or type roles, git worktree isolation, and turning successful agent file jobs into sealed standalone tools.", "body_md": "Most days I use more than one coding agent: Codex for one job, Gemini CLI for another, Claude for a third. Each lives in its own terminal, asks permission its own way, and leaves no shared record of what it was allowed to do.\n\nSo I built **Bellows**: a free desktop app for Windows, Mac and Linux that runs them all side by side, under one set of rules.\n\nRun Codex, Gemini CLI and Claude sessions in tabs, in the same project. Gemini CLI, Codex and Qwen Code have presets, and Bellows is an **Agent Client Protocol (ACP) client**, so any agent that speaks ACP is one command away. If Ollama or LM Studio is running, one click starts a session on a local model.\n\nPermission prompts are buttons, and they look the same whichever agent asks. Save an answer as a rule and it applies to every agent. Every allow and deny goes into a **hash-linked audit trail**, so an edit or a gap shows.\n\nCodex runs through its own app-server, the one mode in which it asks before commands and edits. The few commands it treats as safe still run unasked, and Bellows records each one as having run.\n\nSend a colleague a link to your running session. Their link carries one role: **watch, suggest or type**. Suggestions wait for you to accept them, and answering permission prompts is a separate switch, off by default. Everything stays on your machine. On your own network it's free.\n\nWhen an agent gets a file job right, press **Keep as a tool**. It becomes a small app with a Run button: next month, pick next month's files and press Run, with no agent and no AI charge. Kept tools run sealed off (no network, no shell), can be sent to a colleague as one file, and **Check** proves they still work.\n\nStart any agent in its own **git worktree** and review what it changed before you keep it. Resume or fork old sessions, and rewind files in Claude sessions.\n\nThe desktop app is free, all of it. A paid Team plan adds one policy for every machine and a shared audit trail.\n\nRunning agents side by side: [https://bellowsai.app/guides/run-several-coding-agents-side-by-side](https://bellowsai.app/guides/run-several-coding-agents-side-by-side)\n\nWhich agents do you use together, and what would get you out of the terminal?", "url": "https://wpnews.pro/news/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one", "canonical_source": "https://dev.to/bellows/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one-set-of-rules-jll", "published_at": "2026-10-05 17:43:02+00:00", "updated_at": "2026-10-05 17:47:54.712577+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "agent-protocols", "ai-tools"], "entities": ["Bellows", "Codex", "Gemini CLI", "Claude", "Qwen Code", "Ollama", "LM Studio", "Agent Client Protocol"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one", "markdown": "https://wpnews.pro/news/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one.md", "text": "https://wpnews.pro/news/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one.txt", "jsonld": "https://wpnews.pro/news/i-use-three-coding-agents-so-i-built-one-desktop-app-to-run-them-all-under-one.jsonld"}}