Skip to content

Commit 1cb8093

Browse files
thrashr888claude
andcommitted
feat(cli): add skill installer command (ab skill)
Adds new subcommands for managing Claude Code skills: - ab skill list: Show installed skills (project and user level) - ab skill info <name>: Show detailed skill metadata - ab skill install <source>: Install from GitHub or local path - ab skill remove <name>: Remove installed skills - ab skill sync: Sync skills to .claude-plugin directory Supports multiple source formats: - GitHub shorthand: owner/repo - Git URLs: https://github.com/... - Local paths: ./path/to/skill Closes ab-nmwy Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent b29c019 commit 1cb8093

3 files changed

Lines changed: 717 additions & 1 deletion

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ thiserror = "2.0"
6161

6262
# File system utilities
6363
dirs = "5.0"
64+
tempfile = "3.13"
6465

6566
# Logging
6667
tracing = "0.1"
@@ -82,4 +83,3 @@ prometheus = "0.14.0"
8283
lazy_static = "1.5.0"
8384

8485
[dev-dependencies]
85-
tempfile = "3.13"

src/commands.rs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ Usage:
9595
human Send a message to human operator
9696
swarm Agent swarm management commands
9797
agent Coding agent configuration (Claude Code, Cursor, etc.)
98+
skill Manage skills (list, install, remove, sync)
9899
handoff Hand off a bead to an AI agent (fire and forget)
99100
100101
{cyan}Analysis:{reset}
@@ -782,6 +783,10 @@ pub enum Commands {
782783
#[command(subcommand, name = "agent")]
783784
CodingAgent(CodingAgentCommands),
784785

786+
/// Manage skills (install, remove, list)
787+
#[command(subcommand)]
788+
Skill(SkillCommands),
789+
785790
/// Hand off a bead to an AI agent
786791
Handoff {
787792
/// Bead ID to hand off (e.g., ab-xyz)
@@ -2167,3 +2172,78 @@ pub enum CodingAgentCommands {
21672172
path: String,
21682173
},
21692174
}
2175+
2176+
// =========================================================================
2177+
// SKILL MANAGEMENT
2178+
// =========================================================================
2179+
2180+
#[derive(Subcommand, Debug)]
2181+
pub enum SkillCommands {
2182+
/// List available and installed skills
2183+
List {
2184+
/// Show all available skills (including from marketplaces)
2185+
#[arg(short, long)]
2186+
all: bool,
2187+
2188+
/// Output as JSON
2189+
#[arg(long)]
2190+
json: bool,
2191+
2192+
/// Path to project (default: current directory)
2193+
#[arg(default_value = ".")]
2194+
path: String,
2195+
},
2196+
2197+
/// Show detailed skill information
2198+
Info {
2199+
/// Skill name or source (owner/repo, owner/repo/skills/name)
2200+
name: String,
2201+
},
2202+
2203+
/// Install a skill from various sources
2204+
Install {
2205+
/// Skill source: GitHub shorthand (owner/repo), git URL, or local path
2206+
source: String,
2207+
2208+
/// Install globally (user-level) instead of project-level
2209+
#[arg(short, long)]
2210+
global: bool,
2211+
2212+
/// Target specific agents (claude-code, cursor, codex, etc.)
2213+
#[arg(short, long)]
2214+
agent: Option<Vec<String>>,
2215+
2216+
/// Specify skill name(s) to install from a multi-skill repo
2217+
#[arg(short, long)]
2218+
skill: Option<Vec<String>>,
2219+
2220+
/// Skip confirmation prompts
2221+
#[arg(short, long)]
2222+
yes: bool,
2223+
},
2224+
2225+
/// Remove an installed skill
2226+
Remove {
2227+
/// Skill name to remove
2228+
name: String,
2229+
2230+
/// Remove from global (user-level) instead of project-level
2231+
#[arg(short, long)]
2232+
global: bool,
2233+
2234+
/// Skip confirmation prompts
2235+
#[arg(short, long)]
2236+
yes: bool,
2237+
},
2238+
2239+
/// Sync skills to Claude config directories
2240+
Sync {
2241+
/// Specific skill to sync (default: all)
2242+
#[arg(short, long)]
2243+
name: Option<String>,
2244+
2245+
/// Path to project (default: current directory)
2246+
#[arg(default_value = ".")]
2247+
path: String,
2248+
},
2249+
}

0 commit comments

Comments
 (0)