● Multi-session command center for Claude Code

Every Claude Code session. One board.

Run Claude Code in several projects at once. 9CLI shows every session in one place, sorts them by what they are doing, and puts the one that is waiting on you right in front of you.

Requirements
  • Free for 2 sessions — no account
  • Runs on your machine
  • Node.js 22+
The 9CLI board in the Ultra Black theme. Four lanes: payments-api is Working, with its chevron indicator lit; data-pipeline is in Needs you, asking whether to trust its folder, with 1, 2 and esc answer buttons on the card; Idle is empty; docs and auth-service are in Ended with EXIT 0 badges. On the right, the payments-api terminal shows Claude Code working through a git history question. (opens full size in a new tab)

The problem

Five terminals. One is waiting on you.

One Claude Code session is easy to watch. Several is a row of terminal windows and a loop of alt-tab, checking each one to see whether it is still going.

The costly moment isn't a crash. It's the session that stopped at a permission prompt a while ago and has been sitting there ever since, while you were looking at a different one.

payments-apistill going?

marketing-sitestill going?

data-pipelineDo you want to proceed?

mobile-appstill going?

docsfinished… when?

How it works

Four lanes. Sessions sort themselves.

Each card on the board is a real Claude Code session running in a real terminal, in that project's folder. As a session changes state, its card moves to the matching lane on its own.

  1. Working

    Actively producing output. The corner indicator runs while it works; the session drops back to Idle when it goes quiet.

  2. Needs you

    Stopped at a permission or confirmation prompt. Answer it from the card, from the buttons above the compose box, or in the pane.

  3. Idle

    Live, but not producing output. A session lands here the moment it starts, ready for your next prompt.

  4. Ended

    Sessions that exited while the board was open, with a badge that says how.

    EXIT 0EXIT 1CRASHEDFAILED

Run it: one command starts a small server on 127.0.0.1 and opens the board in your browser. Point it at the folder your projects live in, pick a project, and its session appears on the board.

Features

What the board does

Every screenshot here is the real app, version 0.1.28, running against demo projects.

Needs you

Answer prompts from the board

When a session stops to ask something, it moves to Needs you and the header counter lights up. Its options appear as buttons directly above the compose box, each with its number and its words. That covers permission prompts and Claude's own multiple-choice questions.

  • Click an option, or press its number while the compose box is empty.
  • When Claude asks you a question, every option shows with its description. Pick one, or tick several and press Submit.
  • Choose Type something to write your own answer in the compose box, or Chat about this to close the question and just talk to Claude.
  • Each answer is sent as one real keypress, and only after 9CLI checks the prompt on screen is still the one on the button. If it has changed, nothing is sent.
  • Text that isn't an answer stays in the box, with a note saying why.
  • Long prompts arrive whole. Paste a big one into the compose box and the session receives all of it, with nothing written to disk.
9CLI in the Ultra Black theme, answering a real Claude Code permission prompt. The marketing-site session asks: Do you want to create CHANGELOG.md? Above the compose box, a bar reads marketing-site is waiting for you to choose, with buttons 1 Yes, 2 Yes and switch to accept edits, 3 No, and Esc dismiss. The session rail on the left marks marketing-site as Needs you. (opens full size in a new tab)

History

The whole conversation, turn by turn

History rebuilds a session's conversation from Claude Code's own session log, so the full-screen redraws that wipe a terminal's scrollback don't take the conversation with them.

  • Prev and Next step one turn at a time, with a “turn 2 of 4” counter and the current turn marked.
  • Contents lists every turn by its own first words, so you can jump straight to the prompt you want.
  • Copy turn copies the prompt and answer you are reading; Copy whole session copies all of it.
  • Keyboard: j/k to move, t for contents, c to copy the turn.
The History panel for marketing-site in the Ultra Black theme. Prev and Next buttons, a counter reading turn 2 of 4, Copy turn, and an open Contents list with four rows labelled You and Claude by their first words. Below, the transcript with the current Claude turn marked here. (opens full size in a new tab)

Focus mode

One session full width, the rest still in view

Focus expands one session to the whole stage so you can read it properly. Every other session keeps a row in the rail on the left with its lane beside it, and sessions that need you sort to the top.

  • j / k move between sessions; n jumps to the next one that needs you.
  • The header shows the branch, uncommitted changes and unpushed commits for the session you are in.
  • Put a project to sleep without leaving Focus.
Focus mode in the Ultra Black theme. The payments-api session fills the stage with Claude Code's five-point summary of the repository's git history. The header shows the Standard profile, branch main, clean, and 2 commits not pushed. The rail on the left lists marketing-site and payments-api as Idle and auth-service and docs as Ended. (opens full size in a new tab)

First run

Set up in one screen

The first-run screen checks Node.js, the terminal component, Claude Code, its sign-in and git, then asks one question: where do your projects live?

  • Browse… opens your system's own folder window. Or paste a path; quotes and trailing slashes are handled.
  • It lists the projects it found. Pick one to start Claude Code in it straight away.
  • If something is missing, the board still opens and says what to fix, with a Re-check button.
The 9CLI first-run setup screen in the Ultra Black theme. A checklist shows connected to 9CLI, Node.js, terminal component, Claude Code, Claude Code sign-in and git all OK. Below, where do your projects live, with the path C:\9cli-demo\projects, a Browse… button and a Set button, then found 7 projects and a list to pick the first one from. (opens full size in a new tab)

Projects

Finds your repos and shows what isn't saved

9CLI looks in your projects folder, and two levels below it, for git repositories. The picker lists what is on the board, what is asleep and what it has discovered, with one search box for all of them.

  • Two git marks per project: files changed and not committed, and commits not pushed (or not pulled, or no remote at all).
  • Both are read from git data already on your disk. Press the remote mark to run a git fetch for that project; nothing is ever committed or pushed for you.
  • Each project's permission profile is set right in its row.

✓ clean✎ 3 uncommitted⇅ ↑2 unpushed⇅ local

The project picker in the Ultra Black theme. Activated: five projects asleep, data-pipeline with 1 unpushed commit, payments-api with 2 unpushed commits, auth-service and docs clean and synced, marketing-site with 3 uncommitted files. Discovered: internal-tools with 3 uncommitted files and mobile-app with 1, both with no remote. Every row has a Standard permission dropdown and an Activate button. (opens full size in a new tab)

Permission profiles

Choose per project, never in bulk. Applied through Claude Code's own settings, and every card shows its badge.

  • Read-onlyReading is allowed; file edits and destructive commands are blocked.
  • StandardClaude Code's own behaviour, unchanged.
  • TrustedSkips file-edit prompts; still blocks push, deploy and destructive shell commands.
  • FullSkips permission prompts. Asks you to confirm once.

Themes

The board ships in Ultra Black by default, with Retro CRT and Cyberpunk 1981 one click away. History follows the theme too.

Ultra BlackRetro CRTCyberpunk 1981

Stays in control

Stop a session with one click. Send a prompt to one session, or to every blocked one at once. Press ? on the board for every shortcut. Exit 9CLI stops everything it started.

Install & requirements

One command. No global install.

The same line works in Windows Command Prompt, PowerShell and macOS Terminal. npm keeps a cached copy of the package, and 9CLI keeps your settings in ~/.multicli.

Run this

Keep @latest on the end so npm fetches the current version instead of an older cached one.

What happens next

  1. 9CLI checks your setup, starts a small server on your own machine and opens the board in your browser. If the browser doesn't open, use the 127.0.0.1 link it prints.
  2. Choose the folder your projects live in, with Browse… or by pasting the path.
  3. Pick a project. Claude Code may ask you to trust the folder; that question shows up in Needs you, and you answer it from the board.

How to stop it

Press Ctrl+C in the terminal you started it from, or press Exit 9CLI on the board. Closed that terminal already? Run:

You need

  • REQ
    Node.js 22 or newerCheck with node -v. On older Node, 9CLI says so and keeps sessions off until you upgrade.
  • REQ
    Claude Code, installed and signed in9CLI runs Claude Code for you; it doesn't replace it. Signing in to 9CLI is separate and optional.
  • OPT
    gitUsed for the project scan and the git marks. Without it, the board still opens and tells you.

Platforms

  • WindowsWorks on Windows.
  • macOSSupported, but not yet verified on real hardware.
  • Linuxnode-pty, the terminal component, may need build tools to install. On Debian or Ubuntu: sudo apt install build-essential python3

9CLI runs your agents, files, prompts and sessions entirely on your machine; our servers receive only the account, device and entitlement information needed to operate your plan.

Claude Code itself sends your prompts to the model provider it is set up for. That is how Claude Code works, and 9CLI does not see or change that traffic.

Pricing

Free for two. Pro is coming.

Every feature on this page is in Free. The only difference is how many sessions run at the same time.

Free

Available now

2sessions running
at the same time

No account, no sign-up, no email.

  • The whole board: lanes, Needs you, History, Focus
  • Project discovery with git status
  • All permission profiles and themes
  • Unlimited projects

Pro

Coming soon

∞sessions running
at the same time

Everything in Free, with no limit on concurrent sessions. Not on sale yet.

  • Unlimited concurrent sessions

One email when Pro is ready. Nothing else.

There is no checkout on this site, and nothing here takes payment.

FAQ

Questions

Is 9CLI free?

Yes. Free runs two sessions at the same time, with every feature and no account. Pro, for unlimited concurrent sessions, is coming soon and is not on sale yet.

Do I need an account?

No. You never have to sign in to use Free. Signing in to 9CLI is separate from signing in to Claude Code, which you do need.

What leaves my machine?

9CLI runs your agents, files, prompts and sessions entirely on your machine; our servers receive only the account, device and entitlement information needed to operate your plan.

The board is served from 127.0.0.1 and is not reachable from your network. Claude Code sends your prompts to its model provider, as it always does.

Does it replace Claude Code?

No. Each card runs the real claude command in that project's folder, exactly as you would in a terminal. You can type straight into it. 9CLI is the board around your sessions.

What do I need to run it?

Node.js 22 or newer, and Claude Code installed and signed in. git is recommended. Works on Windows. macOS is supported but not yet verified on real hardware. On Linux, node-pty may need build tools (sudo apt install build-essential python3 on Debian or Ubuntu).

Is a permission profile a sandbox?

No. Profiles configure what Claude Code asks about and blocks; they don't contain it. 9CLI runs as you, exactly as trusted as your own terminal, so point it at projects you would open a terminal in anyway.

How do I stop it?

Press Ctrl+C where you started it, press Exit 9CLI on the board, or run npx @9punk/9cli stop from any terminal. It stops every session it started.

Stop babysitting terminals.

Node.js 22+ and Claude Code required · Full requirements