claude-code-marketplace 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +20 -56
  2. package/package.json +1 -1
  3. package/server.js +7 -1
package/README.md CHANGED
@@ -1,89 +1,53 @@
1
1
  # Claude Code Marketplace
2
2
 
3
- A web-based dashboard for browsing, installing, and managing [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugins across multiple marketplaces.
4
-
5
3
  [![npm version](https://img.shields.io/npm/v/claude-code-marketplace)](https://www.npmjs.com/package/claude-code-marketplace)
6
4
  [![license](https://img.shields.io/npm/l/claude-code-marketplace)](LICENSE)
7
5
  [![npm downloads](https://img.shields.io/npm/dm/claude-code-marketplace)](https://www.npmjs.com/package/claude-code-marketplace)
8
6
 
9
- <p align="center">
10
- <img src="assets/main-dark.png" alt="Marketplace — dark theme" width="100%">
11
- </p>
12
-
13
- <details>
14
- <summary>Light theme & file preview</summary>
15
-
16
- <p align="center">
17
- <img src="assets/main-light.png" alt="Marketplace — light theme" width="100%">
18
- </p>
7
+ **[Live Demo & Docs](https://nikiforovall.blog/claude-code-marketplace/)**
19
8
 
20
- <p align="center">
21
- <img src="assets/prevew-light.png" alt="Plugin file preview" width="100%">
22
- </p>
9
+ > Browse, install, and manage [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugins across multiple marketplaces.
23
10
 
24
- </details>
11
+ ![Marketplace dashboard](assets/shot-marketplace.png)
25
12
 
26
- ## Quick Start
13
+ ## Getting Started
27
14
 
28
15
  ```bash
29
16
  npx claude-code-marketplace --open
30
17
  ```
31
18
 
32
- Or with a custom port:
33
-
34
- ```bash
35
- npx claude-code-marketplace --port 8080
36
- ```
37
-
38
- ### Options
39
-
40
- ```
41
- --port <number> Custom port (default: 3542)
42
- --project <path> Project directory for project-scoped plugins
43
- --open Open browser on start
44
- ```
19
+ That's it the dashboard reads your `~/.claude/plugins/` registry and opens in the browser. All install/uninstall/enable/disable operations delegate to the official `claude plugin` CLI, so Claude Code must be installed and on your PATH.
45
20
 
46
21
  ## Features
47
22
 
48
23
  - **Multi-marketplace browser** — aggregate plugins from GitHub repos, git URLs, and local directories
49
- - **Scope management** — install, enable, and disable plugins per scope (user / project / local)
24
+ - **Scope management** — install, enable, and disable plugins per scope, with `U`/`P`/`L` state badges (user / project / local)
50
25
  - **Component inspection** — browse skills, commands, agents, MCP servers, hooks, and LSP servers inside each plugin
51
26
  - **File preview** — read plugin source files directly in the browser with syntax highlighting
27
+ - **Full catalog view** — marketplace info panel shows every plugin a source offers, installed or not
28
+ - **User & project customizations** — your local `~/.claude/` and `./.claude/` skills, commands, agents, and hooks appear as browsable virtual marketplaces
52
29
  - **Marketplace actions** — add, update, and remove marketplace sources
53
- - **PWA support** — installable as a standalone desktop app with offline caching
54
- - **Dark / light theme** — styled with IBM Plex Mono, orange accent palette
30
+ - **17 color themes** — Ember, Gruvbox, Catppuccin, Tokyo Night, Dracula, Nord, and more — each in light and dark
55
31
  - **Keyboard-first** — vim-style navigation, press `?` for shortcuts
32
+ - **PWA support** — installable as a standalone desktop app
56
33
 
57
- ## How It Works
58
-
59
- The server reads `~/.claude/plugins/` to discover installed marketplaces and plugin registries. Each marketplace points to a directory containing a `.claude-plugin/marketplace.json` manifest listing available plugins.
60
-
61
- The UI renders a tree of marketplaces with their plugins. Clicking a plugin opens its detail panel showing description, version, scope installation matrix, and filesystem-based component breakdown.
34
+ ![Plugin components and scope matrix](assets/shot-plugin-components.png)
62
35
 
63
- All plugin management operations (install, uninstall, enable, disable) delegate to `claude plugin` CLI commands.
36
+ ![File preview with syntax highlighting](assets/shot-file-preview.png)
64
37
 
65
- ## Tech Stack
38
+ ![Dark theme — Tokyo Night](assets/shot-dark-theme.png)
66
39
 
67
- - **Frontend** — vanilla JS single-page app, no framework dependencies
68
- - **Backend** — Express.js serving static files + REST API
69
- - **Styling** — CSS custom properties with dark/light theme support
70
- - **Icons** — inline SVG (Feather-style, 24x24 viewBox)
71
- - **Linter** — Biome with husky pre-commit hook
40
+ ## Configuration
72
41
 
73
- ## Development
74
-
75
- ```bash
76
- git clone https://github.com/NikiforovAll/claude-code-marketplace.git
77
- cd claude-code-marketplace
78
- npm install
79
- npm run dev
80
42
  ```
81
-
82
- ```bash
83
- npm run lint # check with biome
84
- npm run lint:fix # auto-fix
43
+ --port <number> Custom port (default: 3542, falls back if busy)
44
+ --project <path> Project directory for project-scoped plugins
45
+ --dir <path> Custom Claude config dir (default: ~/.claude)
46
+ --open Open browser on start
85
47
  ```
86
48
 
49
+ The config dir can also be set via the `CLAUDE_CONFIG_DIR` environment variable.
50
+
87
51
  ## License
88
52
 
89
53
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-marketplace",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Web UI for browsing and managing Claude Code marketplace plugins",
5
5
  "main": "server.js",
6
6
  "bin": {
package/server.js CHANGED
@@ -14,7 +14,13 @@ app.get('/hub-config', (_req, res) => {
14
14
 
15
15
  app.use(express.static(path.join(__dirname, 'public')));
16
16
 
17
- const CLAUDE_DIR = path.join(os.homedir(), '.claude');
17
+ function getClaudeDir() {
18
+ const dir = getArg('dir') || process.env.CLAUDE_CONFIG_DIR || process.env.CLAUDE_DIR;
19
+ if (dir) return dir.startsWith('~') ? dir.replace('~', os.homedir()) : dir;
20
+ return path.join(os.homedir(), '.claude');
21
+ }
22
+
23
+ const CLAUDE_DIR = getClaudeDir();
18
24
  const PLUGINS_DIR = path.join(CLAUDE_DIR, 'plugins');
19
25
 
20
26
  let _marketplaceCache = null;