When AI agents build your software, they keep the backlog and the plan as markdown in each repository. Project Magic reads those files, the branches and the pull requests across all your repositories, and shows what is planned, what is in flight, what is done, and what is waiting on you.
last commit 2 h ago on feat/or12-invoices
in progress 2 blocked 1 built 3 todo 14
OR7 Renewal reminders built
the email copy checked against the terms
feat/or12-invoices → OR12 Invoices as PDF
3 ahead · PR #41 · “Number invoices per tenant”
spike/hosting not in the backlog
A card per repository: what is in progress and on which branch, what is in review, what is blocked and why, and the plan’s next task. No more opening each repository, or asking each agent, to find out where things are.
Agents can build and merge, but some things need a person: an acceptance check, a decision, an account. Items marked built or blocked carry what they wait on, so your own queue is on the front page.
Nothing is held anywhere else. Status comes from the backlog, the plan, branches and pull requests, and an edit made here is an ordinary commit to the backlog, merged to main through a pull request, as you. Agents and people read the same files.
Each backlog item is a ### heading that starts with an id, with a status line
under it. Branches name the item they work on, and pull requests say what they build. A
block of instructions in each repository’s CLAUDE.md or AGENTS.md asks the agents to keep to them.
### OR12 Invoices as PDF — MONEY
**Status:** in progress · **Size:** M · **Branch:** `feat/or12-invoices`Install it on the repositories you want to follow. A push or a pull request reaches Project Magic within seconds, and it re-reads only what changed: the branches, the backlog and the plan, and the history that shows what shipped.
An overview, then per project a list in priority order, a board, the plan, what is done, the branches and the documents. Change an item’s status, add one, reorder or remove them; each edit is a commit you made.
Project Magic is open source and runs on your own accounts. You need a GitHub account, a Postgres database (Neon’s free tier is enough) and somewhere to host a SvelteKit app (it is set up for Vercel). Setting it up takes under an hour: