Maggie

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.

Download for Mac
curl -fsSL https://getmaggie.dev/install.sh | sh

macOS, universal build. Free and open source, MIT licence. Latest release.

An Australian magpie in profile
Main › lumen-shop › ✱ checkout: retry failed payments
❯ 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?

▍
12% 4h 22m · 38% 3d 6h · Fable 61% 4% 6d 11h Awake Voice 6.2 GB 9
Sessions grouped by project, client and branch. A row's colour is what its agent is doing right now; the status bar is your plan quota, voice, memory and keep-awake.

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.

Working 3
checkout: retry failed paymentslumen-shop
Catalogue import from CSVharbour-books
auth: rotate refresh tokensatlas-api
Needs you 1
search: typo tolerancelumen-shop
Review 2
emails: receipt templatelumen-shop
Invoices: late fee rulesharbour-books
Done 2
docs: onboarding guidelumen-shop
ingest: dedupe eventsatlas-api

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.

checkout-retries 2 commits ahead of main
  • Msrc/payments/service.ts+41−6
  • Msrc/payments/service.test.ts+58
  • Asrc/payments/withRetry.ts+27
a41c9e2feat(payments): retry a declined charge with backoff
7f03b1dtest(payments): cover the final failure
3 files to commit Land when clean

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 weekSessionsTokensCost
Mon64.1M$18.40
Tue97.8M$31.06
Wed119.2M$36.90
Thu75.5M$22.15
Fri93.3M$12.72
Total4229.9M$121.23
Claude 5-hour window12%
Claude weekly38%
Codex weekly4%

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

Download for Mac
curl -fsSL https://getmaggie.dev/install.sh | sh

Or build it from source. The README has the steps.