If you use a terminal coding agent on more than one project, you probably know my old routine. A terminal window per project. cd into each one. Start claude (or codex, or gemini). Start the backend. Start the frontend. Then spend the next hour alt-tabbing to find out which agent finished and has been sitting there waiting for me.
I wanted something deliberately small: not another AI, not another IDE, just a home for the agents I already use. So I built Quarters, a free, open-source (MIT) Mac app where every project gets a room.
Repo: https://github.com/amithgc/quarters
The problem
I work on several repos at once, and each one usually has an agent running plus a dev server or two. The agents are good at working on their own for a while, but then they stop and wait for me. With five terminal windows open, the hard part was never the typing. It was knowing which window needed me.
What Quarters does
- A room per project. Switch projects in a click (⌘P). Each room keeps its agent, its terminals and its git status.
- Who's waiting. When an agent is waiting for you, the project shows "◐ your turn", and ⌘J jumps to the next one that needs you. There's a Dock badge and notifications too.
- Automations. Start the whole dev stack for a project with one action instead of three terminals.
- Prompt queue and saved prompts, conversation search and resume, git worktrees, and a command palette (⇧⌘P).
Bring your own agent
Quarters has no AI of its own, no accounts, no cloud and no telemetry. It runs the agent you already have installed and signed in: Claude Code, Codex, Gemini CLI, Antigravity, OpenCode, GitHub Copilot CLI, Devin or Aider, chosen per project.
Claude Code gets the deepest integration, because it keeps local logs I can read: session stats, plan usage, per-project token usage with a 14-day chart, and past conversations. The other agents get the tabs, alerts, automations, worktrees, git and remote access.
Working from my phone
The feature I use most is remote access. I start something at my desk and approve it from the sofa. It's off until you start it, it listens only on the Mac, and you reach it through a tunnel you choose (Cloudflare, Tailscale) or your home Wi-Fi. Devices are paired with passkeys from the Mac, and each device can be full, type-only or watch-only. There are rate limits and growing lockouts.
I've tried to design it to be safe to expose, and the design and its limits are written up in SECURITY.md in the repo. I'd genuinely welcome critique of it.
Building it in Go
Quarters is Go with Wails (Go plus the system WebView, not Electron) and xterm.js for the terminals. One event stream feeds both the Mac window and any browsers connected remotely.
The thing I spent the most time on was idle CPU. Early versions sat around 20% of one core. Now it's about 2% of one CPU core when idle, measured on my Mac with 14 projects. Most of the win came from two rules: only run git when something may actually have changed, and run no timers while the window is hidden.
What it doesn't do
It isn't a general-purpose terminal replacement, and it has no AI of its own. It's pre-1.0, so expect rough edges. Windows works as a browser client; the server runs on a Mac, Linux or WSL.
Try it
brew install --cask amithgc/tap/quarters There's also a headless Linux server you use from a browser (brew install amithgc/tap/quarters-server), or you can build from source. Everything is at https://github.com/amithgc/quarters and https://quarters.amithgc.com/.
If it's useful, a star on GitHub helps other developers find it, and issues with what you'd like to see are very welcome. I'd also love to hear how you juggle multiple agents today.
Quarters is an independent project and isn't made by or affiliated with Anthropic, OpenAI, Google, GitHub or any of the agent makers.


