A tiny operating system for your projects

Project System

Spin up projects, shelve them, archive them, and keep one tidy index of everything you're building — from the terminal. Pure bash, zero daemons, Claude Code intake built in. Yours the moment you unzip it.

01  What you get

One dashboard answers the question every side-project-haver dreads — “what am I building, and where did I leave it?” Type proj and your whole portfolio is on screen: arrow keys to move, Enter to drop into a project with Claude Code already open, m to move or delete it:

❯ proj ╔═════════════════════════════════╗ ║ ╔═╗ ╦═╗ ╔═╗ ╦ ╔═╗ ╔═╗ ╔╦╗ ╔═╗ ║ ║ ╠═╝ ╠╦╝ ║ ║ ║ ╠═ ║ ║ ╚═╗ ║ ║ ╩ ╩╚═ ╚═╝ ╚╝ ╚═╝ ╚═╝ ╩ ╚═╝ ║ ╚═════════════════════════════════╝ Active (3) ░▒ 1 ▒░ rocket-skates Phase 2 · thruster tuning next ░▒ 2 ▒░ bbs-revival Live · two new door games shipping ░▒ 3 ▒░ x zine-printer Phase 1 · blocked on toner supplier good · actionable · pending · x stale ↑/↓ move · enter open · m move · 1-3 jump · q quit n new · i import · r refresh stale · a archive

Those status lines aren't something you type in and forget to update — each one is an actual judgment of where the project stands, made by Claude reading the project's plan, decisions, and git history, then cached locally. Green → amber → cyan reads as resting → your move → waiting on someone, and an x flags a chip gone stale.

Claude Code rides along the whole way: /setup-project interviews you and writes a new project's docs, /grill pressure-tests a design one decision at a time, and /architect advises from the next window over.

Underneath it all is a three-folder workspace — dead-simple on purpose, so your projects outlive any tooling:

~/Projects/ ├── Active/ engaged now — building or using ├── Inactive/ dormant but alive — paused, will resume └── Archive/ finished work, year-prefixed, kept to read

02  Install

The easy way

Download project-system.zip (327 KB — the whole system, nothing personal of the author's inside, no account, no telemetry). Unzip it, open the folder, and double-click “Double-Click to Install.command”. Terminal opens, the system moves itself to ~/project-system, the installer runs, and you land in a ready shell.

If macOS balks (“could not verify it is free of malware”, offering only Move to Trash / Done): click Done, open System Settings → Privacy & Security, scroll down to Security, click Open Anyway, then double-click the installer again — once. macOS just wants to hear you trust a script you downloaded. (Or sidestep the dialog entirely: Gatekeeper only fusses over double-clicks, so the From the terminal route below never sees it.)

From the terminal

Prefer to drive? Same result, three moves:

unzip project-system.zip -d ~ ~/project-system/install.sh exec zsh

The installer checks your tools, symlinks the slash commands into ~/.claude/commands/, seeds your lexicon, creates the ~/Projects workspace, and offers — showing the exact line — to wire the aliases into your ~/.zshrc. It announces every path it touches and touches nothing else. Cautious? Preview every change first, writing nothing:

~/project-system/install.sh --dry-run

Requirements: git (required — the engine under the hood), Claude Code (for the slash commands), and a zsh-ish shell. gh is optional — it auto-creates GitHub remotes; skip it and paste any clone URL by hand.

03  First contact

Two doorways in — both interactive, both also reachable from the dashboard's n and i keys:

newproject # spin up a NEW project — scaffold, index, hand off to Claude importproject # adopt an EXISTING folder or git repo — original never touched

newproject creates your first project in ~/Projects/Active/, drops in a starter scaffold, records it in the index, and hands off to Claude Code to help define what the thing actually is. Already have a pile of project folders? importproject is the adoption on-ramp — point it at each one and it's copied in, indexed, and committed, with the full Claude intake offered rather than forced. Want the why behind the design? CONVENTIONS.md ships in the zip — the system's principles, ~200 lines.

04  Uninstall

The system lives in four announced places: the ~/project-system folder, five command symlinks, the ~/Projects workspace, and one line in ~/.zshrc. To remove it, delete the first two and the line:

rm -rf ~/project-system rm -f ~/.claude/commands/{setup-project,grill,architect,init-claude-md,project-status}.md # then delete the one project-system line from ~/.zshrc

~/Projects — your actual work — stays. It was never the system's; it's just folders and git repos, readable with or without any of this. That's the point.