GitHub - NikiforovAll/claude-code-hub: Agent Development Environment (ADE) · GitHub
Skip to content

Latest commit

 

History

508 Commits

Folders and files

Repository files navigation

Claude Code Hub

npm version license npm downloads

One window for your Claude Code tools: Kanban, Marketplace, Cost, and Memory Diagnoser, in a single chromeless PWA that you drive from the keyboard.

Website: nikiforovall.blog/claude-code-hub

Claude Code Hub tour video (37 seconds). Opens on YouTube.

Watch the tour on YouTube: light, dark.

The tools

Kanban

See tasks, sessions, and live agent activity as a board. Open a Claude Code session in the embedded terminal.

Kanban board with sessions and tasks

Marketplace

Browse and manage Claude Code marketplace plugins.

Marketplace with the plugin list

Cost

See what your Claude Code usage costs, per session and per project.

Cost dashboard with usage charts

Memory Diagnoser

Explore the memory files that Claude Code loads for a project.

Memory Diagnoser with loaded memory files

Quick start

npm i -g claude-code-hub
claude-code-hub --open

The hub starts on http://localhost:3540 and opens the browser. To get a window with no browser UI, install the page as an app from the browser menu. To update, run npm i -g claude-code-hub@latest.

To try the hub without installing it, run npx claude-code-hub --open. Each npx version runs from a different cache folder, so use a global install to keep the hub.

From source

git clone --recurse-submodules https://github.com/NikiforovAll/claude-code-hub.git
cd claude-code-hub
npm install && npm install --prefix marketplace && npm install --prefix cck && npm install --prefix cost && npm install --prefix memory
npm start        # http://localhost:3540

Agent observability (one-time setup)

For the full Kanban view (agent log, live subagent tracking, waiting-for-user indicators, and context window use), install the plugins:

claude-code-hub --install

This installs Kanban's plugin and the hub's own plugin. Without Kanban's plugin you still get the task board and sessions, but no live agent activity. The plugins are installed per Claude config dir, so run the command again with --dir <config dir> for each dir you use. After a hub update, run the command again to update the plugins. See the Kanban docs for details.

Hub token

The hub page and its API need a token. Any local account can reach a loopback port, and the API carries the terminal token.

  • The token is in ~/.claude-hub/token. The hub creates it on the first run and keeps it across restarts.
  • The startup banner prints the URL with the token, http://localhost:3540/?token=…, and --open uses that URL. The hub sets a cookie and then removes the token from the address bar, so later visits and the installed app need no token.
  • Without the token, the page shows a locked screen.
  • To change the token, delete the file and restart the hub.

Config dirs

The hub can run the tools against more than one Claude config dir (CLAUDE_CONFIG_DIR), for example a work dir and a personal dir.

  • Press Ctrl+Alt+W to open the config-dir palette. Pick a dir to switch to it, or type a path to add a new one. Ctrl+D removes the selected dir.
  • Each dir gets its own set of the four tools. When you switch, the hub keeps the old set running, so switching back is instant. --pool-size sets how many sets stay alive (default 3). When the pool is full, the hub stops the least recently used set, but not a set whose Kanban has open terminals.
  • The list and the active dir are saved in ~/.claude-hub/config.json.

Choose the tools

By default the hub runs all four tools. To turn a tool off or change the tab order, add an apps list to ~/.claude-hub/config.json:

{
  "apps": [
    { "id": "kanban" },
    { "id": "cost" },
    { "id": "marketplace", "enabled": false }
  ]
}
  • The ids are kanban, marketplace, cost and memory.
  • The tools you list come first, in list order. The tools you do not list follow in the default order.
  • A tool with "enabled": false does not start and gets no tab. Links from other tools to it do nothing.
  • "port": 4543 sets the tool's port. See Ports for the order and the busy-port fallback.
  • With Kanban off, the embedded terminal is off, and the project palette has no project list. You can still type a path.
  • Restart the hub after you edit the file.

Run a second hub

Give the second hub its own folder for the config file and token with --hub-dir <path> or CLAUDE_HUB_DIR. See Run a second hub.

Embedded terminal

Under the hub, Kanban has an embedded terminal, on by default, so you can start or resume Claude Code sessions from the board. While a terminal is attached, the hub asks before it closes the window, because Ctrl+W meant for the terminal would close it.

To turn the terminal off, start the hub with --disable-terminal, or add this to ~/.claude-hub/config.json:

{
  "terminal": { "enabled": false }
}

Keyboard shortcuts

The hub has no visible UI of its own. Use these shortcuts:

Shortcut Action
Ctrl+Alt+→ Next tool
Ctrl+Alt+← Previous tool
Alt+1 Kanban
Alt+2 Marketplace
Alt+3 Cost
Alt+4 Memory Diagnoser
Ctrl+Alt+P Project palette: set the project for all tools
Ctrl+Alt+W Config-dir palette: switch, add, or remove a config dir
Ctrl+Alt+A App launcher: switch to a tool, or restart it with Ctrl+R

Alt+1 to Alt+4 follow the tab order, so they change when you choose the tools.

On macOS, every hub key is Control+Option with a key, the tool numbers too: ⌃⌥1 to ⌃⌥4. Option with a digit types a character there, so the hub leaves it to the tools.

In a palette, use ↑/↓ or Tab to move, Enter to select, and Esc to close.

The shortcuts also work when focus is inside a tool. Kanban keeps Ctrl+Alt+N (new session), Ctrl+Alt+R (resume session), and Ctrl+Alt+S (previous session) for itself. From Kanban you can also jump to another tool for the selected session:

Shortcut Action
M Open Marketplace for the session's project
$ Open Cost for the session
Ctrl+M Open Memory Diagnoser for the session's project

CLI flags

--port <n>              Hub port (default: 3540)
--kanban-port <n>       Kanban port (default: 3541)
--marketplace-port <n>  Marketplace port (default: 3542)
--cost-port <n>         Cost port (default: 3543)
--memory-port <n>       Memory Diagnoser port (default: 3544)
--pool-size <n>         Config-dir sets kept running after a switch (default: 3)
--disable-terminal      Turn off the embedded terminal in Kanban
--host <addr>           Bind address (default: 127.0.0.1)
--allowed-hosts <list>  Extra host names to accept, comma-separated
--open                  Open the browser on start
--detached              Keep running when stdin closes (the macOS tray uses it)
--tray                  Windows, macOS: run the hub from a tray icon
--autostart             Windows, macOS: same as --tray, and start the tray at logon
--no-autostart          Windows, macOS: stop starting the tray at logon
--tray-status           Windows, macOS: show whether autostart is on and the tray and hub are running
--app-id <id>           Windows, macOS, with --tray or --autostart: the installed app that Open Hub starts

If a port is busy, the hub uses a free port and reports it.

Tray icon (Windows, macOS)

claude-code-hub --autostart

The hub runs in the background with an icon in the notification area. Click the icon to open the hub. Right-click it to stop, start or restart the hub, open its log, turn Start with Windows on or off, or quit. The dot on the icon shows the state: green is running, amber is starting, red is stopped. If the hub stops unexpectedly, the tray shows a notice and turns red; start the hub again from the menu.

On macOS (experimental), the icon is in the menu bar.

To turn off autostart, untick Start with Windows or run claude-code-hub --no-autostart. To check the state, run claude-code-hub --tray-status. See Run the hub from the tray.

Included tools

Tool Docs Repo Submodule Default port
Kanban Docs claude-code-kanban cck/ 3541
Marketplace Docs claude-code-marketplace marketplace/ 3542
Cost Docs claude-code-cost cost/ 3543
Memory Diagnoser Docs claude-code-memory memory/ 3544

License

MIT

Releases

Packages

Contributors

Languages