Run the agents.
Keep the control.
Software engineering has become orchestration: several coding agents working in parallel, each needing you at a different moment. Maggie is an Agent Development Environment for Mac, built for running many Claude Code and Codex sessions at once without losing track of any of them.
curl -fsSL https://getmaggie.dev/install.sh | sh
macOS, universal build. Free and open source, MIT licence. Latest release.
❯ claude -w checkout-retries Claude Code · lumen-shop · worktree checkout-retries › Retry failed payments three times with backoff before we give up. ● I'll start with how PaymentService handles a declined charge. ● Read src/payments/service.ts ● Read src/payments/service.test.ts ● Edit src/payments/service.ts +41 −6 ● Edit src/payments/service.test.ts +58 ● Bash pnpm test payments ✓ 41 passed (2.8s) ● charge() now runs through withRetry: three attempts at 1s, 4s and 9s, and a PaymentDeclined after the last one. The receipt email still sends once. Tests cover the retry path and the final failure. Want me to commit this? ▍
The editor was built for one person typing
The shape of the work has changed. Engineering is no longer typing code into one file. It is briefing a coding agent, letting it run, and answering it when it needs you. Then doing that for five more at the same time.
The tools did not change with it. An IDE gives you one project, one tree, one cursor. A terminal gives you tabs that all look alike. Neither tells you which of your eight sessions is waiting on you, which one just finished, or what the morning cost.
An Agent Development Environment is built around that job. Many independent sessions, each in its own worktree, organised the way your work is organised, with their state, cost and output visible at a glance. Control stays with you, and the load on your attention does not grow with the number of agents.
The row is the status
You do not read nine terminals to know who needs you. You look at the colours.
- Blue
- Working on a request.
- Red
- Needs you. A permission, a question or a dialog.
- Yellow
- Finished, with edits that are not committed yet.
- Teal
- Committed in its worktree, not yet landed on main.
- Green
- Finished, committed and landed. Nothing left to do.
Set a row to Auto and it follows the agent. Set it to Attention and it stays quiet until a session needs you. Folders carry a light for what is inside them, so a collapsed client or branch still tells you when something wants an answer.
What is in the box
Many independent sessions
Every tab, split or window is its own agent session, Claude Code or Codex, in its own git worktree. Two sessions never share a checkout, so what one changes is its own.
Folders and groups, at every level
Organise sessions by project, by client, by branch, nested as deep as the work goes. Counts and lights roll up, so a collapsed folder still shows what is happening inside.
Session continuity
Quit, update or lose power, and every window, tab, split and session comes back where it was, resumed in the same conversation. Nothing is lost when the app closes.
Kanban board
⌘K opens the sessions as a board. Columns they move through, cards for work items you keep by hand, and filters that narrow the sidebar to match.
Cost and quota in view
A usage panel prices every session by day, project and model, with a custom range for the accountant. The status bar shows how much of your Claude and Codex plan windows is used.
Memory management
The status bar shows the memory the sessions and the app are using. Click it for the Resource Manager, which lists every session and what each one costs the machine.
Source control that follows the worktree
The panel shows the session's branch, its changes and the commits it is ahead of main. The Auto tab lands the worktree on the main checkout when it is clean.
Markdown, read where it was written
⌘-click a Markdown path an agent prints and it opens in a pane beside the session, reloading as the agent edits it, with a button to open it in your editor.
Voice control
Say which project to start a session in and what to ask. Maggie starts it, tells you when a session needs you, and takes your answer by voice.
Hear the latest reply
A speaker on every row reads that session's last message aloud, so you can follow six sessions while looking at one.
Caffeine
One switch in the status bar keeps the Mac awake while the flock works, lid closed included.
Force Multiplier
A Claude Code plugin in the View menu that measures a repository's engineering force multiplier: functional lines shipped per engineer-day against a 150-line baseline, with time and cost per milestone, in a dashboard.
Hand the work to the other agent
A session's menu passes it to the other agent in the same worktree. Continue the Conversation writes the transcript so far and starts the other agent reading it, so Codex picks up where Claude Code left off, or back again.
Paste an image, the agent gets it
⌘V with an image on the clipboard sends Claude Code or Codex the keystroke they read images with. ⌘V with text pastes text, as it always did.
From your phone
Maggie serves its sidebar and a live terminal to a paired iPhone or iPad over Tailscale, and a session that needs you lights up the phone. The companion app is in testing.
A board for the busy days
Press ⌘K and the sidebar becomes a board. Sessions sit in the columns they move through, beside work items you keep by hand, and the board's filters narrow the sidebar too. It is the same flock, laid out so you can see all of it at once.
Source control that follows the worktree
Each session works on its own branch in its own worktree. The panel shows that branch, its changes and the commits it is ahead of main, and when the worktree is clean the Auto tab lands it on the main checkout for you.
- Msrc/payments/service.ts+41
−6 - Msrc/payments/service.test.ts+58
- Asrc/payments/withRetry.ts+27
What the flock costs
Cost and tokens for every Claude Code and Codex session, by day, project and model, priced at current rates, with your Claude and Codex plan limits beside them. A custom range for the accountant.
It is all computed from the transcripts already on your disk. Nothing is sent anywhere.
| This week | Sessions | Tokens | Cost |
|---|---|---|---|
| Mon | 6 | 4.1M | $18.40 |
| Tue | 9 | 7.8M | $31.06 |
| Wed | 11 | 9.2M | $36.90 |
| Thu | 7 | 5.5M | $22.15 |
| Fri | 9 | 3.3M | $12.72 |
| Total | 42 | 29.9M | $121.23 |
Talk to it
Say which project to start a session in and what to ask. Maggie starts it, tells you when the session needs you, and takes your answer by voice. A speaker on any row reads that session's last reply.
Start a session in lumen-shop and have it fix the flaky checkout test.
Started. It is reading the test now. I will tell you when it needs you.
What did search finish with?
It wants permission to edit tokenizer.ts. Shall I allow it?
Yes.
Allowed. Search is working again.
Nothing to install in the agents
Maggie finds the Claude Code running in each terminal through Claude Code's own session registry and reads the session's transcript. It starts Codex with --no-daemon, so each terminal's codex owns its session, and reads the turn's state, model and edits off the rollout file the process keeps open. No hooks, nothing added to either agent's settings.
Usage, cost and state are computed from files already on your disk. Nothing leaves the Mac. Underneath the sidebar is a real, GPU-rendered terminal, and your existing terminal configuration still applies.
Why Maggie
Australians call the Australian magpie a maggie. It sings one of the most complex songs of any bird, remembers faces, and keeps a close watch on everything that moves near the nest.
Give the flock a home
curl -fsSL https://getmaggie.dev/install.sh | sh
Or build it from source. The README has the steps.