The standalone Go CLI for the open agent skills ecosystem. Native releases require system Git at runtime and do not require Node.js, npm, or pnpm.
Supports OpenCode, Claude Code, Codex, Cursor, and 70 more.
The native Windows x86-64 build is distributed from its checksummed, immutable GitHub Release archive. Windows x86-64 support remains experimental rather than fully supported. The package places only open-skills.exe on PATH, requires system Git at runtime, and does not require Node.js or npm.
scoop bucket add open-skills https://github.com/EngBlock/open-skills
scoop install open-skills/open-skillsScoop owns executable upgrades; open-skills update updates installed skills instead:
scoop update
scoop update open-skillsThe supported macOS ARM64 native release is installed from its checksummed, immutable GitHub Release archive. It places only open-skills on PATH and requires system Git at runtime.
brew tap EngBlock/open-skills https://github.com/EngBlock/open-skills
brew install EngBlock/open-skills/open-skillsHomebrew owns executable upgrades; open-skills update updates installed skills instead:
brew update
brew upgrade EngBlock/open-skills/open-skillsNative 0.2.2 is the production release.
GitHub Releases are the canonical source for supported and experimental archives. Download the archive for your platform together with checksums.txt, its adjacent Sigstore bundle, and provenance.sigstore.json. Verify the selected checksum, keyless signature, repository, tag, and producing workflow before extracting the executable. The native migration guide gives exact download, verification, and installation commands.
Direct archives contain only open-skills (open-skills.exe on Windows), require system Git, and do not require Node.js or npm.
The JavaScript npm package is retired and frozen at 0.1.2. It will receive no new features and will not download or bootstrap the native executable. Remove it after installing native open-skills through Homebrew, Scoop, or a verified direct archive:
npm uninstall --global @engblock/open-skillsExisting skill and lock state remains in place. See the native migration guide for state compatibility, forward-only metadata, legacy environment variables, and intentional behavior changes.
open-skills add EngBlock/open-skills@find-skillsStart a supported coding agent interactively with one skill:
open-skills use owner/repo@web-design-guidelines --agent claude-code
open-skills use owner/repo --skill web-design-guidelines --agent codex
open-skills use owner/repo@web-design-guidelines --agent piopen-skills use resolves sources the same way as open-skills add and writes the selected skill files to a temporary directory. Pass --agent claude-code, --agent codex, or --agent pi to start that agent interactively with the generated prompt. Without --agent, the generated prompt is printed to stdout.
# GitHub shorthand (owner/repo)
open-skills add owner/repo
# Full GitHub URL
open-skills add https://github.com/owner/repo
# Direct path to a skill in a repo
open-skills add https://github.com/owner/repo/tree/main/skills/web-design-guidelines
# GitLab URL
open-skills add https://gitlab.com/org/repo
# Any git URL
open-skills add git@github.com:owner/repo.git
# Local path
open-skills add ./my-local-skills| Option | Description |
|---|---|
-g, --global |
Install to user directory instead of project |
-a, --agent <agents...> |
Target specific agents (e.g., claude-code, codex). See Supported Agents |
-s, --skill <skills...> |
Install specific skills by name (use '*' for all skills) |
-l, --list |
List available skills without installing |
--copy |
Copy files instead of symlinking to agent directories |
-y, --yes |
Skip all confirmation prompts |
--all |
Install all skills to all agents without prompts |
# List skills in a repository
open-skills add owner/repo --list
# Install specific skills
open-skills add owner/repo --skill frontend-design --skill skill-creator
# Install a skill with spaces in the name (must be quoted)
open-skills add owner/repo --skill "Convex Best Practices"
# Install to specific agents
open-skills add owner/repo -a claude-code -a opencode
# Non-interactive installation (CI/CD friendly)
open-skills add owner/repo --skill frontend-design -g -a claude-code -y
# Install all skills from a repo to all agents
open-skills add owner/repo --all
# Install all skills to specific agents
open-skills add owner/repo --skill '*' -a claude-code
# Install specific skills to all agents
open-skills add owner/repo --agent '*' --skill frontend-design| Scope | Flag | Location | Use Case |
|---|---|---|---|
| Project | (default) | ./<agent>/skills/ |
Committed with your project, shared with team |
| Global | -g |
~/<agent>/skills/ |
Available across all projects |
When installing interactively, you can choose:
| Method | Description |
|---|---|
| Symlink (Recommended) | Creates symlinks from each agent to a canonical copy. Single source of truth, easy updates. |
| Copy | Creates independent copies for each agent. Use when symlinks aren't supported. |
| Command | Description |
|---|---|
open-skills use <source> |
Use one skill without installing |
open-skills list |
List installed skills (alias: ls) |
open-skills find [query] |
Show decentralized-discovery migration guidance |
open-skills remove [skills] |
Remove installed skills from agents |
open-skills update [skills] |
Update installed skills to latest versions |
open-skills init [name] |
Create a new SKILL.md template |
List all installed skills. Similar to npm ls.
# List all installed skills (project and global)
open-skills list
# List only global skills
open-skills ls -g
# Filter by specific agents
open-skills ls -a claude-code -a cursorHosted skill search has been removed. The legacy find, search, f, and s commands print offline migration guidance and exit with status 1, including when given an old query or --owner option.
Discover skills by searching GitHub and the web for relevant SKILL.md files and inspecting their contents. Install a discovered skill directly from its source:
open-skills add <owner>/<repo>@<skill># Update all skills (interactive scope prompt)
open-skills update
# Update a single skill by name
open-skills update my-skill
# Update multiple specific skills
open-skills update frontend-design web-design-guidelines
# Update only global or project skills
open-skills update -g
open-skills update -p
# Non-interactive (auto-detects scope: project if in a project, else global)
open-skills update -y| Option | Description |
|---|---|
-g, --global |
Only update global skills |
-p, --project |
Only update project skills |
-y, --yes |
Skip scope prompt (auto-detect: project if in a project dir, else global) |
[skills...] |
Update specific skills by name instead of all |
# Create SKILL.md in current directory
open-skills init
# Create a new skill in a subdirectory
open-skills init my-skillRemove installed skills from agents.
# Remove interactively (select from installed skills)
open-skills remove
# Remove specific skill by name
open-skills remove web-design-guidelines
# Remove multiple skills
open-skills remove frontend-design web-design-guidelines
# Remove from global scope
open-skills remove --global web-design-guidelines
# Remove from specific agents only
open-skills remove --agent claude-code cursor my-skill
# Remove all installed skills without confirmation
open-skills remove --all
# Remove all skills from a specific agent
open-skills remove --skill '*' -a cursor
# Remove a specific skill from all agents
open-skills remove my-skill --agent '*'
# Use 'rm' alias
open-skills rm my-skill| Option | Description |
|---|---|
-g, --global |
Remove from global scope (~/) instead of project |
-a, --agent |
Remove from specific agents (use '*' for all) |
-s, --skill |
Specify skills to remove (use '*' for all) |
-y, --yes |
Skip confirmation prompts |
--all |
Shorthand for --skill '*' --agent '*' -y |
Agent skills are reusable instruction sets that extend your coding agent's capabilities. They're defined in SKILL.md
files with YAML frontmatter containing a name and description.
Skills let agents perform specialized tasks like:
- Generating release notes from git history
- Creating PRs following your team's conventions
- Integrating with external tools (Linear, Notion, etc.)
Discover skills by searching GitHub and the web for relevant SKILL.md files and inspecting their contents before installation.
Skills can be installed to any of these agents:
| Agent | --agent |
Project Path | Global Path |
|---|---|---|---|
| AiderDesk | aider-desk |
.aider-desk/skills/ |
~/.aider-desk/skills/ |
| Amp, Replit, Universal | amp, replit, universal |
.agents/skills/ |
~/.config/agents/skills/ |
| Antigravity | antigravity |
.agents/skills/ |
~/.gemini/antigravity/skills/ |
| Antigravity CLI | antigravity-cli |
.agents/skills/ |
~/.gemini/antigravity-cli/skills/ |
| AstrBot | astrbot |
data/skills/ |
~/.astrbot/data/skills/ |
| Autohand Code CLI | autohand-code |
.autohand/skills/ |
~/.autohand/skills/ |
| Augment | augment |
.augment/skills/ |
~/.augment/skills/ |
| IBM Bob | bob |
.bob/skills/ |
~/.bob/skills/ |
| Claude Code | claude-code |
.claude/skills/ |
~/.claude/skills/ |
| OpenClaw | openclaw |
skills/ |
~/.openclaw/skills/ |
| Cline, Dexto, Kimi Code CLI, Loaf, Warp, Zed | cline, dexto, kimi-code-cli, loaf, warp, zed |
.agents/skills/ |
~/.agents/skills/ |
| CodeArts Agent | codearts-agent |
.codeartsdoer/skills/ |
~/.codeartsdoer/skills/ |
| CodeBuddy | codebuddy |
.codebuddy/skills/ |
~/.codebuddy/skills/ |
| Codemaker | codemaker |
.codemaker/skills/ |
~/.codemaker/skills/ |
| Code Studio | codestudio |
.codestudio/skills/ |
~/.codestudio/skills/ |
| Codex | codex |
.agents/skills/ |
~/.codex/skills/ |
| Command Code | command-code |
.commandcode/skills/ |
~/.commandcode/skills/ |
| Continue | continue |
.continue/skills/ |
~/.continue/skills/ |
| Cortex Code | cortex |
.cortex/skills/ |
~/.snowflake/cortex/skills/ |
| Crush | crush |
.crush/skills/ |
~/.config/crush/skills/ |
| Cursor | cursor |
.agents/skills/ |
~/.cursor/skills/ |
| Deep Agents | deepagents |
.agents/skills/ |
~/.deepagents/agent/skills/ |
| Devin for Terminal | devin |
.devin/skills/ |
~/.config/devin/skills/ |
| Droid | droid |
.factory/skills/ |
~/.factory/skills/ |
| Eve | eve |
agent/skills/ |
N/A (project-only) |
| Firebender | firebender |
.agents/skills/ |
~/.firebender/skills/ |
| ForgeCode | forgecode |
.forge/skills/ |
~/.forge/skills/ |
| Gemini CLI | gemini-cli |
.agents/skills/ |
~/.gemini/skills/ |
| GitHub Copilot | github-copilot |
.agents/skills/ |
~/.copilot/skills/ |
| Goose | goose |
.goose/skills/ |
~/.config/goose/skills/ |
| Grok Build | grok |
.grok/skills/ |
~/.grok/skills/ |
| Hermes Agent | hermes-agent |
.hermes/skills/ |
~/.hermes/skills/ |
| inference.sh | inference-sh |
.inferencesh/skills/ |
~/.inferencesh/skills/ |
| Jazz | jazz |
.jazz/skills/ |
~/.jazz/skills/ |
| Junie | junie |
.junie/skills/ |
~/.junie/skills/ |
| iFlow CLI | iflow-cli |
.iflow/skills/ |
~/.iflow/skills/ |
| Kilo Code | kilo |
.kilocode/skills/ |
~/.kilocode/skills/ |
| Kimchi | kimchi |
.kimchi/skills/ |
~/.config/kimchi/harness/skills/ |
| Kiro CLI | kiro-cli |
.kiro/skills/ |
~/.kiro/skills/ |
| Kode | kode |
.kode/skills/ |
~/.kode/skills/ |
| Lingma | lingma |
.lingma/skills/ |
~/.lingma/skills/ |
| MCPJam | mcpjam |
.mcpjam/skills/ |
~/.mcpjam/skills/ |
| Mistral Vibe | mistral-vibe |
.vibe/skills/ |
~/.vibe/skills/ |
| Moxby | moxby |
.moxby/skills/ |
~/.moxby/skills/ |
| Mux | mux |
.mux/skills/ |
~/.mux/skills/ |
| OpenCode | opencode |
.agents/skills/ |
~/.config/opencode/skills/ |
| OpenHands | openhands |
.openhands/skills/ |
~/.openhands/skills/ |
| Ona | ona |
.ona/skills/ |
~/.ona/skills/ |
| Pi | pi |
.agents/skills/ |
~/.pi/agent/skills/ |
| Qoder | qoder |
.qoder/skills/ |
~/.qoder/skills/ |
| Qoder CN | qoder-cn |
.qoder/skills/ |
~/.qoder-cn/skills/ |
| Qwen Code | qwen-code |
.qwen/skills/ |
~/.qwen/skills/ |
| Reasonix | reasonix |
.reasonix/skills/ |
~/.reasonix/skills/ |
| Rovo Dev | rovodev |
.rovodev/skills/ |
~/.rovodev/skills/ |
| Roo Code | roo |
.roo/skills/ |
~/.roo/skills/ |
| Tabnine CLI | tabnine-cli |
.tabnine/agent/skills/ |
~/.tabnine/agent/skills/ |
| Terramind | terramind |
.terramind/skills/ |
~/.terramind/skills/ |
| Tinycloud | tinycloud |
.tinycloud/skills/ |
~/.tinycloud/skills/ |
| Trae | trae |
.trae/skills/ |
~/.trae/skills/ |
| Trae CN | trae-cn |
.trae/skills/ |
~/.trae-cn/skills/ |
| Windsurf | windsurf |
.windsurf/skills/ |
~/.codeium/windsurf/skills/ |
| ZCode | zcode |
.zcode/skills/ |
~/.zcode/skills/ |
| Zencoder, Zenflow | zencoder, zenflow |
.zencoder/skills/ |
~/.zencoder/skills/ |
| Neovate | neovate |
.neovate/skills/ |
~/.neovate/skills/ |
| Pochi | pochi |
.pochi/skills/ |
~/.pochi/skills/ |
| PromptScript | promptscript |
.agents/skills/ |
N/A (project-only) |
| AdaL | adal |
.adal/skills/ |
~/.adal/skills/ |
Note
Kiro CLI users: The default agent automatically loads skills from .kiro/skills/ and ~/.kiro/skills/ — no
configuration needed. If you use a custom agent, add skills to its resources in .kiro/agents/<agent>.json:
{
"resources": ["skill://.kiro/skills/**/SKILL.md"]
}The CLI automatically detects which coding agents you have installed. If none are detected, you'll be prompted to select which agents to install to.
Skills are directories containing a SKILL.md file with YAML frontmatter:
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for the agent to follow when this skill is activated.
## When to Use
Describe the scenarios where this skill should be used.
## Steps
1. First, do this
2. Then, do thatname: Unique identifier (lowercase, hyphens allowed)description: Brief explanation of what the skill does
metadata.internal: Set totrueto hide the skill from normal discovery. In the native release, internal skills are visible whenOPEN_SKILLS_INSTALL_INTERNAL_SKILLS=1is set; the npm 0.1.x baseline and native 1.x compatibility also acceptINSTALL_INTERNAL_SKILLS. Useful for work-in-progress skills or skills meant only for internal tooling.
---
name: my-internal-skill
description: An internal skill not shown by default
metadata:
internal: true
---The CLI searches for skills in these locations within a repository. Each
skill container directory is walked one level deep for the common flat
layout (skills/<name>/SKILL.md) and one extra level deep for catalog
layouts (skills/<category>/<name>/SKILL.md). A SKILL.md discovered at
the shallower level shadows anything nested below it. Use --full-depth
to also discover SKILL.md files outside these container directories
(e.g. under examples/ or tests/).
- Root directory (if it contains
SKILL.md) skills/skills/.curated/skills/.experimental/skills/.system/.aider-desk/skills/.agents/skills/data/skills/.autohand/skills/.augment/skills/.bob/skills/.claude/skills/.codeartsdoer/skills/.codebuddy/skills/.codemaker/skills/.codestudio/skills/.commandcode/skills/.continue/skills/.cortex/skills/.crush/skills/.devin/skills/.factory/skills/agent/skills/.forge/skills/.goose/skills/.grok/skills/.hermes/skills/.inferencesh/skills/.jazz/skills/.junie/skills/.iflow/skills/.kilocode/skills/.kimchi/skills/.kiro/skills/.kode/skills/.lingma/skills/.mcpjam/skills/.vibe/skills/.moxby/skills/.mux/skills/.openhands/skills/.ona/skills/.pi/skills/.qoder/skills/.qwen/skills/.reasonix/skills/.rovodev/skills/.roo/skills/.tabnine/agent/skills/.terramind/skills/.tinycloud/skills/.trae/skills/.windsurf/skills/.zcode/skills/.zencoder/skills/.neovate/skills/.pochi/skills/.adal/skills/
If .claude-plugin/marketplace.json or .claude-plugin/plugin.json exists, skills declared in those files are also discovered:
// .claude-plugin/marketplace.json
{
"metadata": { "pluginRoot": "./plugins" },
"plugins": [
{
"name": "my-plugin",
"source": "my-plugin",
"skills": ["./skills/review", "./skills/test"]
}
]
}This enables compatibility with the Claude Code plugin marketplace ecosystem. Skill paths declared in a manifest are searched at their declared depth and are not subject to the depth-2 catalog walk described above.
If no skills are found in standard locations, a recursive search is performed.
Skills are generally compatible across agents since they follow a shared Agent Skills specification. However, some features may be agent-specific:
| Feature | OpenCode | OpenHands | Claude Code | Cline | CodeBuddy | Codex | Command Code | Kiro CLI | Cursor | Antigravity | Roo Code | Github Copilot | Amp | OpenClaw | Neovate | Pi | Qoder | Zencoder |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Basic skills | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
allowed-tools |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
context: fork |
No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Hooks | No | No | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No |
Ensure the repository contains valid SKILL.md files with both name and description in the frontmatter.
- Verify the skill was installed to the correct path
- Check the agent's documentation for skill loading requirements
- Ensure the
SKILL.mdfrontmatter is valid YAML
Ensure you have write access to the target directory.
The native release uses canonical OPEN_SKILLS_ names for Open Skills-owned
configuration. Legacy names remain supported through native 1.x and emit a
migration warning on stderr; a present canonical value always wins a conflict.
The npm 0.1.x implementation continues to use the legacy names shown below.
| Native canonical variable | Description | Legacy name through 1.x |
|---|---|---|
OPEN_SKILLS_CLONE_TIMEOUT_MS |
Positive Git timeout in milliseconds (default 300000) |
SKILLS_CLONE_TIMEOUT_MS |
OPEN_SKILLS_INSTALL_INTERNAL_SKILLS |
Set to exactly 1 or true to show and install metadata.internal: true skills |
INSTALL_INTERNAL_SKILLS |
OPEN_SKILLS_LOCK_TIMEOUT_MS |
Non-negative advisory-lock wait in milliseconds (default 10000) |
None |
OPEN_SKILLS_SUPPRESS_LEGACY_ENV_WARNINGS |
Set to exactly 1 or true to suppress only legacy-name migration warnings |
None |
# Native release: include internal skills
OPEN_SKILLS_INSTALL_INTERNAL_SKILLS=1 open-skills add owner/repo --listStandard ecosystem and third-party variables such as NO_COLOR, XDG_*,
GH_HOST, Git credentials/configuration, and agent-owned home variables retain
their established names. See the native D12 migration notes
for precedence, deprecation, and exact authorization semantics.
- Agent Skills Specification
- Amp Skills Documentation
- Antigravity Skills Documentation
- Factory AI / Droid Skills Documentation
- Claude Code Skills Documentation
- OpenClaw Skills Documentation
- Cline Skills Documentation
- CodeBuddy Skills Documentation
- Codex Skills Documentation
- Command Code Skills Documentation
- Crush Skills Documentation
- Cursor Skills Documentation
- Firebender Skills Documentation
- Gemini CLI Skills Documentation
- GitHub Copilot Agent Skills
- iFlow CLI Skills Documentation
- Kimi Code CLI Skills Documentation
- Kiro CLI Skills Documentation
- Kode Skills Documentation
- OpenCode Skills Documentation
- Qwen Code Skills Documentation
- OpenHands Skills Documentation
- Pi Skills Documentation
- Qoder Skills Documentation
- Replit Skills Documentation
- Roo Code Skills Documentation
- Trae Skills Documentation
The active source tree is Go-only. Build, format, vet, and test it with the Go toolchain declared by go.mod:
gofmt -w cmd internal
go vet ./...
go test ./... -count=1
CGO_ENABLED=0 go build -trimpath -o build/open-skills ./cmd/open-skillsOrdinary pull-request and main push CI intentionally has one Ubuntu Go validation job. It fails closed on formatting, vetting, and the complete test suite. As part of that suite, the native release test builds every CGO-disabled release target once and smoke-tests the production Linux executable; only the security-sensitive compatibility subset is rerun inside a network namespace. Native macOS ARM64 Homebrew and experimental Windows Scoop checks run only against release artifacts in the release workflows; ordinary CI does not repeat the full suite across operating systems or Go versions.
See native development for the compatibility corpus and signed native release process. The protected v0.1.2 tag and checked-in compatibility manifests preserve the retired implementation for historical inspection; they are not active development dependencies.
Open Skills originated as a fork of vercel-labs/skills. Existing MIT notices and upstream attribution are preserved.
MIT