claudepluginhub 0.1.2 → 0.2.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.
package/dist/fetch.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- interface MarketplacePlugin {
1
+ export interface MarketplacePlugin {
2
2
  name: string;
3
3
  source: {
4
4
  source: string;
@@ -6,7 +6,12 @@ interface MarketplacePlugin {
6
6
  };
7
7
  strict: boolean;
8
8
  description?: string;
9
- [key: string]: unknown;
9
+ commands?: string[];
10
+ agents?: string[];
11
+ skills?: string[];
12
+ hooks?: unknown;
13
+ mcpServers?: unknown;
14
+ lspServers?: unknown;
10
15
  }
11
16
  export interface MarketplaceJSON {
12
17
  name: string;
@@ -17,4 +22,3 @@ export interface MarketplaceJSON {
17
22
  }
18
23
  export declare function resolveMarketplaceUrl(input: string): string | null;
19
24
  export declare function fetchMarketplace(url: string): Promise<MarketplaceJSON | null>;
20
- export {};
package/dist/index.js CHANGED
@@ -4,6 +4,22 @@ import { detectClaude, addMarketplace, installPlugin } from './install.js';
4
4
  import { checkboxPrompt, scopePrompt } from './prompts.js';
5
5
  import { print, printBanner, printStep, printSuccess, printFail, printSummary, printError, } from './output.js';
6
6
  const VALID_SCOPES = ['user', 'project', 'local'];
7
+ function formatComponents(plugin) {
8
+ const parts = [];
9
+ if (plugin.commands?.length)
10
+ parts.push(`${plugin.commands.length} command(s)`);
11
+ if (plugin.agents?.length)
12
+ parts.push(`${plugin.agents.length} agent(s)`);
13
+ if (plugin.skills?.length)
14
+ parts.push(`${plugin.skills.length} skill(s)`);
15
+ if (plugin.hooks)
16
+ parts.push('hooks');
17
+ if (plugin.mcpServers)
18
+ parts.push('MCP');
19
+ if (plugin.lspServers)
20
+ parts.push('LSP');
21
+ return parts.length > 0 ? parts.join(', ') : '';
22
+ }
7
23
  function printUsage() {
8
24
  print(`Usage: npx claudepluginhub <identifier> [options]
9
25
 
@@ -79,8 +95,8 @@ async function main() {
79
95
  if (!yes && marketplace.plugins.length > 1) {
80
96
  print('');
81
97
  const items = marketplace.plugins.map((p) => ({
82
- label: p.name,
83
- description: p.description,
98
+ label: p.source.repo,
99
+ description: formatComponents(p),
84
100
  selected: true,
85
101
  }));
86
102
  const chosen = await checkboxPrompt('Select plugins to install:', items);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudepluginhub",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Install Claude Code plugins from ClaudePluginHub",
5
5
  "bin": {
6
6
  "claudepluginhub": "./dist/index.js"