@wangcansun/cc-config 1.2.1

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 (29) hide show
  1. package/README.md +364 -0
  2. package/cli.mjs +40202 -0
  3. package/dashboard/dist/client/assets/activity-DS5YBWMm.js +1 -0
  4. package/dashboard/dist/client/assets/commands-DhNv8XVR.js +1 -0
  5. package/dashboard/dist/client/assets/dashboard-DIyDYrl6.js +1 -0
  6. package/dashboard/dist/client/assets/detail-panel-C8SGLgm-.js +1 -0
  7. package/dashboard/dist/client/assets/header-CBzSNzdI.js +1 -0
  8. package/dashboard/dist/client/assets/index-CFEz1CGb.js +14 -0
  9. package/dashboard/dist/client/assets/index-CHtRMAMT.css +1 -0
  10. package/dashboard/dist/client/assets/index-CaDf51H6.js +76 -0
  11. package/dashboard/dist/client/assets/markdown-viewer-Bj8nSOSJ.js +17 -0
  12. package/dashboard/dist/client/assets/mcp-BX69kbwu.js +1 -0
  13. package/dashboard/dist/client/assets/plugins-BslRzmVr.js +2 -0
  14. package/dashboard/dist/client/assets/profiles-CfOCpDPJ.js +2 -0
  15. package/dashboard/dist/client/assets/recommended-BAj0agKu.js +1 -0
  16. package/dashboard/dist/client/assets/search-box-CqaIZ9mR.js +1 -0
  17. package/dashboard/dist/client/assets/select-BtWQJMup.js +1 -0
  18. package/dashboard/dist/client/assets/settings-CicCcNf_.js +1 -0
  19. package/dashboard/dist/client/assets/skills-DML4G4BP.js +1 -0
  20. package/dashboard/dist/client/assets/tag-Q3V7Jugn.js +1 -0
  21. package/dashboard/dist/client/favicon.ico +0 -0
  22. package/dashboard/dist/client/icon-192.png +0 -0
  23. package/dashboard/dist/client/icon-32.png +0 -0
  24. package/dashboard/dist/client/icon-512.png +0 -0
  25. package/dashboard/dist/client/icon.png +0 -0
  26. package/dashboard/dist/client/index.html +19 -0
  27. package/dashboard/dist/server.mjs +41832 -0
  28. package/mcp/server.mjs +26607 -0
  29. package/package.json +36 -0
package/README.md ADDED
@@ -0,0 +1,364 @@
1
+ **English** · [简体中文](README.zh.md)
2
+
3
+ ---
4
+
5
+ # claude-config-manager
6
+
7
+ A Claude Code plugin that gives you a web dashboard + CLI to manage your whole Claude Code setup: plugins, MCP servers, skills, commands, settings, profiles, sessions, and usage metrics.
8
+
9
+ ## Install
10
+
11
+ ### Option A — standalone CLI (npm)
12
+
13
+ Use it straight from your terminal, no Claude Code session required:
14
+
15
+ ```bash
16
+ # Run without installing
17
+ npx @wangcansun/cc-config # interactive TUI
18
+ npx @wangcansun/cc-config start # launch the dashboard on http://localhost:3399
19
+
20
+ # …or install globally
21
+ npm install -g @wangcansun/cc-config
22
+ claude-config # interactive TUI (alias: cc-config)
23
+ claude-config start # launch the dashboard
24
+ claude-config list # list plugins, MCP servers, skills, commands
25
+ ```
26
+
27
+ ### Option B — Claude Code plugin
28
+
29
+ ```bash
30
+ # 1. Add the marketplace
31
+ claude plugin marketplace add https://github.com/wangcansunking/can-claude-plugins
32
+
33
+ # 2. Install the plugin
34
+ claude plugin install claude-config-manager@can-claude-plugins
35
+
36
+ # 3. In any Claude Code session, open the dashboard
37
+ /ccm-dashboard
38
+ ```
39
+
40
+ The dashboard launches on <http://localhost:3399> and opens in your browser.
41
+
42
+ ![Dashboard overview](docs/migration/screenshots/01-dashboard-overview.png)
43
+
44
+ ## Why
45
+
46
+ Claude Code ships a lot of surface area — `settings.json`, MCP configs, plugin marketplaces, skills, commands, hooks, environment variables, sessions. Editing JSON files by hand works, but doesn't scale once you juggle multiple projects or want to switch configurations. `claude-config-manager` gives you:
47
+
48
+ - One place to view and edit every Claude Code configuration file
49
+ - Profile snapshots you can export, import, and activate (think `nvm use` for Claude)
50
+ - A marketplace browser for plugins, MCP servers, and skills
51
+ - Live session activity with resume-on-one-click
52
+ - Usage metrics pulled from your local Claude Code history
53
+
54
+ ## Features
55
+
56
+ ### Overview & Usage Metrics
57
+
58
+ Homepage shows your installed plugins, MCP servers, recent sessions, token-burn chart, and environment health at a glance.
59
+
60
+ ![MCP usage chart](docs/migration/screenshots/01b-dashboard-mcp-usage.png)
61
+
62
+ ### Personalized Recommendations
63
+
64
+ Runs `/ccm-recommendations` against your current setup to suggest plugins, MCP servers, and skills you haven't installed yet.
65
+
66
+ ![Recommended](docs/migration/screenshots/02-recommended.png)
67
+
68
+ ### Plugin Management
69
+
70
+ View installed plugins, browse marketplaces, drill into a plugin to see its commands, skills, and MCP servers.
71
+
72
+ ![Installed plugins](docs/migration/screenshots/03-config-plugins-installed.png)
73
+ ![Plugin detail panel](docs/migration/screenshots/03b-plugin-detail-panel.png)
74
+ ![Plugin marketplace](docs/migration/screenshots/03c-plugins-marketplace.png)
75
+
76
+ ### MCP Server Management
77
+
78
+ Add, remove, and inspect MCP servers. The MCP Store lets you install popular servers with one click.
79
+
80
+ ![Installed MCP servers](docs/migration/screenshots/04-config-mcp-installed.png)
81
+ ![MCP store](docs/migration/screenshots/04c-mcp-store.png)
82
+
83
+ ### Skills, Commands, and Settings
84
+
85
+ Edit skill markdown in a full-screen viewer, manage slash commands, and tweak `settings.json` fields (model, hooks, env vars) without opening a text editor.
86
+
87
+ ![Skills tab](docs/migration/screenshots/05-config-skills.png)
88
+ ![Settings tab](docs/migration/screenshots/07-config-settings.png)
89
+
90
+ ### Profiles (Export / Import / Activate)
91
+
92
+ Snapshot your full configuration — plugins, MCP servers, skills, commands, hooks, settings — into a named profile. Switch profiles to swap your whole setup, or export a `.json` and share it with a teammate.
93
+
94
+ ![Profiles](docs/migration/screenshots/08-profiles.png)
95
+ ![Export / import](docs/migration/screenshots/08b-profiles-export-import.png)
96
+
97
+ ### Session Activity
98
+
99
+ Browse past and live Claude Code sessions across all your projects. Click any session to inspect history; copy `claude --resume <id>` to resume in one click.
100
+
101
+ ![Activity](docs/migration/screenshots/09-activity.png)
102
+ ![Session detail](docs/migration/screenshots/09b-activity-session-detail.png)
103
+
104
+ ### Dark / Light Theme
105
+
106
+ ![Dark mode](docs/migration/screenshots/10-dark-mode.png)
107
+ ![Light mode](docs/migration/screenshots/10b-light-mode.png)
108
+
109
+ ## TUI (interactive terminal UI)
110
+
111
+ Run `claude-config` with no arguments to launch the in-terminal UI:
112
+
113
+ ```bash
114
+ claude-config
115
+ ```
116
+
117
+ The TUI mirrors the dashboard's browse + high-frequency actions — toggle plugins / MCPs / skills, switch profiles, copy session resume IDs, copy recommended install commands — without needing a browser or HTTP server.
118
+
119
+ ### Layout
120
+
121
+ ```
122
+ ┌─ ccm 1.1.4 · en · dashboard ○ (stopped) ──────────────────────────────┐
123
+ │ │
124
+ │ ┌─────────────┐ ┌───────────────────────────────────────────────────┐ │
125
+ │ │ Overview │ │ │ │
126
+ │ │ Config │ │ (active page content) │ │
127
+ │ │▶ Sessions │ │ │ │
128
+ │ │ Recommend │ │ │ │
129
+ │ │ Settings │ │ │ │
130
+ │ │ Profiles │ │ │ │
131
+ │ └─────────────┘ └───────────────────────────────────────────────────┘ │
132
+ │ │
133
+ │ ↑↓/jk:nav Enter:enter Esc:back Tab:switch focus /:filter ?:help │
134
+ └─────────────────────────────────────────────────────────────────────────┘
135
+ ```
136
+
137
+ ### Pages
138
+
139
+ #### Overview
140
+
141
+ ```
142
+ Active profile:
143
+ work
144
+
145
+ Plugins: 29
146
+ MCPs: 13
147
+ Skills: 86
148
+ Commands: 0
149
+
150
+ Recent sessions
151
+ · /Users/me/repos/foo
152
+ · /Users/me/repos/bar
153
+ · /Users/me/repos/baz
154
+
155
+ Dashboard: ○ stopped
156
+ ```
157
+
158
+ Shows current profile, installed counts (plugins / MCPs / skills / commands), recent sessions, and dashboard status.
159
+
160
+ #### Config — Plugins
161
+
162
+ ```
163
+ Plugins (6 installed)
164
+ ▶ [✓] vercel@claude-plugins-official 0.40.0
165
+ [✓] remember@claude-plugins-official 0.6.0
166
+ [✓] superpowers@claude-plugins-official 5.0.7
167
+ [✓] feature-dev@claude-plugins-official 1.0.0
168
+ [✓] serena@claude-plugins-official 0.9.1
169
+ [ ] experiment-plugin 0.1.0
170
+
171
+ space:toggle enter:toggle /:filter ?:help
172
+ ```
173
+
174
+ Press `space` (or `Enter`) on the cursor row to toggle `enabledPlugins` in `~/.claude/settings.json`.
175
+
176
+ #### Config — MCP servers
177
+
178
+ ```
179
+ MCP servers (4)
180
+ ▶ [✓] serena uvx serena
181
+ [✓] context7 npx context7
182
+ [✓] chrome-devtools npx chrome-devtools
183
+ [ ] playwright npx playwright
184
+
185
+ space:toggle enter:toggle /:filter
186
+ ```
187
+
188
+ Toggle `enabledMcpServers` map in `~/.claude/settings.json`.
189
+
190
+ #### Sessions
191
+
192
+ ```
193
+ Sessions (3)
194
+
195
+ ▶ ● feature work ┌──────────────────────────────────────────────────────────┐
196
+ a3f9c2bd /Users/me/repos/foo · 2h │ Name: feature work │
197
+ ○ bug fix │ Project: /Users/me/repos/foo │
198
+ b8e4f1a2 /Users/me/repos/bar · 1d │ Session ID: a3f9c2bd-1111-2222-3333-444455556666 │
199
+ ○ experiment │ Started: 2h ago (2026-04-30 14:03) │
200
+ c1d9e3b4 /Users/me/repos/baz · 5d │ Status: ● live (pid 12345) │
201
+ │ │
202
+ │ Recent inputs │
203
+ │ ───────────── │
204
+ │ │
205
+ │ 1. how do I add jwt auth to express │
206
+ │ 2. fix the failing integration test │
207
+ │ 3. refactor the user module │
208
+ └──────────────────────────────────────────────────────────┘
209
+
210
+ y:copy resume id /:filter ?:help
211
+ ```
212
+
213
+ `y` copies the resume ID to clipboard. The detail pane shows recent user inputs from that session — fast confirmation that you're picking the right one.
214
+
215
+ #### Recommended
216
+
217
+ ```
218
+ Recommended (4)
219
+
220
+ ▶ [MCP/Top] @modelcontextprotocol/server-postgres Postgres MCP server
221
+ [MCP/Trending] kubernetes-mcp-server Kubernetes MCP server
222
+ [PLUGIN/Top] devtools-cli Suite of devtools
223
+ [SKILL/Top] database-design Schema design helper
224
+
225
+ c/y:copy install cmd /:filter
226
+ ```
227
+
228
+ Read from the cache populated by the `/ccm-recommendations` skill. `c` or `y` copies the install command.
229
+
230
+ #### Settings
231
+
232
+ ```
233
+ TUI preferences
234
+
235
+ ▶ language en (Enter to toggle en ↔ zh)
236
+ theme auto (terminal palette)
237
+ quit-confirm off
238
+ ```
239
+
240
+ TUI preferences. Language toggle (en ↔ zh) takes effect immediately on the next render.
241
+
242
+ ### Keymap
243
+
244
+ | Key | Action |
245
+ |-----|--------|
246
+ | `1`–`6` | Jump sidebar to area N |
247
+ | `↑`/`↓` or `j`/`k` | Navigate the focused list |
248
+ | `g` / `G` or `Home` / `End` | Jump to top / bottom |
249
+ | `h`/`l` or `←`/`→` | Cycle inner tabs (Configuration page) |
250
+ | `Tab` / `Shift+Tab` | Toggle focus between sidebar and main pane |
251
+ | `Enter` | Activate / drill in / move focus from sidebar to main |
252
+ | `Esc` | Back; from main pane returns focus to sidebar |
253
+ | `space` | Toggle (on enable/disable rows) |
254
+ | `/` | Filter the current list |
255
+ | `r` | Force refresh |
256
+ | `?` | Help overlay |
257
+ | `q` / `Ctrl+C` | Quit |
258
+
259
+ ### Auto-launch from Claude Code
260
+
261
+ If you have the `/ccm` slash command available (via the plugin marketplace), running `/ccm` in your Claude Code chat tries to auto-launch the TUI in a fresh terminal window:
262
+
263
+ - macOS — opens a new Terminal.app window
264
+ - Linux — tries gnome-terminal / konsole / alacritty / wezterm / kitty / xterm in order
265
+ - Windows — tries Windows Terminal (`wt`) → PowerShell → cmd.exe
266
+
267
+ If no suitable terminal is found, the skill falls back to either telling you to run `claude-config` yourself, or starting the web dashboard at http://localhost:3399 — your choice.
268
+
269
+ For demos and rich detail views (charts, screenshots), the dashboard remains the better choice: `claude-config start` launches it on http://localhost:3399.
270
+
271
+ ## Slash Commands
272
+
273
+ | Command | Description |
274
+ |---------|-------------|
275
+ | `/ccm` | Quick access — status, profiles, open dashboard |
276
+ | `/ccm-dashboard` | Start the dashboard and open it in the browser |
277
+ | `/ccm-export` | Export the current configuration to a profile JSON |
278
+ | `/ccm-import` | Import a profile JSON and activate it |
279
+ | `/ccm-profile` | List, create, switch, or delete profiles |
280
+
281
+ ## Skills
282
+
283
+ | Skill | What it does |
284
+ |-------|-------------|
285
+ | `ccm-dashboard` | Starts and opens the dashboard |
286
+ | `ccm-recommendations` | Refreshes the Recommended page with personalized suggestions based on your setup |
287
+
288
+ ## MCP Tools
289
+
290
+ Only **2 tools** exposed — intentionally minimal so the model's tool-selection surface stays small:
291
+
292
+ | Tool | Purpose |
293
+ |------|---------|
294
+ | `ccm_dashboard_status` | Read-only: is the dashboard up, on what port, under what PID |
295
+ | `ccm_open_dashboard` | Return the dashboard URL + start hint |
296
+
297
+ Everything else (profiles, plugins, MCP servers, skills, commands, settings) flows through the **`claude-config` CLI** — the single source of truth for operations. The `/ccm-*` slash commands shell into the CLI via Bash.
298
+
299
+ ## CLI
300
+
301
+ ```bash
302
+ node packages/cli/dist/index.js --help # or via plugin: node ${CLAUDE_PLUGIN_ROOT}/packages/cli/dist/index.js
303
+ ```
304
+
305
+ Surface:
306
+
307
+ ```
308
+ claude-config start [--port <port>] [--no-open]
309
+ claude-config list [--plugins | --mcps | --skills | --commands] [--json]
310
+ claude-config profile list [--json]
311
+ claude-config profile create <name>
312
+ claude-config profile activate <name>
313
+ claude-config profile delete <name>
314
+ claude-config export <profile> [--output <file>] [--format json|yaml]
315
+ claude-config import <file> [--replace] [--activate] [--dry-run]
316
+ claude-config mcp-server # runs the MCP stdio server
317
+ ```
318
+
319
+ ## Repository Layout
320
+
321
+ ```
322
+ claude-config-manager/
323
+ .claude-plugin/plugin.json Plugin metadata
324
+ .mcp.json MCP server wiring
325
+ mcp-entry.mjs MCP server entrypoint
326
+ commands/ Slash commands (Skill.md files)
327
+ skills/ Skills (Skill.md files)
328
+ hooks/ Claude Code hook scripts
329
+ packages/
330
+ types/ Shared TypeScript types
331
+ core/ Business logic (profiles, scanners, managers)
332
+ mcp/ MCP server (2 tools — dashboard status + open)
333
+ dashboard/ Express + Vite dashboard (UI + API)
334
+ cli/ `claude-config` CLI
335
+ docs/ Spec docs and screenshots
336
+ ```
337
+
338
+ ## Development
339
+
340
+ Clone and run from source:
341
+
342
+ ```bash
343
+ git clone https://github.com/wangcansunking/claude-config-manager
344
+ cd claude-config-manager
345
+ npm install
346
+ npm run dev # turbo dev across all packages
347
+ ```
348
+
349
+ Other scripts:
350
+
351
+ ```bash
352
+ npm run build
353
+ npm run test # vitest unit tests
354
+ npm run test:e2e # Playwright E2E
355
+ npm run type-check
356
+ npm run lint
357
+ npm start # serve built dashboard on :3399
358
+ ```
359
+
360
+ Dashboard dev server runs on `:3399` via `turbo dev`.
361
+
362
+ ## Changelog
363
+
364
+ See [CHANGELOG.md](CHANGELOG.md).