Run inside Claude Code Hub
Claude Code Hub puts several Claude Code tools in one window, one tab per app. Claude Code Marketplace is one of those tabs. The app works the same as it does standalone, with a few additions for keys, theme, and project.
How the hub starts the app
Section titled “How the hub starts the app”The hub starts Claude Code Marketplace as a child process and sets three environment variables:
| Variable | Value |
|---|---|
CLAUDE_HUB |
1. Sets enabled in the hub settings, which turns on hub mode in the page. |
HUB_URL |
The hub address, for example http://localhost:3540. It also controls the framing rules and the accepted Origin. |
CLAUDE_CONFIG_DIR |
The Claude config dir that is active in the hub. |
The app reads the config dir once at startup. When you switch the config dir in the hub, the hub uses a different Claude Code Marketplace process for that dir.
The hub also gives the app its SDK. In hub mode, the page asks the server for its hub settings at GET /hub-config, and the answer is {"enabled": true, "url": "<HUB_URL>"}. Standalone, the app has no /hub-config route and uses a stub of the SDK that talks to no hub, so none of the changes on this page apply. See Hub protocol v1.
Keys the app sends to the hub
Section titled “Keys the app sends to the hub”A key press inside a tab does not reach the hub window by itself. In hub mode, Claude Code Marketplace sends these keys to the hub:
- Ctrl+Alt+Left and Ctrl+Alt+Right
- Ctrl+Alt plus any letter, with no Shift
- Alt+1 to Alt+9, with no Ctrl or Shift
The hub acts on these keys and ignores the rest:
| Key | Hub action |
|---|---|
| Ctrl+Alt+Left / Ctrl+Alt+Right | Go to the previous or next hub app. |
| Alt+1 to Alt+9 | Go to the hub app with that number. |
| Ctrl+Alt+P | Open the hub project picker. |
| Ctrl+Alt+W | Open the hub config-dir picker. |
| Ctrl+Alt+A | Open the hub app launcher. |
The help overlay (?) shows a Hub group with the first three rows. It does not list Ctrl+Alt+W or Ctrl+Alt+A. Standalone, the Hub group is hidden, because the keys do nothing there. See Keyboard shortcuts for the keys of the app itself.
The light or dark mode and the color theme sync with the other hub apps in both directions. Change the theme in Claude Code Marketplace, and the other apps follow. Change it in another app, and Claude Code Marketplace follows.
Project
Section titled “Project”The hub project picker (Ctrl+Alt+P) sets the project for all hub apps. When you pick a project there, Claude Code Marketplace switches to it and reloads its data. Project and local scope then refer to that project. The hub choice wins over the last project that the app remembers.
You can still use the app’s own project picker, the folder button in the top bar or Shift+P. See Install, enable, and remove plugins for what the scopes do.
Framing rules
Section titled “Framing rules”Standalone, the server sends Content-Security-Policy: frame-ancestors 'none' and X-Frame-Options: DENY, so no page can put the app in a frame.
When HUB_URL is set, the server sends frame-ancestors 'self' http://localhost:* http://127.0.0.1:*, and drops X-Frame-Options. If the hub address is not on localhost or 127.0.0.1, the server adds the hub origin to that list. The server also accepts requests that carry the hub origin in the Origin header.
The page sends and accepts hub messages only for the hub origin. It ignores messages that do not come from its parent window.