CLI for creating and validating Claude Agent Skills.
flowchart LR
A[skill new] --> B[SKILL.md]
B --> C[skill validate]
C --> D{Valid?}
D -->|Yes| E[Ship it]
D -->|No| F[Fix errors]
F --> C
go install github.com/intent-solutions-io/create-agent-skill-md@latest# Create a new skill (interactive wizard)
skill new my-skill
# Or non-interactive
skill new my-skill -d "Does X. Use when Y." -y
# Validate it
skill validate ./my-skill---
name: my-skill
description: Does something useful. Use when you need X.
---
# My Skill
## Instructions
1. Do this
2. Then that
## Examples
Input: "make it work"
Output: it worksThat's it. Name + description in frontmatter, instructions in markdown body.
| Command | What it does |
|---|---|
skill new <name> |
Create a skill with interactive wizard |
skill validate <path> |
Check if a skill is valid |
skill completion <shell> |
Generate shell completions |
flowchart TD
subgraph Errors[Errors - Must Fix]
E1[Missing SKILL.md]
E2[Missing name/description]
E3[Bad name format]
end
subgraph Warnings[Warnings - Should Fix]
W1[Missing 'Use when...' pattern]
W2[Missing sections]
W3[Name doesn't match directory]
end
Errors (skill won't work):
- Must have
SKILL.mdwith YAML frontmatter name: lowercase, hyphens, numbers only (max 64 chars)description: required (max 200 chars, no XML tags)
Warnings (skill works, but could be better):
- Description should say "Use when..."
- Should have
## Instructionsand## Examplessections - Directory name should match skill name
# JSON output for automation
skill validate --json ./my-skill
# Strict mode (warnings = errors)
skill validate --strict ./my-skillExit codes: 0 = valid, 1 = errors, 2 = system error
# Bash
source <(skill completion bash)
# Zsh
skill completion zsh > "${fpath[1]}/_skill"
# Fish
skill completion fish > ~/.config/fish/completions/skill.fishApache 2.0