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

portfolio-site
● Running
Image Prepper
● Running
wp-preview
Ready
csv-de-duper
One-shot
yours next
drop a folder

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?”

A real project folder goes onto Shelf and comes back as a running tool, with its launch command and port remembered.
01
Drop a folder

Anything your AI tool built: a Next.js site, a Python script, a Docker stack.

02
Shelf reads the setup

Shelf finds the launch command, installs the packages, moves the port when it’s busy, and remembers all of it.

03
It runs, and stays found

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.

Shelf

MCP Connections

One library, every agent. One-click config, and your other servers stay untouched.

Claude DesktopConnected
Claude CodeConnected
CursorConnected
OpenAI CodexConnected
The shelfLocal · 5 tools
~/Library/Application Support/
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 ConverterStopped
    one-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.

Claude CodeClaude DesktopCursorCodex
Cursor asks Shelf to launch Image Polisher. Shelf starts it and returns the live URL.

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.

Shelf · Design · Shelf
ShelfDefault
Archivo · 800 / tightPlain words. Honest states. No ceremony.design-profiles.json · default profile

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.

Shelf · Simple mode
AI ConnectionsClaude · Cursor connected
portfolio-siteRunning · Open
Historylaunched 2h ago
Advanced detailstucked away, still saved

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

  1. 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.

  2. 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.

  3. 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.

  4. 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