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 a folder on Shelf. It suggests the command. You accept it. Then it runs.

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

A site, a script, or a Docker stack.

02
You approve the command

Shelf suggests how it runs. Nothing installs until you accept.

03
It stays found

Launch it again next month. Your agents can find it too.

The app

This is Shelf.

The library, the checks, and a handoff you review before it reaches an agent.

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.

Running is not the same as ready for an agent.

  • Image PrepperRunning
    :4173 · Ready on http://127.0.0.1:4173
    Agent-ready
  • Local WordPress ManagerReady
    :8080 · docker compose up
    Needs setup
  • Document ConverterStopped
    one-shot · .venv/bin/python convert.py
    Manual only

Connected, not configured

Your agent asks. Your shelf answers.

Claude, Cursor, and Codex see the same library. They can launch what you already saved.

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

Your brand, on the shelf

Stop pasting your hex codes.

One local file holds the colors, type, and voice. An agent can read it. You keep the default.

Same page every time. Only the profile changes.

Shelf · Design · Shelf
ShelfDefault
Archivo · 800 / tight“Plain words. Honest states. No ceremony.”design-profiles.json · default profile

Two ways to look at it

Simple by default. Developer when you want it.

Simple hides the wires. Developer shows them. Same files.

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

Stacks

Ask for the stack. It’s on your shelf.

Ask for a stack. It lands marked From agent. Start it together, or in order so each port is up first.

“group these into a shelf” → shelf_upsert_collection

  1. Agents draft. You decide.

    It arrives marked From agent. One edit makes it yours.

  2. Start in order

    Each port answers before the next command. A missing key stops the rest.

  3. Or start together

    Launch every member at once. Tools already running stay up.

  4. Delete the list, keep the tools

    The collection is a name. The tools stay in the library.

Give your builds a place to live.

macOS · MIT · local-first · your data stays on your Mac · no account, ever