| Crates.io | skills |
| lib.rs | skills |
| version | 0.0.2 |
| created_at | 2025-12-18 21:00:02.639074+00 |
| updated_at | 2025-12-21 22:42:44.483212+00 |
| description | Manage agent skills |
| homepage | |
| repository | https://github.com/cortesi/skills |
| max_upload_size | |
| id | 1993495 |
| size | 285,575 |
A CLI for managing AI coding assistant skills from a single source.
Both Claude Code and Codex support skills—reusable instructions that extend what the assistant can do. This tool keeps them in sync across tools, so you can maintain skills in one place (your dotfiles, a team repo) and push them everywhere.
~/.claude/skills/ and ~/.codex/skills/cargo install skills
skills init # Set up ~/.skills.toml
skills list # See what you have
skills push # Push skills to your tools
Point the CLI at your source directories in ~/.skills.toml:
sources = [
"~/dotfiles/skills",
"~/work/team-skills",
]
Each skill is a folder with a SKILL.md file:
code-review/
SKILL.md
---
name: code-review
description: Use when reviewing pull requests or code changes
---
# Code Review
When reviewing code, focus on:
- Correctness and edge cases
- Readability and maintainability
- Performance implications
- Security considerations
Provide specific, actionable feedback with line references.
| Command | What it does |
|---|---|
skills list |
Show all skills and their sync status (aliases: ls, status) |
skills push [SKILLS...] |
Push skills from source to tools |
skills pull [SKILL] |
Pull edits from tools back to source |
skills sync [SKILLS...] |
Two-way sync based on timestamps |
skills diff [SKILL] |
Show differences between source and installed |
| Command | What it does |
|---|---|
skills new <path> |
Create a new skill skeleton |
skills edit <skill> |
Open a skill in your editor ($EDITOR) |
skills mv <old> <new> |
Rename a skill across source and tools |
skills validate [SKILL] |
Check skill structure and template syntax |
skills render <skill> --tool <tool> |
Preview rendered output for a tool |
| Command | What it does |
|---|---|
skills pack [SKILLS...] |
Package skills into ZIP files for sharing |
skills import <source> |
Import from ZIP file, URL, or GitHub |
skills unload <skill> |
Remove a skill from tool directories |
skills promote <skill> |
Move a local skill to global directory (alias: uplift) |
| Command | What it does |
|---|---|
skills init |
Set up your configuration |
--tool <tool> — Target specific tool: claude, codex, or all (default)--project — Work with project-local skills (.claude/skills/, .codex/skills/)-n, --dry-run — Preview changes without writing-f, --force — Skip confirmation prompts (shows diff for overwrites)-y, --yes — Skip all prompts (use with --force for fully silent operation)Create or edit a skill in Claude Code (it has a built-in skill editor), then sync:
skills pull # Pull the new skill to your repo
skills push # Push it to Codex
Or use two-way sync:
skills sync # Sync based on timestamps
Handle conflicts:
skills sync --prefer-source # Source wins on conflict
skills sync --prefer-tool # Newest tool version wins
Skills can include tool-specific sections using MiniJinja:
{% if tool == "claude" %}
Use the Task tool for background operations.
{% elif tool == "codex" %}
Use /background for async tasks.
{% endif %}
Validate templates before pushing:
skills validate my-skill
skills render my-skill --tool claude
| Tool | Skills Directory | Documentation |
|---|---|---|
| Claude Code | ~/.claude/skills/ |
docs |
| Codex | ~/.codex/skills/ |
docs |
Want to contribute? Have ideas or feature requests? Come tell me about it on Discord.
MIT