yeachan-heo/oh-my-claudecode/skill

Claude Code and agent skill by yeachan-heo/oh-my-claudecode

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Manage local skills - list, add, remove, search, edit, setup wizard

Install

npx vskill@latest install yeachan-heo/oh-my-claudecode/skill

SKILL.md

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:

  1. Scan bundled built-in skills in the plugin skills/ directory (read-only)
  2. Scan user skills at ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/
  3. Scan project skills at .omc/skills/
  4. Parse YAML frontmatter for metadata
  5. 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:

  1. Ask for skill name (if not provided in command)
  • Validate: lowercase, hyphens only, no spaces
  1. Ask for description
  • Clear, concise one-liner
  1. Ask for triggers (comma-separated keywords)
  • Example: "error, fix, debug"
  1. Ask for argument hint (optional)
  • Example: "<file> [options]"
  1. Ask for scope:
  • user → ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/SKILL.md
  • project → .omc/skills/<name>/SKILL.md
  1. Create skill file with template:
yaml
---
name: <name>
description: <description>
triggers:
- <trigger1>
- <trigger2>
argument-hint: "<args>"
---
# <Name> Skill
## Purpose
[Describe what this skill does]
## When to Activate
[Describe triggers and conditions]
## Workflow
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Examples

/oh-my-claudecode:<name> example-arg

## Notes
[Additional context, edge cases, gotchas]
  1. Report success with file path
  2. 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 <name>

Remove a skill by name.

Behavior:

  1. Search for skill in both scopes:
  • ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/SKILL.md
  • .omc/skills/<name>/SKILL.md
  1. If found:
  • Display skill info (name, description, scope)
  • Ask for confirmation: "Delete '<name>' skill from <scope>? (yes/no)"
  1. If confirmed:
  • Delete entire skill directory (e.g., ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<name>/)
  • Report: "✓ Removed skill '<name>' from <scope>"
  1. If not found:
  • Report: "✗ Skill '<name>' 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 <name>

Edit an existing skill interactively.

Behavior:

  1. Find skill by name (search both scopes)
  2. Read current content via Read tool
  3. Display current values:

``` Current skill 'custom-logger':

  • Description: Enhanced logging with structured output
  • Triggers: log, logger, logging
  • Argument hint: <level> [message]
  • Scope: user

```

  1. 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
  1. For selected field:
  • Show current value
  • Ask for new value
  • Update YAML frontmatter or content
  • Write back to file
  1. 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 <query>

Search skills by content, triggers, name, or description.

Behavior:

  1. Scan all skills in both scopes
  2. Match query (case-insensitive) against:
  • Skill name
  • Description
  • Triggers
  • Full markdown content
  1. 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 <name>

Show detailed information about a skill.

Behavior:

  1. Find skill by name (search both scopes)
  2. Parse YAML frontmatter and content
  3. 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:

  1. Scan both scopes:
  • User skills: ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/
  • Project skills: .omc/skills/
  1. Compare and categorize:
  • User-only skills (not in project)
  • Project-only skills (not in user)
  • Common skills (in both)
  1. 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
  1. 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:

bash
# Check and create user-level skills directory
USER_SKILLS_DIR="${CLAUDE_CONFIG_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
# Check and create project-level skills directory
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:

bash
# Scan user-level skills
echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
if [ -d "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned" ]; then
USER_COUNT=$(find "${CLAUDE_CONFIG_DIR:-$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 "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/omc-learned" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
echo ""
echo "=== PROJECT-LEVEL SKILLS (.omc/skills/) ==="
if [ -d ".omc/skills" ]; then
PROJECT_COUNT=$(find ".omc/skills" -name "*.md" 2>/dev/null | wc -l)
echo "Total skills: $PROJECT_COUNT"
if [ $PROJECT_COUNT -gt 0 ]; then
echo ""
echo "Skills found:"
find ".omc/skills" -name "*.md" -type f -exec sh -c '
FILE="$1"
NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
MODIFIED=$(stat -c "%y" "$FILE" 2>/dev/null || stat -f "%Sm" "$FILE" 2>/dev/null)
echo " - $NAME"
[ -n "$DESC" ] && echo " Description: $DESC"
echo " Modified: $MODIFIED"
echo ""
' sh {} \;
fi
else
echo "Directory not found"
fi
# Summary
TOTAL=$((USER_COUNT + PROJECT_COUNT))
echo "=== SUMMARY ==="
echo "Total skills across all directories: $TOTAL"
Step 3: Quick Actions Menu

After scanning, use the AskUserQuestion tool to offer these options:

Question: "What would you like to do with your local skills?"

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
33,850
Repository forks
3,103
Repository npm downloads, 7 days
2,914
7-day trend score
72

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 23 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/yeachan-heo/oh-my-claudecode/skill/badge)](https://verified-skill.com/skills/yeachan-heo/oh-my-claudecode/skill)

Something wrong with this skill or its page? Tell us.