Skill Management CLI
Meta-skill for managing oh-my-claudecode skills via CLI-like commands.
Subcommands
/skill list
Show all available skills organized by scope.
Behavior:
- Scan bundled built-in skills in the plugin
skills/ directory (read-only)
- Scan user skills at
~/.claude/skills/omc-learned/
- Scan project skills at
.omc/skills/
- Parse YAML frontmatter for metadata
- Display in organized table format:
BUILT-IN SKILLS (bundled with oh-my-claudecode):
| Name | Description | Scope |
|-------------------|--------------------------------|----------|
| visual-verdict | Structured visual QA verdicts | built-in |
| ralph | Persistence loop | built-in |
USER SKILLS (~/.claude/skills/omc-learned/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|-------|
| error-handler | fix, error | 95% | 42 | user |
| api-builder | api, endpoint | 88% | 23 | user |
PROJECT SKILLS (.omc/skills/):
| Name | Triggers | Quality | Usage | Scope |
|-------------------|--------------------|---------|-------|---------|
| test-runner | test, run | 92% | 15 | project |
Fallback: If quality/usage stats not available, show "N/A"
Built-in skill note: Built-in skills are bundled with oh-my-claudecode and are discoverable/readable, but not removed or edited through /skill remove or /skill edit.
/skill add [name]
Interactive wizard for creating a new skill.
Behavior:
- Ask for skill name (if not provided in command)
- Validate: lowercase, hyphens only, no spaces
- Ask for description
- Ask for triggers (comma-separated keywords)
- Example: "error, fix, debug"
- Ask for argument hint (optional)
- Ask for scope:
user β ~/.claude/skills/omc-learned/<name>/SKILL.md
project β .omc/skills/<name>/SKILL.md
- Create skill file with template:
---
name: <name>
description: <description>
triggers:
- <trigger1>
- <trigger2>
argument-hint: "<args>"
---
[Describe what this skill does]
[Describe triggers and conditions]
1. [Step 1]
2. [Step 2]
3. [Step 3]
/oh-my-claudecode: example-arg
## Notes
[Additional context, edge cases, gotchas]
- Report success with file path
- Suggest: "Edit
/skill edit <name> to customize content"
Example:
User: /skill add custom-logger
Assistant: Creating new skill 'custom-logger'...
Description: Enhanced logging with structured output
Triggers (comma-separated): log, logger, logging
Argument hint (optional): <level> [message]
Scope (user/project): user
β Created skill at ~/.claude/skills/omc-learned/custom-logger/SKILL.md
β Edit with: /skill edit custom-logger
/skill remove
Remove a skill by name.
Behavior:
- Search for skill in both scopes:
~/.claude/skills/omc-learned/<name>/SKILL.md
.omc/skills/<name>/SKILL.md
- If found:
- Display skill info (name, description, scope)
- Ask for confirmation: "Delete '' skill from ? (yes/no)"
- If confirmed:
- Delete entire skill directory (e.g.,
~/.claude/skills/omc-learned/<name>/)
- Report: "β Removed skill '' from "
- If not found:
- Report: "β Skill '' not found in user or project scope"
Safety: Never delete without explicit user confirmation.
Example:
User: /skill remove old-logger
Assistant: Found skill 'old-logger' in user scope:
Description: Legacy logging utility
Scope: user (~/.claude/skills/omc-learned/)
Delete 'old-logger' skill? (yes/no)
User: yes
Assistant: β Removed skill 'old-logger' from user scope
/skill edit
Edit an existing skill interactively.
Behavior:
- Find skill by name (search both scopes)
- Read current content via Read tool
- Display current values:
Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
- Scope: user
- Ask what to change:
description - Update description
triggers - Update trigger keywords
argument-hint - Update argument hint
content - Edit full markdown content
rename - Rename skill (move file)
cancel - Exit without changes
- For selected field:
- Show current value
- Ask for new value
- Update YAML frontmatter or content
- Write back to file
- Report success with summary of changes
Example:
User: /skill edit custom-logger
Assistant: Current skill 'custom-logger':
- Description: Enhanced logging with structured output
- Triggers: log, logger, logging
- Argument hint: <level> [message]
What would you like to edit? (description/triggers/argument-hint/content/rename/cancel)
User: triggers
Assistant: Current triggers: log, logger, logging
New triggers (comma-separated): log, logger, logging, trace
β Updated triggers for 'custom-logger'
/skill search
Search skills by content, triggers, name, or description.
Behavior:
- Scan all skills in both scopes
- Match query (case-insensitive) against:
- Skill name
- Description
- Triggers
- Full markdown content
- Display matches with context:
Found 3 skills matching "typescript error":
1. typescript-fixer (user)
Description: Fix common TypeScript errors
Match: "typescript error handling patterns"
2. error-handler (user)
Description: Generic error handling utilities
Match: "Supports TypeScript and JavaScript errors"
3. lint-fix (project)
Description: Auto-fix linting errors
Match: "TypeScript ESLint error resolution"
Ranking: Prioritize matches in name/triggers over content matches
Example:
User: /skill search api endpoint
Assistant: Found 2 skills matching "api endpoint":
1. api-builder (user)
Description: Generate REST API endpoints
Triggers: api, endpoint, rest
2. backend-scaffold (project)
Description: Scaffold backend services
Match: "Creates API endpoint boilerplate"
/skill info
Show detailed information about a skill.
Behavior:
- Find skill by name (search both scopes)
- Parse YAML frontmatter and content
- Display complete details:
Skill: custom-logger
Scope: user (~/.claude/skills/omc-learned/custom-logger/)
Description: Enhanced logging with structured output
Triggers: log, logger, logging
Argument Hint: <level> [message]
Quality: 95% (if available)
Usage Count: 42 times (if available)
File Path: /home/user/.claude/skills/omc-learned/custom-logger/SKILL.md
--- FULL CONTENT ---
[entire markdown content]
If not found: Report error with suggestion to use /skill search
Example:
User: /skill info custom-logger
Assistant: Skill: custom-logger
Scope: user
Description: Enhanced logging with structured output
Triggers: log, logger, logging
File: ~/.claude/skills/omc-learned/custom-logger/SKILL.md
--- CONTENT ---
# Custom Logger Skill
## Purpose
Enhanced logging with structured JSON output...
[rest of content]
/skill sync
Sync skills between user and project scopes.
Behavior:
- Scan both scopes:
- User skills:
~/.claude/skills/omc-learned/
- Project skills:
.omc/skills/
- Compare and categorize:
- User-only skills (not in project)
- Project-only skills (not in user)
- Common skills (in both)
- Display sync opportunities:
SYNC REPORT:
User-only skills (5):
- error-handler
- api-builder
- custom-logger
- test-generator
- deploy-helper
Project-only skills (2):
- test-runner
- backend-scaffold
Common skills (3):
- frontend-ui-ux
- git-master
- planner
Options:
[1] Copy user skill to project
[2] Copy project skill to user
[3] View differences
[4] Cancel
- Handle user choice:
- Option 1: Select skill(s) to copy to project
- Option 2: Select skill(s) to copy to user
- Option 3: Show side-by-side diff for common skills
- Option 4: Exit
Safety: Never overwrite without confirmation
Example:
User: /skill sync
Assistant: Found 5 user-only skills and 2 project-only skills.
Copy 'error-handler' from user to project? (yes/no/skip)
User: yes
Assistant: β Copied 'error-handler' to .omc/skills/
Copy 'api-builder' from user to project? (yes/no/skip)
User: skip
...
/skill setup
Interactive wizard for setting up and managing local skills (formerly local-skills-setup).
Behavior:
Step 1: Directory Check and Setup
First, check if skill directories exist and create them if needed:
USER_SKILLS_DIR="$HOME/.claude/skills/omc-learned"
if [ -d "$USER_SKILLS_DIR" ]; then
echo "User skills directory exists: $USER_SKILLS_DIR"
else
mkdir -p "$USER_SKILLS_DIR"
echo "Created user skills directory: $USER_SKILLS_DIR"
fi
PROJECT_SKILLS_DIR=".omc/skills"
if [ -d "$PROJECT_SKILLS_DIR" ]; then
echo "Project skills directory exists: $PROJECT_SKILLS_DIR"
else
mkdir -p "$PROJECT_SKILLS_DIR"
echo "Created project skills directory: $PROJECT_SKILLS_DIR"
fi
Step 2: Skill Scan and Inventory
Scan both directories and show a comprehensive inventory:
echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
if [ -d "$HOME/.claude/skills/omc-learned" ]; then
USER_COUNT=$(find "$HOME/.claude/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $USER_COUNT"
if [ $USER_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find "$HOME/.claude/skills/omc-learned" -name "*.md" -type f -exec sh -c '