Manage Claude Code Skills (create, update, delete, list)
Create, update, delete, or list Claude Code Skills. Use to manage custom skills with smart create-or-update detection.
/plugin marketplace add eLafo/ouroboros/plugin install ouroboros@hermes<operation|name> [args...]Manage Claude Code Skills with CRUD operations.
# Show usage
/skills
/skills help
# Smart default: create if not exists, update if exists
/skills my-skill-name
# Explicit operations
/skills create my-skill-name
/skills update my-skill-name
/skills delete my-skill-name
/skills list
Determine operation from $1:
OPERATION="$1"
ARTIFACT_NAME="$2"
# Parse operation
case "$OPERATION" in
""|help)
echo "Usage: /skills <operation|name> [args...]"
echo ""
echo "Operations:"
echo " create <name> - Create new Skill"
echo " update <name> - Update existing Skill"
echo " delete <name> - Delete Skill"
echo " list - List all Skills"
echo ""
echo "Smart default:"
echo " /skills <name> - Create if not exists, update if exists"
exit 0
;;
create)
# Explicit create
OPERATION="create"
ARTIFACT_NAME="$2"
;;
update)
# Explicit update
OPERATION="update"
ARTIFACT_NAME="$2"
;;
delete)
# Explicit delete
OPERATION="delete"
ARTIFACT_NAME="$2"
;;
list)
# List all skills
OPERATION="list"
;;
*)
# Smart default: treat $1 as artifact name
ARTIFACT_NAME="$1"
# Check if skill exists
if [ -f ".claude/skills/$ARTIFACT_NAME/SKILL.md" ] || [ -f "$HOME/.claude/skills/$ARTIFACT_NAME/SKILL.md" ]; then
OPERATION="update"
else
OPERATION="create"
fi
;;
esac
Based on determined operation:
Invoke the skill-builder skill to create a new Skill:
if [ "$OPERATION" = "create" ]; then
echo "Creating Skill: $ARTIFACT_NAME"
# Delegate to skill-builder skill
# The skill-builder will guide through the creation workflow
fi
Delegation: Use the skill-builder skill to guide the user through creating a new Skill with:
Pass the artifact name: $ARTIFACT_NAME
Invoke the skill-builder skill to update an existing Skill:
if [ "$OPERATION" = "update" ]; then
echo "Updating Skill: $ARTIFACT_NAME"
# Find the skill location
if [ -f ".claude/skills/$ARTIFACT_NAME/SKILL.md" ]; then
SKILL_PATH=".claude/skills/$ARTIFACT_NAME/SKILL.md"
elif [ -f "$HOME/.claude/skills/$ARTIFACT_NAME/SKILL.md" ]; then
SKILL_PATH="$HOME/.claude/skills/$ARTIFACT_NAME/SKILL.md"
else
echo "Error: Skill '$ARTIFACT_NAME' not found"
exit 1
fi
echo "Found at: $SKILL_PATH"
# Delegate to skill-builder skill for update
fi
Delegation: Use the skill-builder skill with update context:
Pass the artifact name and path: $ARTIFACT_NAME at $SKILL_PATH
Delete a Skill with confirmation:
if [ "$OPERATION" = "delete" ]; then
echo "Deleting Skill: $ARTIFACT_NAME"
# Find the skill location
if [ -d ".claude/skills/$ARTIFACT_NAME" ]; then
SKILL_DIR=".claude/skills/$ARTIFACT_NAME"
elif [ -d "$HOME/.claude/skills/$ARTIFACT_NAME" ]; then
SKILL_DIR="$HOME/.claude/skills/$ARTIFACT_NAME"
else
echo "Error: Skill '$ARTIFACT_NAME' not found"
exit 1
fi
echo "Found at: $SKILL_DIR"
echo ""
echo "⚠️ WARNING: This will permanently delete the Skill and all its files."
echo ""
# Ask user to confirm
read -p "Type 'yes' to confirm deletion: " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
rm -rf "$SKILL_DIR"
echo "✅ Deleted: $SKILL_DIR"
else
echo "❌ Deletion cancelled"
fi
fi
List all Skills:
if [ "$OPERATION" = "list" ]; then
echo "Claude Code Skills"
echo "=================="
echo ""
# Project skills
if [ -d ".claude/skills" ]; then
echo "Project Skills (.claude/skills/):"
find .claude/skills -name "SKILL.md" -exec sh -c '
SKILL_DIR=$(dirname {})
SKILL_NAME=$(basename "$SKILL_DIR")
DESCRIPTION=$(grep "^description:" {} | head -1 | cut -d: -f2- | xargs)
echo " ✓ $SKILL_NAME"
echo " $DESCRIPTION"
' \;
echo ""
fi
# User skills
if [ -d "$HOME/.claude/skills" ]; then
echo "User Skills (~/.claude/skills/):"
find "$HOME/.claude/skills" -name "SKILL.md" -exec sh -c '
SKILL_DIR=$(dirname {})
SKILL_NAME=$(basename "$SKILL_DIR")
DESCRIPTION=$(grep "^description:" {} | head -1 | cut -d: -f2- | xargs)
echo " ✓ $SKILL_NAME"
echo " $DESCRIPTION"
' \;
fi
fi
For CREATE operation:
For UPDATE operation:
For DELETE operation:
For LIST operation: