free · open source · no telemetry

See what your AI actually built.

program-design parses your code into a deterministic facts graph — every screen, door, record, and connection — and draws it as a map anyone can read. No model imagines the picture.

SCREENS PEOPLE OPEN THE WORKING PART WHERE THINGS ARE SAVED OUTSIDE SERVICES Home page a screen people see app/page.tsx:1 Login form where someone signs in components/LoginForm.tsx:12 Blog page /blog/[slug] app/blog/[slug]/page.tsx:1 your app's server Next.js — decides what happens app/api/login/route.ts:1 User records email, name — remembered prisma/schema.prisma:14 Post records what people write prisma/schema.prisma:26 Stripe payments, run by Stripe package.json:21 somewhere I can't trace

These are the screens people can open.

drawn from the facts graph · every box carries a file:line receipt

Star on GitHub $npx program-design live

Works on any Next.js repo · no repo handy? npx program-design demo

verifies presence, not correctness When a connection can't be traced, the map says so — it never guesses. Binds to 127.0.0.1 only. Your code never leaves your machine.

The same graph checks your agent's claims.

When the agent says "done", each claim becomes a query over the facts graph. The verdict — CONFIRMED, ABSENT, or UNDETERMINED — is computed from the code, not judged by another model. A second AI can hallucinate; a graph lookup can't.

  • Every CONFIRMED carries a file:line receipt you can open.
  • Every ABSENT records exactly where it searched.
  • Anything the parser can't prove is UNDETERMINED — never dressed up as a yes or a no.
  • The map updates live as the agent works; verified claims that disappear trigger a regression alert.
claim time

agent: "Done! I added login with rate limiting and saved the email to the database."

✓ CONFIRMED route POST /api/login exists app/api/login/route.ts:1
✓ CONFIRMED email column on the User model prisma/schema.prisma:14
✕ ABSENT rate limiting on /api/login — not in the code searched: middleware.ts · recognized guards · config.matcher

The red one is why this exists.

If AI-built code should come with a map and receipts, star the repo.

MIT-licensed, no telemetry, nothing phones home — stars are the only signal we get that this should keep existing.

Star cursorboy/program-design