skillfish
v1.0.23
Published
All in one Skill manager for AI coding agents. Install, update, and sync Skills across Claude Code, Cursor, Copilot + more.
Maintainers
Readme
Quick Start
# One-off skill installation
npx skillfish add owner/repo
# For skill management (list, update, remove), install globally
npm i -g skillfishOne command installs to all detected agents on your system.
What Are Agent Skills?
Agent Skills are portable packages of instructions, prompts, scripts, and resources that AI coding agents can discover and use. They give agents like Claude Code, Cursor, and Copilot domain expertise, reusable workflows, and team-specific context - loaded on demand to extend capabilities.
Each skill contains a SKILL.md file with structured prompts and instructions the agent can follow.
Learn more at agentskills.io.
Find Skills
- skill.fish - Browse and discover community skills
- MCP Market - Skills directory
skillfish search <query>- Search from the command line
Commands
| Command | Description |
|---------|-------------|
| skillfish add <owner/repo> | Install skills |
| skillfish init | Create a new skill |
| skillfish list | View installed skills |
| skillfish remove [name] | Remove skills |
| skillfish search <query> | Search for skills on skill.fish |
| skillfish update | Update installed skills |
| skillfish submit <repo> | Submit skills to skill.fish |
All commands support --json for automation.
Examples
skillfish add owner/repo # Install from a repository
skillfish add owner/repo --all # Install all skills from repo
skillfish init # Create a new skill (interactive)
skillfish init --name my-skill # Create with a specified name
skillfish list # See what's installed
skillfish search github # Search for skills
skillfish update # Update all skills
skillfish remove old-skill # Remove a skill
skillfish submit owner/repo # Submit your skills to skill.fishSupported Agents
Works with 17+ agents including:
Claude Code · Cursor · Windsurf · Codex · GitHub Copilot · Gemini CLI · OpenCode · Goose · Amp · Roo Code · Kiro CLI · Kilo Code · Trae · Cline · Antigravity · Droid · Clawdbot
| Agent | Skills Directory |
|-------|------------------|
| Claude Code | ~/.claude/skills/ |
| Cursor | ~/.cursor/skills/ |
| Windsurf | ~/.codeium/windsurf/skills/ |
| Codex | ~/.codex/skills/ |
| GitHub Copilot | ~/.github/skills/ |
| Gemini CLI | ~/.gemini/skills/ |
| OpenCode | ~/.opencode/skills/ |
| Goose | ~/.goose/skills/ |
| Amp | ~/.agents/skills/ |
| Roo Code | ~/.roo/skills/ |
| Kiro CLI | ~/.kiro/skills/ |
| Kilo Code | ~/.kilocode/skills/ |
| Trae | ~/.trae/skills/ |
| Cline | ~/.cline/skills/ |
| Antigravity | ~/.gemini/antigravity/skills/ |
| Droid | ~/.factory/skills/ |
| Clawdbot | ~/.clawdbot/skills/ |
Command Reference
add
Install skills from a repository.
skillfish add owner/repo # Auto-discover SKILL.md
skillfish add owner/repo my-skill # Install by skill name
skillfish add owner/repo/path/to/skill # Full path syntax
skillfish add owner/repo --path skills/foo # Explicit path
skillfish add owner/repo --all # Install all skills
skillfish add owner/repo --force # Overwrite existing
skillfish add owner/repo --yes # Skip confirmation
skillfish add owner/repo --project # Project only (./)
skillfish add owner/repo --global # Global only (~/)init
Create a new skill template with SKILL.md and optional directories.
skillfish init # Interactive skill creation
skillfish init --name my-skill # Specify skill name
skillfish init --name my-skill --description "Does a thing" # Non-interactive
skillfish init --project # Create in current project (./)
skillfish init --global # Create in home directory (~/)
skillfish init --name my-skill --yes # Skip all prompts
skillfish init --author "your-name" # Set author metadata
skillfish init --license MIT # Set licenseInteractive mode prompts for name, description, optional metadata (author, license), optional directories (scripts/, references/, assets/), install location, and target agents.
list
View installed skills.
skillfish list # List all installed skills
skillfish list --global # Global skills only (~/)
skillfish list --project # Project skills only (./)
skillfish list --agent "Claude Code" # Specific agentremove
Remove installed skills.
skillfish remove # Interactive picker
skillfish remove my-skill # By name
skillfish remove --all # Remove all
skillfish remove my-skill --project # Project only
skillfish remove my-skill --global # Global only
skillfish remove my-skill --agent "Cursor" # Specific agent
skillfish remove my-skill --yes # Skip confirmationsearch
Search for skills on skill.fish.
skillfish search github # Search for skills
skillfish search "code review" # Search with multiple words
skillfish search git --limit 10 # Limit results (default: 5, max: 50)update
Update installed skills to latest version.
skillfish update # Check for updates interactively
skillfish update --yes # Update all without prompting
skillfish update --json # Check for updates (JSON output)submit
Submit your skills to skill.fish for others to discover. Just paste a GitHub URL.
skillfish submit https://github.com/owner/repo # Paste any GitHub URL
skillfish submit owner/repo # Or use owner/repo format
skillfish submit owner/repo --yes # Skip confirmationYour submission will be reviewed and added to skill.fish and MCP Market.
Non-Interactive Mode
All commands work without prompts for use in scripts, CI pipelines, and automation. Non-interactive mode activates when:
- The
--jsonflag is passed, or - stdin is not a TTY (piped input, CI runners, cron jobs)
In non-interactive mode, commands use default values where possible and error with guidance when required flags are missing.
Required flags
| Command | Required | Defaults |
|---------|----------|----------|
| add | <owner/repo> + skill name, --path, or --all if repo has multiple skills | Location: global (~/), Agents: all detected |
| init | --name, --description | Location: project (./), Agents: all detected |
| list | (none) | Both locations, all agents |
| remove | Skill name or --all | Both locations, all agents |
| update | --yes to apply updates | All tracked skills |
All commands accept --project or --global to override the default location.
Confirmation behavior
Confirmation prompts are skipped in non-interactive mode. Commands that modify skills (add, init, remove) proceed automatically. The update command is the exception: --json without --yes runs in check-only mode, reporting outdated skills without applying changes.
Use --yes to explicitly skip confirmations in interactive mode.
JSON output
Pass --json to get structured output on stdout. All commands return a common shape:
{
"success": true,
"exit_code": 0,
"errors": []
}Each command adds its own fields: installed and skipped (add), created and skipped (init), removed (remove), outdated and updated (update), installed and agents_detected (list).
Exit codes
Exit codes are consistent across all commands:
| Code | Name | Meaning | |------|------|---------| | 0 | Success | Command completed successfully | | 1 | General Error | Unspecified error | | 2 | Invalid Args | Invalid arguments or options provided | | 3 | Network Error | Network failure (timeout, rate limit) | | 4 | Not Found | Requested resource not found (skill, agent, repo) |
CI example
# Install skills in CI (non-interactive, JSON output)
skillfish add owner/repo --yes --json
# Create a skill template in CI
skillfish init --name my-skill --description "My skill" --project --json
# Check for outdated skills without applying
skillfish update --json
# Apply updates
skillfish update --yes --jsonSecurity
Skills are markdown files that provide instructions to AI agents. Always review skills before installing. skillfish does not vet third-party skills.
To report vulnerabilities, email [email protected]. See SECURITY.md.
Contributing
Contributions welcome! See CONTRIBUTING.md and our Code of Conduct.
Changelog
See CHANGELOG.md for release history.
Anonymous, aggregate install counts only. No PII collected.
To opt out: DO_NOT_TRACK=1 or CI=true.
License
AGPL-3.0 - Graeme Knox
