Every Claude Code session. Every project. One window.
ShellStack is a native Mac app for running multiple Claude Code agents side by side, organised by project, each in its own real terminal, already logged in.
Starts claude for you.
Each new session opens in the project folder and launches Claude Code.
Your login, untouched.
It runs your real login shell, so there are no API keys and nothing stored in the app.
Picks up where you left off.
It resumes each session's Claude conversation after a restart.
Native, not Electron.
SwiftUI, a real terminal engine, light on memory.
Projects first. Sessions underneath.
Each project has a name, an icon, a folder and a profile. Its sessions and notes sit under it. Rename inline, drag to reorder, and read status at a glance.
Mint is running. Amber means Claude has handed you back a shell. Grey is stopped.
- webhooks-fixbilling-api
- prod-hotfixbilling-api
- checkout-refactorstorefront
- hero-copymarketing-site
- lighthousemarketing-site
Run five agents. Lose track of none.
Each agent keeps running when you switch away. Quitting ShellStack leaves no orphaned processes. Relaunch, click a session, and Claude resumes the same conversation.
Status is read from the terminal itself, not guessed from output: every 1.5 seconds the app checks which process owns the foreground.
Know when you're on production.
Give any project's sessions a banner, a watermark or a background tint. Set it per project, or override it per session.
The left pane is a normal local session. The right one is a remote session on shop-prod-01, with everything turned on.
The commands you always forget, next to the agent that needs them.
Keep a Markdown note under each project: the deploy steps, the cache commands, the one-off SQL you run every month. It opens in the same pane as the terminal, so the command is one click from the session that needs it.
Notes are plain .md files on disk, so your agents can read them too.
deploy.md
## Staging deploy
Run from the release branch. Compile before static content or the deploy fails silently.
Copygit pull origin release
composer install --no-dev --optimize-autoloader
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy en_GB -f
bin/magento cache:flush
## Symfony services
Copyphp bin/console cache:clear php bin/console messenger:consume async -vv # watch the queue drain
Pick a theme. Or eight.
Eight bundled terminal themes with their real palettes. Set one for the app, then override it per project so the colours alone tell you where you are.
Your servers, same sidebar.
Pick a host from your existing ~/.ssh/config, set a remote folder, and ShellStack opens the session and starts claude on the server. OpenSSH handles keys, agent and ProxyJump. Nothing is stored in the app.
Hands stay on the keys.
Every action in the sidebar has a shortcut, and the terminal gets the rest. ⌘K jumps to any session by name across every project.
Menu bar · ShellStack 1.0