GH-SKILL-INSTALL(1)
π NAME π
gh-skill-install β install agent skills from a GitHub repository (preview) β¨
(this lives in the GitHub CLI manual, bestie β welcome to the skill-installation station π)
β¨ SYNOPSIS β¨
gh skill install <repository> [<skill[@version]>] [flags]
π¦ DESCRIPTION π¦
Okay so basically? This command installs agent skills from a GitHub repository or a local directory into your local environment. Skills get placed in a host-specific directory, and there are two scopes: project scope (inside the current git repository) or user scope (in your home directory, available everywhere). Pick your vibe π
A wide range of AI coding agents are supported, including GitHub Copilot, Claude Code, Cursor, Codex, Gemini CLI, Antigravity, Amp, Devin, Goose, Grok, Junie, OpenCode, and many more. The roster is honestly giving main character energy π
π Supported --agent values
- GitHub Copilot (
github-copilot) - Claude Code (
claude-code) - Cursor (
cursor) - Codex (
codex) - Gemini CLI (
gemini-cli) - Antigravity (
antigravity) - Antigravity CLI (
antigravity-cli) - Antigravity 2.0 (
antigravity2.0) - AdaL (
adal) - Amp (
amp) - Augment (
augment) - IBM Bob (
bob) - Cline (
cline) - CodeBuddy (
codebuddy) - Command Code (
command-code) - Continue (
continue) - Cortex Code (
cortex) - Crush (
crush) - Deep Agents (
deepagents) - Devin (
devin) - Droid (
droid) - Firebender (
firebender) - Goose (
goose) - Grok (
grok) - iFlow CLI (
iflow-cli) - Junie (
junie) - Kilo Code (
kilo) - Kimi Code CLI (
kimi-cli) - Kiro CLI (
kiro-cli) - Kode (
kode) - MCPJam (
mcpjam) - Mistral Vibe (
mistral-vibe) - Mux (
mux) - Neovate (
neovate) - OpenClaw (
openclaw) - OpenCode (
opencode) - OpenHands (
openhands) - Pi (
pi) - Pochi (
pochi) - Qoder (
qoder) - Qwen Code (
qwen-code) - Replit (
replit) - Roo Code (
roo) - Trae (
trae) - Trae CN (
trae-cn) - Universal (
universal) - Warp (
warp) - Zencoder (
zencoder)
Yes, that's a lot of agents. We love a comprehensive list π
π Where do the skills go tho
Use --agent and --scope to control placement, or --dir if you want a custom directory. The default scope is project, and the default agent is github-copilot (when running non-interactively).
At project scope, several agents (including GitHub Copilot, Cursor, Codex, Gemini CLI, Antigravity, Amp, Cline, OpenCode, and Warp) share the .agents/skills directory. So if you select multiple hosts that resolve to the same destination, each skill is installed there only once. No duplicates, no mess, we stan efficiency π«Ά
πΈ Repos vs local dirs
The first argument is a GitHub repository in OWNER/REPO format. Use --from-local to install from a local directory instead. Local skills are auto-discovered using the same conventions as remote repositories, and files are copied (not symlinked) with local-path tracking metadata injected into frontmatter. Copy, not link β noted π
π₯ How skills get discovered
Skills are discovered automatically using the skills/*/SKILL.md convention defined by the Agent Skills specification β including when the skills/ directory is nested under a prefix (e.g. terraform/code-generation/skills/...). For more information on the specification, see: https://agentskills.io/specification
The skill argument can be a name, a namespaced name (author/skill), or an exact path within the repository (skills/author/skill, packages/agent-skills/code-review, or any .../SKILL.md path). Namespaced names with one slash are matched by name. Use a SKILL.md suffix to force a one-directory path outside the standard conventions π
π‘ Performance tip: when installing from a large repository with many skills, providing an exact path instead of a skill name avoids a full tree traversal of the repository, making the install significantly faster. Fr fr, it's a glow-up for your wait time β‘
β Version resolution, iykyk
When a skill name is provided without a version, the CLI resolves the version in this order:
- Latest tagged release in the repository
- Default branch HEAD
To pin to a specific version, either append @VERSION to the skill name or use the --pin flag. The version is resolved as a git tag or commit SHA.
Installed skills have source tracking metadata injected into their frontmatter. This metadata identifies the source repository and enables gh skill update to detect changes. Tracking who came from where β we love accountability π
When run interactively, the command prompts for any missing arguments. It's got your back π
π§ All the skills, all at once
Use --all to install every discovered skill from the repository without prompting for skill selection.
When run non-interactively, repository is required. Without a skill name or --all, the matching skills are listed (as tab-separated values when piped) so you can browse or filter them with tools like grep before re-running with a specific skill. Browse first, install second β the responsible icon behaviour πΈ
π OPTIONS π
--agent <string>β the target agent (peep the supported values list above π)--allβ install all skills without prompting for skill selection--allow-hidden-dirsβ include skills in hidden directories (e.g..claude/skills/,.agents/skills/)--dir <string>β install to a custom directory (this overrides--agentand--scope, no cap)-f,--forceβ overwrite existing skills without prompting. Aggressive, but make it fashion π--from-localβ treat the argument as a local directory path instead of a repository--pin <string>β pin to a specific git tag or commit SHA--scope <string>(default"project") β installation scope:{project|user}--upstreamβ install from the upstream source when a re-published skill is detected
π¦ ALIASES π¦
You can also summon this command as:
gh skill addgh skills add
Same energy, different name π
π EXIT CODES π
0: Successful execution π1: Error π2: Command canceled4: Authentication required π
NOTE: Specific commands may have additional exit codes. Refer to the command's help for more information.
β¨ EXAMPLE β¨
# Interactive: choose repo, skill, and agent
$ gh skill install
# Choose a skill from the repo interactively
$ gh skill install github/awesome-copilot
# List available skills non-interactively (e.g. to pipe into grep)
$ gh skill install github/awesome-copilot | grep review
# Install a specific skill
$ gh skill install github/awesome-copilot git-commit
# Install all skills from a repository
$ gh skill install github/awesome-copilot --all
# Install a specific version
$ gh skill install github/awesome-copilot git-commit@v1.2.0
# Install from a large namespaced repo by path (efficient, skips full discovery)
$ gh skill install github/awesome-copilot skills/monalisa/code-review
# Install from a non-standard nested path (efficient, skips full discovery)
$ gh skill install monalisa/skills-repo packages/agent-skills/code-review
# Install from a local directory
$ gh skill install ./my-skills-repo --from-local
# Install a specific local skill
$ gh skill install ./my-skills-repo git-commit --from-local
# Install for Claude Code at user scope
$ gh skill install github/awesome-copilot git-commit --agent claude-code --scope user
# Pin to a specific git ref
$ gh skill install github/awesome-copilot git-commit --pin v2.0.0
# Install skills from hidden directories (e.g. .claude/skills/)
$ gh skill install owner/repo --allow-hidden-dirs
π SEE ALSO π
And that's the whole page, bestie β brought to you by GitHub CLI v2.102.0, dated Oct 2026. Go install some skills, you absolute icon ππ«Άπ
π¦ where this page comes from
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- opensuse-leap 16.0: gh 2.102.0-bp160.1.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms