Awesome-omni-skill make-skill
Learn how to create an Agent Skill. Use when you have a capability to share or want to package something reusable.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/make-skill" ~/.claude/skills/diegosouzapw-awesome-omni-skill-make-skill && rm -rf "$T"
skills/cli-automation/make-skill/SKILL.md- references .env files
Make Skill
How to create an Agent Skill that other agents (and humans) can discover and use.
When to Use
- You've built something useful and want to share it
- You want to package a repeatable workflow
- You're teaching an agent how to do something specific
Quick Start
Using Scripts (Recommended)
# 1. First time only: create your skills repo python scripts/init.py my-skills --public # 2. Create a new skill inside your repo python scripts/create.py my-skill-name --output ./my-skills/ --author "You" # 3. Edit SKILL.md and add your code to scripts/ # 4. Publish (commits and pushes to your repo) python scripts/publish.py ./my-skills/my-skill-name
Manual Setup
- Copy
to your new skill folderreferences/template/ - Edit the SKILL.md frontmatter (name, description)
- Replace the example script with your code
- Push to GitHub with topic
agentskills
Done. Your skill is now discoverable.
The Format
A skill is a folder:
my-skill/ SKILL.md # Required: frontmatter + instructions scripts/ # Optional: executable code references/ # Optional: additional documentation assets/ # Optional: templates, data files
SKILL.md Structure
--- name: my-skill description: What it does. When to use it. Be specific. license: MIT metadata: author: you version: "1.0" parent: github.com/original/skill # if derived from another --- # My Skill Instructions for the agent... ## Usage How to run it... ## Examples Show inputs and outputs...
Required Fields
| Field | Rules |
|---|---|
| Lowercase, hyphens only, matches folder name, max 64 chars |
| What it does AND when to use it, max 1024 chars |
Optional Fields
| Field | Purpose |
|---|---|
| How others can use it |
| Arbitrary key-value pairs (author, version, parent) |
| Environment requirements |
Writing Good Instructions
The body of SKILL.md is what agents read. Make it clear:
Do:
- Start with when to use this skill
- Give concrete usage examples
- Show expected inputs and outputs
- List requirements and dependencies
- Handle edge cases
Don't:
- Assume context the agent won't have
- Write walls of text (keep it scannable)
- Bury the important stuff
Making It Discoverable
Option A: GitHub Topic
Add topic
agentskills to your repository. Done.
Option B: Monorepo
Keep multiple skills in one repo:
my-tools/ skill-one/ SKILL.md skill-two/ SKILL.md
Tag the repo with
agentskills. The find-skill searches inside.
Option C: Local Only
Keep it in
~/skills/ or any folder. Configure find-skill to search there.
Option D: Anywhere With a URL
Gist, pastebin, raw file host. As long as it's fetchable.
Tracking Lineage
If your skill improves or derives from another:
metadata: parent: github.com/user/original-skill parent-hash: abc123
Optional. Honor system. Helps the ecosystem.
GitHub Token Setup
The scripts require a GitHub Personal Access Token to create repos, push code, and add topics.
Creating Your Token
- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click "Generate new token (classic)"
- Give it a name (e.g., "agent-skills")
- Select the
scope (full control of private repositories)repo - Generate and copy the token
Storing Your Token
Create a
.env file in the project root:
GITHUB_TOKEN=ghp_xxxxxxxxxxxx
Or set it as an environment variable:
GITHUB_TOKEN or GH_TOKEN
Important: The
repo scope is required to:
- Create repositories (init.py)
- Push code (publish.py)
- Add the
topic (makes your skills discoverable)agentskills
Scripts
init.py
Initialize a skills monorepo (first time only):
python scripts/init.py my-skills # Private repo python scripts/init.py my-skills --public # Public repo
Creates a GitHub repo with
agentskills topic. All your skills go here.
create.py
Create a skill from the template:
python scripts/create.py my-skill --output ./my-skills/ python scripts/create.py my-skill --author "You" --description "Does X" -o ./my-skills/
publish.py
Commit and push a skill to your repo:
python scripts/publish.py ./my-skills/my-skill python scripts/publish.py ./my-skills/my-skill --message "Update skill"
Commits the skill folder, adds the
agentskills topic (if missing), and pushes to GitHub.
Reference
See
references/format.md for the full agentskills.io specification.
See
references/template/ for a working example to copy.