Made for people who build with AI
You keep building things. Shelf keeps them alive.
Apps and tools made with AI don’t come with a place to live. Shelf is that place. They launch in a click, and your AI tools can reach them.
macOS · Apple Silicon · free & open source · no account
Hover a tool. One click and it’s running. Today, next week, two clients from now.
How it works
You built it with AI. Now it just runs.
Drop the project folder onto Shelf. It figures out how the thing runs, installs what’s missing, starts it. No terminal. No config files. No “what’s a port?”
Anything your AI tool built: a Next.js site, a Python script, a Docker stack.
Shelf finds the launch command, installs the packages, moves the port when it’s busy, and remembers all of it.
One click to launch, today and next month. Your AI tools can find it too.
The app
This is Shelf.
The real macOS app. The library, the gaps, the sharing, and the connections your agents see over MCP.
MCP Connections
One library, every agent. One-click config, and your other servers stay untouched.
Shelf/library.json
list · register · launch · stop · logs · discover. The same verbs your desktop app uses.
Every tool on one calm home screen. Status and launch at a glance.
Launch without the ritual
Every tool tells the truth twice.
Once about its process: Starting, Running, Stopped. Once about agent access: ready, needs setup, or manual only. Open the URL, watch live logs, stop when done.
- Image PrepperRunning:4173 · Ready on http://127.0.0.1:4173
Port answering and agent access declared. The only card where both facts are green.
Agent-ready - Local WordPress ManagerReady:8080 · docker compose up
Starts fine when you ask. Agents can’t reach it yet, because the MCP entrypoint needs setup.
Needs setup - Document ConverterStoppedone-shot · .venv/bin/python convert.py
A one-shot script with no port. You can run it. Agents never see it.
Manual only
Connected, not configured
Your agent asks. Your shelf answers.
Connect Claude Code, Claude Desktop, Cursor, or Codex in one click. They see the same library you do. They launch your tools, check what’s running, and find the right one for a job.
New in 1.1 · Design Engine
Stop pasting your hex codes.
Design profiles keep your colors, type, and voice in one local file, seeded from the CSS variables and Tailwind config your project already declares. Any connected agent can ask for them and build the next tool to match. Shelf serves the truth. The agent does the styling.
- Extracted from your code. Point Shelf at a project and it reads the tokens already there, from CSS variables and Tailwind config. It guesses nothing, and tells you what it skipped.
- DTCG tokens. Standard design-token JSON: colors, type, radius. Any agent can read it.
- A brief agents can read. A markdown brand brief rides along: voice, personality, the rules that don’t fit in a hex code.
- Drafts you approve. Your agent can extract a brand it saw and save a draft. You review. Agents never set the default.
“build it with my branding” → shelf_get_design_profile
Same page every time. Only the profile changes.
New in 0.7
Simple by default. Developer when you want it.
One toggle. Simple hides MCP configs, capability panels, and launch flags behind plain language. Developer shows every wire. Same engine, same files. Nothing deleted, nothing dumbed down.
Switch anytime. It only changes what’s shown.
New in 1.3 · Agent-built collections
Ask for the stack. It’s on your shelf.
A collection is the three or four tools that only make sense together, and one button starts all of them. Now you can ask for one without opening Shelf. Your agent names it, puts your tools in it, and it lands in your sidebar marked From agent. It installed nothing and launched nothing. It wrote you a list.
“group these into a shelf I can start at once” → shelf_upsert_collection
Agents draft. You decide.
Anything an agent builds arrives marked From agent. Edit it once in Shelf and it belongs to you, and agents can’t change it after that, by id or by name. They never attach a design profile to one either.
A collection grants nothing new.
It’s a named list of tools your agent could already see and launch. Delete the collection and every tool in it stays exactly where it was.
No look-alike names.
A name that differs from one of yours only by an invisible character, an accent form, spacing, or case is refused, and Shelf strips invisible characters out of every name it stores.
One button starts the stack.
Start stack brings up every tool in the collection at once and leaves the ones already running alone. Stop stack takes them down together.
Give your builds a place to live.
macOS · MIT · local-first · your data stays on your Mac · no account, ever
