@laststance/claude-plugin-dashboard 0.1.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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/app.d.ts +8 -0
  4. package/dist/app.js +481 -0
  5. package/dist/cli.d.ts +16 -0
  6. package/dist/cli.js +316 -0
  7. package/dist/components/ConfirmDialog.d.ts +14 -0
  8. package/dist/components/ConfirmDialog.js +14 -0
  9. package/dist/components/KeyHints.d.ts +19 -0
  10. package/dist/components/KeyHints.js +23 -0
  11. package/dist/components/MarketplaceDetail.d.ts +15 -0
  12. package/dist/components/MarketplaceDetail.js +39 -0
  13. package/dist/components/MarketplaceList.d.ts +16 -0
  14. package/dist/components/MarketplaceList.js +32 -0
  15. package/dist/components/PluginDetail.d.ts +15 -0
  16. package/dist/components/PluginDetail.js +52 -0
  17. package/dist/components/PluginList.d.ts +19 -0
  18. package/dist/components/PluginList.js +54 -0
  19. package/dist/components/SearchInput.d.ts +16 -0
  20. package/dist/components/SearchInput.js +14 -0
  21. package/dist/components/SortDropdown.d.ts +21 -0
  22. package/dist/components/SortDropdown.js +29 -0
  23. package/dist/components/StatusIcon.d.ts +20 -0
  24. package/dist/components/StatusIcon.js +25 -0
  25. package/dist/components/TabBar.d.ts +24 -0
  26. package/dist/components/TabBar.js +38 -0
  27. package/dist/services/fileService.d.ts +41 -0
  28. package/dist/services/fileService.js +104 -0
  29. package/dist/services/pluginActionsService.d.ts +21 -0
  30. package/dist/services/pluginActionsService.js +65 -0
  31. package/dist/services/pluginService.d.ts +66 -0
  32. package/dist/services/pluginService.js +188 -0
  33. package/dist/services/settingsService.d.ts +82 -0
  34. package/dist/services/settingsService.js +117 -0
  35. package/dist/tabs/DiscoverTab.d.ts +26 -0
  36. package/dist/tabs/DiscoverTab.js +25 -0
  37. package/dist/tabs/ErrorsTab.d.ts +16 -0
  38. package/dist/tabs/ErrorsTab.js +39 -0
  39. package/dist/tabs/InstalledTab.d.ts +16 -0
  40. package/dist/tabs/InstalledTab.js +24 -0
  41. package/dist/tabs/MarketplacesTab.d.ts +16 -0
  42. package/dist/tabs/MarketplacesTab.js +21 -0
  43. package/dist/types/index.d.ts +250 -0
  44. package/dist/types/index.js +5 -0
  45. package/dist/utils/paths.d.ts +40 -0
  46. package/dist/utils/paths.js +50 -0
  47. package/package.json +60 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Laststance.io
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,235 @@
1
+ # Claude Code Plugin Dashboard
2
+
3
+ [![npm version](https://badge.fury.io/js/@laststance/claude-plugin-dashboard.svg)](https://www.npmjs.com/package/@laststance/claude-plugin-dashboard)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ An interactive CLI dashboard to browse, install, and manage [Claude Code](https://claude.ai/code) plugins.
7
+ Built with [Ink](https://github.com/vadimdemedes/ink) (React for CLI).
8
+
9
+ <p align="center">
10
+ <img src="./assets/image.png" alt="Dashboard Screenshot" width="800">
11
+ </p>
12
+
13
+ ## Features
14
+
15
+ - 🔍 **Discover** - Browse 100+ plugins from multiple marketplaces
16
+ - 📦 **Install/Uninstall** - Install and uninstall plugins directly from the dashboard
17
+ - ✅ **Enable/Disable** - Toggle plugins on/off with a single key
18
+ - 🏪 **Marketplaces** - Explore plugin sources
19
+ - ⚠️ **Errors** - Debug plugin issues
20
+ - ⌨️ **Keyboard-driven** - Full keyboard navigation with Emacs-style shortcuts
21
+ - 🎨 **Beautiful TUI** - Terminal UI that matches Claude Code's design
22
+
23
+ ## Prerequisites
24
+
25
+ - [Node.js](https://nodejs.org/) 20 or later
26
+ - [Claude Code](https://claude.ai/code) installed (`~/.claude` directory must exist)
27
+
28
+ ## Installation
29
+
30
+ ```bash
31
+ npm install -g @laststance/claude-plugin-dashboard
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ### Interactive Mode
37
+
38
+ ```bash
39
+ claude-plugin-dashboard
40
+ ```
41
+
42
+ This opens the interactive TUI dashboard.
43
+
44
+ **Keyboard Shortcuts:**
45
+
46
+ | Key | Action |
47
+ | --------- | ------------------------------------------- |
48
+ | `←` `→` | Switch tabs |
49
+ | `↑` `↓` | Navigate list |
50
+ | `^P` `^N` | Navigate list (Emacs-style) |
51
+ | `i` | Install selected plugin |
52
+ | `u` | Uninstall selected plugin (with confirm) |
53
+ | `Space` | Toggle plugin enable/disable |
54
+ | `Enter` | View details / Toggle |
55
+ | `/` | Search plugins |
56
+ | `s` | Cycle sort options (Installs → Name → Date) |
57
+ | `S` | Toggle sort order (Asc/Desc) |
58
+ | `Tab` | Next tab |
59
+ | `Esc` | Clear search / Cancel |
60
+ | `q` | Quit |
61
+
62
+ ### Command Line Mode
63
+
64
+ ```bash
65
+ # Show summary statistics
66
+ claude-plugin-dashboard status
67
+
68
+ # List all plugins
69
+ claude-plugin-dashboard list
70
+
71
+ # List installed plugins only
72
+ claude-plugin-dashboard list --installed
73
+
74
+ # List plugins from specific marketplace
75
+ claude-plugin-dashboard list --marketplace claude-plugins-official
76
+
77
+ # Show plugin details
78
+ claude-plugin-dashboard info context7@claude-plugins-official
79
+
80
+ # Enable a plugin
81
+ claude-plugin-dashboard enable context7@claude-plugins-official
82
+
83
+ # Disable a plugin
84
+ claude-plugin-dashboard disable context7@claude-plugins-official
85
+
86
+ # Toggle plugin state
87
+ claude-plugin-dashboard toggle context7@claude-plugins-official
88
+
89
+ # Show help
90
+ claude-plugin-dashboard help
91
+ ```
92
+
93
+ ## Dashboard Tabs
94
+
95
+ ### Discover
96
+
97
+ Browse all available plugins from all configured marketplaces:
98
+
99
+ - Search by name, description, or tags
100
+ - Sort by install count, name, or date
101
+ - Install plugins with `i` key
102
+ - View plugin details including install count and description
103
+
104
+ ### Installed
105
+
106
+ Manage your installed plugins:
107
+
108
+ - See enabled (●) and disabled (◐) status at a glance
109
+ - Toggle plugins on/off with `Space`
110
+ - Uninstall plugins with `u` (with Y/N confirmation)
111
+ - View installation details
112
+
113
+ ### Marketplaces
114
+
115
+ Explore plugin sources:
116
+
117
+ - View all configured marketplaces
118
+ - See plugin counts per marketplace
119
+ - Check last update times
120
+
121
+ ### Errors
122
+
123
+ Debug plugin issues:
124
+
125
+ - View plugin-related errors
126
+ - Check error details and timestamps
127
+
128
+ ## How It Works
129
+
130
+ This tool reads and modifies Claude Code's configuration files:
131
+
132
+ | File | Purpose |
133
+ | --------------------------------------------- | --------------------------- |
134
+ | `~/.claude/settings.json` | Plugin enable/disable state |
135
+ | `~/.claude/plugins/installed_plugins.json` | Installation metadata |
136
+ | `~/.claude/plugins/known_marketplaces.json` | Marketplace sources |
137
+ | `~/.claude/plugins/install-counts-cache.json` | Global install statistics |
138
+ | `~/.claude/plugins/marketplaces/` | Plugin catalogs |
139
+
140
+ **Note:** The dashboard executes `claude plugin install/uninstall` commands internally via subprocess.
141
+
142
+ ## Status Icons
143
+
144
+ | Icon | Meaning |
145
+ | ---------- | -------------------- |
146
+ | ● (green) | Installed & Enabled |
147
+ | ◐ (yellow) | Installed & Disabled |
148
+ | ○ (gray) | Not Installed |
149
+
150
+ ## Troubleshooting
151
+
152
+ ### "Claude Code not found"
153
+
154
+ Make sure Claude Code is installed and `~/.claude` directory exists.
155
+
156
+ ```bash
157
+ ls -la ~/.claude/settings.json
158
+ ```
159
+
160
+ ### "Permission denied"
161
+
162
+ Check that you have read/write access to `~/.claude/settings.json`.
163
+
164
+ ```bash
165
+ chmod 644 ~/.claude/settings.json
166
+ ```
167
+
168
+ ### Plugins not showing up
169
+
170
+ Run the status command to check data:
171
+
172
+ ```bash
173
+ claude-plugin-dashboard status
174
+ ```
175
+
176
+ If counts are zero, ensure Claude Code has been used at least once to initialize the plugin directory.
177
+
178
+ ## Cross-Platform Support
179
+
180
+ This tool works on:
181
+
182
+ - ✅ macOS
183
+ - ✅ Linux
184
+ - ✅ Windows (with Node.js 20+)
185
+
186
+ The tool uses `os.homedir()` and `path.join()` for cross-platform path handling.
187
+
188
+ ## Contributing
189
+
190
+ Contributions are welcome! Please feel free to submit a Pull Request.
191
+
192
+ 1. Fork the repository
193
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
194
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
195
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
196
+ 5. Open a Pull Request
197
+
198
+ ## Local Development
199
+
200
+ ```bash
201
+ git clone https://github.com/laststance/claude-code-plugin-dashboard.git
202
+ cd claude-code-plugin-dashboard
203
+ pnpm install
204
+ pnpm build
205
+ pnpm start
206
+ ```
207
+
208
+ ## Tech Stack
209
+
210
+ - [Ink](https://github.com/vadimdemedes/ink) v5 - React for CLI
211
+ - [React](https://react.dev/) 18 - UI components
212
+ - [TypeScript](https://www.typescriptlang.org/) 5 - Type safety
213
+ - ESM modules
214
+
215
+ ## License
216
+
217
+ MIT © [Laststance.io](https://github.com/laststance)
218
+
219
+ ## Related Projects
220
+
221
+ - [Claude Code](https://claude.ai/code) - AI-powered coding assistant by Anthropic
222
+ - [Ink](https://github.com/vadimdemedes/ink) - React for interactive command-line apps
223
+ - [SuperClaude](https://github.com/SuperClaude-Org/SuperClaude_Framework) - Claude Code enhancement framework
224
+
225
+ ## Changelog
226
+
227
+ ### v0.1.0
228
+
229
+ - Initial release
230
+ - Interactive dashboard with 4 tabs (Discover, Installed, Marketplaces, Errors)
231
+ - Plugin install/uninstall functionality (`i`/`u` keys)
232
+ - Plugin enable/disable functionality (`Space` key)
233
+ - Emacs-style navigation (`Ctrl+P`/`Ctrl+N`)
234
+ - CLI commands for non-interactive use
235
+ - Search, sort, and filter support
package/dist/app.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Main App component for Claude Code Plugin Dashboard
3
+ * Interactive TUI to browse and manage Claude Code plugins
4
+ */
5
+ /**
6
+ * Main App component
7
+ */
8
+ export default function App(): import("react/jsx-runtime").JSX.Element;