@9punk/9cli
v0.1.14
Published
9CLI — a local multi-session command center for Claude Code and other CLI agents. Finds your projects, spawns real sessions in them, and shows every one on a board in your browser.
Maintainers
Readme
9CLI
A local multi-session command center for Claude Code and other CLI agents.
You already run more than one agent at a time. 9CLI is the board that shows you all of them at once — which one is waiting on you, which one is working, which one finished — so you stop alt-tabbing between terminal windows to find out.
npx @9punk/9cliNo install, no config file. It starts a daemon on 127.0.0.1, prints a URL and
opens the board in your browser. Point it at the folder your projects live in
once; it finds every repo underneath and gives each one an Activate button.
The URL is always printed, so a headless box, a container or an SSH session
works exactly as well — open it yourself. --no-open skips the browser.
Run it again while one is already running and it opens the existing board
rather than starting a second one; 9cli stop ends a running daemon and
everything it started.
→ 9CLI.dev
What it does
- Four lanes, not four windows. Every session sits in Needs you, Working, Idle or Finished. "Needs you" means a real permission or confirmation prompt is on screen and nothing is moving until you answer — the board tells you, rather than you finding out twenty minutes later.
- Real sessions, real terminals. Each card is an actual pty running
claude(or whatever you point it at) in that project's folder. You can type into it. - Per-project permission profiles. Read-only, Standard, Trusted or Full,
chosen per project and never in bulk, applied through Claude Code's own
--settings. Every card carries a badge saying what that project is allowed to do. Full asks you to confirm, once. - Copy output / Copy last response / History. Read from a transcript the daemon rebuilds from the session itself, not scraped off the screen — so the full-screen redraws that normally destroy your scrollback don't take the conversation with them.
- Safely close all. Commit, push, back up and then stop — only the steps that actually apply to each project, and it verifies nothing was left running.
- Sidekick. Keep the Claude web conversation for a project one click away. A bookmark, nothing more — 9CLI never reads or sends it.
- Four themes, a keyboard-driven layout, and a Help panel (press
?) that is a genuine 60-second tour.
Requirements
| | |
|---|---|
| Node.js | 20 or newer (node -v) |
| Claude Code | for the sessions to be worth watching — install guide |
| git | the project scan reads branch and commit state |
| A browser | the board is a web page served from your own machine |
9CLI runs a doctor check at startup and tells you which of these it could not find, so you don't have to guess.
Platforms. Windows and macOS are supported and tested. Linux is not
officially supported yet — it should work, but node-pty has no prebuilt
binary for it, so installing needs a C toolchain (build-essential, python3)
and we are not yet testing there. Reports welcome; treat it as unsupported until
this line says otherwise.
Free and Pro
Free — no account, no sign-up, no email. The whole command center: every feature, every theme, unlimited projects. Capped at 2 sessions running at the same time. You never have to sign in to use it.
Pro — unlimited concurrent sessions. Coming soon. It is not on sale yet, and the app will say so rather than showing you a checkout that does nothing. If you already hold Pro, sign in from the board and it applies to this machine.
What it sends
9CLI is local-first, and specifically:
- The daemon binds
127.0.0.1only. It is not reachable from your network. - Your code, your prompts and your session output never leave your machine. They are not uploaded, not logged remotely, and not used for anything.
- The board fetches nothing from the internet to draw itself — fonts and terminal library are served from your own daemon.
- Two network calls exist, and both are about your plan, not your work: an anonymous check for pricing and availability, which carries no account, no identifier and no version; and, only if you sign in, a check of what plan you are on. Signed out, the first is the only call 9CLI ever makes.
Where your settings live
~/.multicli/ — your chosen root, your session definitions and their permission
profiles. Written atomically, so a crash or a reboot loses nothing. Delete the
folder to start completely clean.
Nothing about what is running is persisted: a session that was live when the daemon stopped is not live now, and 9CLI will not pretend otherwise.
Nothing you type is written to disk. 0.1.10 and 0.1.11 staged a large
prompt to ~/.multicli/prompts/ on the way to the session, because Windows
could not hand a program that much text through a terminal in one piece. That is
fixed a layer down as of 0.1.11 and the staging is gone as of 0.1.13 — a large
prompt now travels straight into the session as a paste. If an older 9CLI left a
prompt file behind, 9CLI removes it the next time it starts.
A note on trust
The daemon runs as you and spawns your shells. It is exactly as trusted as your terminal, and it is not a sandbox — the permission profiles configure Claude Code, they do not contain it. Point 9CLI at projects you would open a terminal in anyway.
Support
License
Proprietary. © 2026 9Punk LLC, all rights reserved. See LICENSE and the Terms of Service. 9CLI is licensed, not sold.
