Install Claude Hub on your own Mac
A local app that manages several Claude accounts, every Claude Code session and everything waiting on you from one window. Setup is five steps; first a check that touches nothing tells you what is missing.
$ ./install.sh --check Claude Hub pre-check This step installs and changes nothing. [ok] macOS XX.Y [ok] Node.js vXX.Y.Z (…/bin/node) [ok] npm [ok] Claude Code (~/.local/bin/claude) [ok] Xcode command line tools [ok] git [ok] Write access: ~/claudecode/claude-hub [ok] Write access: ~/.claude-hub [ok] Write access: ~/Library/LaunchAgents [ok] Write access: ~/Applications [ok] Write access: ~/.local/bin Ready: the install can go ahead. $
./install.sh --check output. The script prints every line in Turkish and English. XX.Y and …/bin are placeholders; yours show your own Mac's version and Node path.What the Hub does
The Hub uses the Claude Code on your Mac. Everything runs on your own Mac.
Several accounts, one window
Each Claude account's quota and reset time are side by side.
Keeps going at the limit
When an account hits its limit, the open session continues with the next account where it left off.
Every session in one list
It does not matter which account started it; sessions, memory and settings are shared.
What is waiting on you
Permissions, questions and messages land in Follow-up with a suggested answer. Sending always needs your approval.
Jobs in a separate working copy
Say "do this"; the job is done, checked, and goes to the main branch or live only with your approval.
On your Mac, closed
The Hub only listens on 127.0.0.1:7788. Autonomous jobs run in a closed area and cannot read secret folders.
Requirements
Four are required, Chrome is optional. The pre-check (./install.sh --check) looks at each one.
macOS 13 or newer
The Mac app needs at least macOS 13. There is no install for Windows or Linux.
How: System Settings > General > Software Update
Node.js 20 or newer
The Hub is a Node app; npm comes with Node. This version was tried with Node 26.
How: the nodejs.org LTS package or brew install node
Claude Code
The Hub runs exactly ~/.local/bin/claude.
How: the native install from Anthropic's Claude Code setup page. If you used npm or Homebrew, claude install installs the native build.
Xcode command line tools
The Mac app is compiled (swiftc) and jobs use git.
How: xcode-select --install
A Claude account
An account that can sign in to Claude Code. Sessions run with it.
Later: add as many accounts as you like from the Hub.
Google Chrome
Each account signs in in its own Chrome profile, so other accounts in your browser do not mix in.
Without it: sign-in opens in the default browser.
Install in five steps
Paste the commands into the Terminal app. The button on the right of each box copies the command.
Install the requirements
Install the four required pieces above. If you are not sure, the pre-check in step 3 tells you what is missing.
Put the Hub folder on your Mac
Replace
<repo-address>with the address from the person who shared the Hub with you. Do not move the folder after install; if you do, run the install again.git clone <repo-address> ~/claudecode/claude-hub
Run the pre-check
It installs nothing and changes nothing. It lists what is missing in Turkish and English, with what to do next to each item.
cd ~/claudecode/claude-hub && ./install.sh --check
Install
It runs the same check first; if something is missing it stops and touches nothing. Then it:
./install.sh
- installs the packages (
npm install), - sets up the background service (
~/Library/LaunchAgents/local.claude-hub.plist; it starts by itself when you log in), - builds the
~/Applications/Claude Hub.appapp, - adds the
~/.local/bin/claude-hubcommand.
- installs the packages (
Open it
Spotlight "Claude Hub", or the command. On first start the app asks for notification permission; if you allow it, jobs waiting on you arrive as Mac notifications.
claude-hub open
Adding the first account
If you already signed in by typing claude in a terminal, that account shows up as main and nothing else is needed. For a new or second account:
Add account
Use Add account in the top strip (also in the ⌘K palette). Type a short name, and the e-mail if you like.
Sign in in the Chrome window
A separate Chrome window opens. Sign in there and allow access. Do not click the link in the e-mail; type the 6 digit code into that window.
Done
The window in the Hub says "Logged in". Each account keeps its own sign-in under ~/.claude-hub/accounts/<id>; sessions, memory and settings are shared.
Permissions: Keychain and folders
What the Hub touches and what it does not. install.sh does not ask for admin (sudo) rights; everything it writes is in your user folder.
Keychain
Claude Code stores the sign-in itself (on macOS in the Keychain); the Hub does not read the token. The Hub's own vault (optional Cloudflare keys and the like) is there too, under the name claude-hub. If macOS asks for permission (it may not on every Mac), type your Mac password and allow it.
Folders the Hub writes to
~/.claude-hub (accounts, settings, logs; only you can read it), ~/Library/LaunchAgents (service file), ~/Applications (app), ~/.local/bin (command) and the Hub folder itself. The pre-check makes sure each can be written.
Projects and the closed area
New projects are created under ~/claudecode; working copies of autonomous jobs are under ~/claudecode/_otonom. Autonomous jobs run in a closed area (sandbox): they cannot read secret folders and only reach allowed addresses (package registries, GitHub, a few CDNs).
Network
The Hub only listens on 127.0.0.1:7788 and is not reachable from outside. The phone portal and the center are optional; if you do not set them, they stay off.
Person-specific settings
All can stay empty: when a value is empty that feature is off and the Hub still starts. Write the value into ~/.claude-hub/settings.json, then run claude-hub restart. An environment variable wins over the setting.
| Setting | Environment variable | What it is for | When empty |
|---|---|---|---|
phoneUrl | HUB_PHONE_URL | Tap link of phone notifications (phone portal) | The center's address if one is connected; otherwise no link |
cagriDir | HUB_CAGRI_DIR | Folder of the phone call, notification topic and wait e-mail settings | ~/.claude/cagri; if missing these features are off |
cfAccount | HUB_CF_ACCOUNT | Name of the Cloudflare account in the vault used for preview publishing | The only account in the vault; with none, preview publishing is off and jobs still run |
| (install only) | HUB_LABEL | Name of the background service (only during install) | local.claude-hub on a new install; an older install keeps its name |
Common errors
Tap the text you see on screen to open what to do. Red ones stop the install, yellow ones show up later.
$ ./install.sh --check Claude Hub pre-check This step installs and changes nothing. [ok] macOS XX.Y [ok] Node.js vXX.Y.Z (…/bin/node) [ok] npm [ok] Claude Code (~/.local/bin/claude) [missing] Xcode command line tools are missing (needed for the Mac app and git). What to do: Run in a terminal: xcode-select --install (Apple's window opens, it takes a few minutes). [ok] git [ok] Write access: ~/claudecode/claude-hub [ok] Write access: ~/.claude-hub [ok] Write access: ~/Library/LaunchAgents [ok] Write access: ~/Applications [ok] Write access: ~/.local/bin Missing: 1. The install did not start and nothing was changed. Fix the items above and run ./install.sh again. $
./install.sh --check output without the Xcode command line tools. Each missing item says what to do under it.missing: Claude Code is not at ~/.local/bin/claude
claude install, then check the path with ls -l ~/.local/bin/claude.missing: Node.js was not found / is too old
brew install node; if it is old, brew upgrade node.missing: Xcode command line tools are missing
xcode-select --install, finish Apple's window, then ./install.sh.missing: Cannot write to this folder
claude-hub: command not found
~/.local/bin is not on your PATH. Type ~/.local/bin/claude-hub open or add the folder to PATH.Could not reach the Claude Hub server
claude-hub restart, then Cmd+R in the window. If it persists, look at claude-hub log.claude-hub status: running but did not answer
claude-hub log.Login was not completed. You can try again.
I updated Node or moved the Hub folder and the Hub does not start
./install.sh again: the service keeps the old path.No Cloudflare account is set, preview publishing is off
Uninstall
One command removes the service and the app. Your accounts and settings stay until you delete them.
claude-hub uninstall
claude-hub uninstall
- Stops the service and removes the service file
- Removes the
~/Applications/Claude Hub.appapp - Removes the
claude-hubcommand ~/.claude-hub(account sign-ins, settings) stays; if you install again you continue where you left off- Claude Code's own folder
~/.claudeis not removed
Remove everything
Move the Hub folder and ~/.claude-hub to the Trash in Finder. Sign-ins in the Keychain are not removed by themselves; if you want, search for "claude" in Keychain Access and delete them.
One-command install
Only a suggestion. It joins the steps into one line; it runs only if you paste and run it.
git clone <repo-address> ~/claudecode/claude-hub && ~/claudecode/claude-hub/install.sh