AI project manager & dev cockpit for macOS
A desktop for every project: launch dev services, run commands, browse locally —
and manage persistent Claude Code sessions, all in one native app.
Deck turns each of your projects into a desktop: drag icons anywhere — no folders forced on you. Double-click to start a dev server, run a one-shot command, open a URL in the embedded browser, or spawn an AI coding session that survives app restarts.
If you juggle multiple projects and multiple Claude Code terminals all day, Deck is the missing cockpit: an AI project manager, dev service launcher, and multi-terminal workspace in a single fast, native macOS app.
Every project gets its own canvas. Icons are freely positionable (marquee & ⌘-click multi-select, folders for grouping services, copy/paste, ⌘P quick search, Enter to rename — it feels like the Finder desktop).
Claude tabs run inside a dedicated tmux server: quit Deck, come back tomorrow — your AI sessions are still alive, with their conversation titles. Closed a tab? Right-click the Claude icon and resume any past session (claude --resume) with search & previews.
Deck installs Claude Code hooks automatically: when Claude finishes and waits for your input you get a sound, a notification, a Dock badge, and a red dot on the exact tab that needs you.
Backend/frontend services (npm run dev, php artisan serve, workers, websockets) live in a dedicated service panel — status dots (port-aware readiness checks), stop/restart controls, "stop all", crash detection with exit output, kill-by-port, auto-start, and detection of externally-started services.
php artisan optimize, npm run build… run them in a tab or in the background — you get a sound + notification when they finish.
Project URLs open inside Deck (WKWebView) with Web Inspector enabled, mobile viewport toggle, and "Open in Chrome".
Click "Create with AI": Deck opens a Claude session with a task-focused prompt; Claude scans your repo (package.json scripts, artisan/horizon/queue workers, Makefile, docker-compose, README) and writes a deck.json. Deck watches the file and turns it into icons — ask Claude to "add a worker service" anytime and it appears on your desktop.
{"items":[
{"kind":"service","name":"Frontend","command":"npm run dev","port":5173,"folder":"Services"},
{"kind":"service","name":"Horizon","command":"php artisan horizon","folder":"Services"},
{"kind":"command","name":"Optimize","command":"php artisan optimize"},
{"kind":"web","name":"App","url":"http://localhost:8000"}
]}brew install tmux # required for persistent Claude sessions
git clone https://github.com/ocracy/deck && cd deck
./install.sh # builds & installs /Applications/Deck.appOr grab Deck.zip from Releases, drop Deck.app into /Applications, then clear quarantine (ad-hoc signed):
xattr -cr /Applications/Deck.app && open -a Deckswift build # debug build
./build.sh # package Deck.app
./dist.sh # universal binary + Deck.zip for release- Architecture:
docs/DESIGN.md· API contract:docs/API.md - Stack: Swift 5.9 · SwiftUI · SwiftTerm · tmux · WKWebView
- Everything is local & native — no Electron, no telemetry, instant switching.
Because your projects deserve a flight deck, not a tab graveyard. Keywords you might have searched to get here: AI project manager, Claude Code session manager, macOS dev environment launcher, developer dashboard, multi-project terminal manager, tmux GUI, local dev services start/stop.
MIT