GitHub CLI v2.90.0 の gh skill でAgent Skillsの導入・管理を試してみた
どうも!オペ部の西村祐二です!
GitHub CLI v2.90.0 が 2026-04-17 にリリースされ、Agent Skills を管理する gh skill コマンドが追加されました。これまでは手作業で .claude/skills/ などに配置するか、Vercel Labs の npx skills などサードパーティのツールに頼っていた領域ですが、GitHub 公式の CLI からも検索・導入・更新ができるようになりました。実際に動かして、既存のワークフローとどう変わるのかを確認してみます。
gh skill とは
GitHub Changelog には次の記載があります。
Today we're launching
gh skill, a new command in the GitHub CLI that makes it easy to discover, install, manage, and publish agent skills from GitHub repositories.
Agent Skills はAIエージェントに特定タスクの実行方法を教える、指示・スクリプト・リソースをまとめたパッケージです。agentskills.io のオープン仕様に従い、GitHub Copilot / Claude Code / Cursor / Codex / Gemini CLI / Antigravity など複数のエージェントホストで利用できます。
gh skill はこの Agent Skills を GitHub リポジトリから扱うためのサブコマンド群で、現在は Public Preview として提供されています。GitHub Changelog には以下の注意書きがあります。
gh skillis launching in public preview and it's subject to change without notice.
サブコマンドは次の5つが提供されています。
| サブコマンド | 機能 |
|---|---|
gh skill search |
GitHub Code Search API でスキルを横断検索 |
gh skill preview |
スキルの SKILL.md をターミナルに表示(導入前の確認) |
gh skill install |
GitHubリポジトリ(またはローカル)からスキルをインストール |
gh skill update |
インストール済みスキルを最新に更新 |
gh skill publish |
自作スキルを検証して GitHub Release として公開 |
既存ワークフローとの比較
Agent Skills そのものは 2025-10 に Anthropic が発表し、Claude Code などが順次対応してきました。ただ配布の仕組みは各エージェントホストに委ねられていて、標準的な導入手段がまだ定まっていない状況でした。手作業で対応する場合は、次のような流れが中心だったと理解しています。
- 目的のスキルを公開しているリポジトリをWebで探す
git cloneするか、必要なファイルを手でコピー- エージェントごとに異なるディレクトリ(
.claude/skills/や.github/skills/など)に配置 - 更新は自分で
git pullして差分反映
一方で npm 側では Vercel Labs の skills(npx skills add <owner/repo> で導入し skills-lock.json でロック)が 2026-01 に公開されるなど、パッケージマネージャ的な配布ツールも登場してきています。今回の gh skill は、こうした動きに GitHub 公式の CLI として合流するポジションにあると捉えると分かりやすそうです。
gh skill が入ると、次のような流れになります。
gh skill search <keyword>で SKILL.md を含むリポジトリを横断検索gh skill previewで中身をその場で確認gh skill install <owner>/<repo> <skill> --agent <host>でホスト既定の場所に配置gh skill updateで tree SHA ベースの差分検知&更新
パッケージマネージャ(pnpm/uv/cargo など)に近い体験で扱えるようになる、というのが大きな変化のようです。
試してみる
環境
- GitHub CLI v2.90.0 (2026-04-16)
- macOS Sequoia 15.x
- 動作確認対象エージェント: Claude Code
gh skill は v2.90.0 以降が前提です。v2.89.0 以下の場合は Homebrew などで更新する必要がありました。リポジトリを横断する search / preview / install / publish などは GitHub API を利用するため、gh auth login で認証済みの状態が前提になります。
brew upgrade gh
gh --version
# gh version 2.90.0 (2026-04-16)
1. search でスキルを探す
まず gh skill search で公開されているスキルを検索してみます。GitHub Code Search API で SKILL.md を横断的に調べる実装になっています。
基本的な書式は次の通りです。
gh skill search <キーワード> [フラグ]
よく使いそうなフラグは次のあたりです。
| フラグ | 用途 |
|---|---|
--owner <name> |
組織・ユーザーで絞り込み |
--limit <n> |
結果件数の上限 |
--json <fields> |
指定フィールドをJSON出力(description / namespace / path / repo / skillName / stars) |
今回は GitHub が公開しているリポジトリのなかから commit に関するスキルを5件取得してみます。
gh skill search commit --owner github --limit 5
実行結果の抜粋です。

リポジトリ名・スキル名・description・スター数が一覧で並びます。--owner <name> で組織やユーザーに絞ったり、--json <fields> で指定フィールド(description / namespace / path / repo / skillName / stars)の JSON 出力を得ることもできます(--json は値の指定が必須です)。
2. preview で中身を確認
気になるスキルが見つかったら、入れる前に中身を確認できます。
基本的な書式は次の通りです。
gh skill preview <owner>/<repo> <skill名>
<skill名> は gh skill search の出力2列目(git-commit など)を指定します。
git-commit スキルを覗いてみます。
gh skill preview github/awesome-copilot git-commit
ターミナルに SKILL.md がレンダリングされ、ディレクトリ構成も表示されます。
git-commit/
└── SKILL.md
── SKILL.md ──
# Git Commit with Conventional Commits
## Overview
Create standardized, semantic git commits using the Conventional Commits
specification. Analyze the actual diff to determine appropriate type, scope,
and message.
...

Changelog でもインストール前の確認が勧められており、安全面で役立つコマンドです。
We strongly recommend inspecting the content of skills before installation, which can be done via the
gh skill previewcommand.
3. install でスキルを導入する
実際にインストールしてみます。今回は Claude Code のプロジェクトスコープに入れてみました。
gh skill install github/awesome-copilot git-commit --agent claude-code --scope project
出力は次の通りです。

--agent には github-copilot / claude-code / cursor / codex / gemini / antigravity を指定できます。--scope project なら現在のリポジトリ配下、--scope user ならホームディレクトリに配置されます。配置先は以下のようにホストごとに決まっています(公式ドキュメントより抜粋)。
| エージェント | project scope | user scope |
|---|---|---|
| GitHub Copilot | .agents/skills |
~/.copilot/skills |
| Claude Code | .claude/skills |
~/.claude/skills |
| Cursor | .agents/skills |
~/.cursor/skills |
| Codex | .agents/skills |
~/.codex/skills |
| Gemini CLI | .agents/skills |
~/.gemini/skills |
| Antigravity | .agents/skills |
~/.gemini/antigravity/skills |
Claude Code を除く Copilot / Cursor / Codex / Gemini がプロジェクトスコープでは .agents/skills を共有する仕様になっている、というのは複数エージェントを併用する環境では影響してきそうだと感じました。
4. フロントマターに書き込まれる追跡情報
インストール後の SKILL.md を見ると、公式ドキュメント通り追跡メタデータがフロントマターに書き込まれていました。
---
allowed-tools: Bash
description: 'Execute git commit with conventional commit message analysis...'
license: MIT
metadata:
github-path: skills/git-commit
github-ref: refs/heads/main
github-repo: https://github.com/github/awesome-copilot
github-tree-sha: 883a6a7466f55a9cd9f22cf1cce2d9333fc9b998
name: git-commit
---
github-tree-sha を保持しておくことで、gh skill update が「バージョン番号ではなく実際のコンテンツ変更」を検出できる仕組みです。Changelogにも次のように書かれています。
Each installed skill records the git tree SHA of its source directory.
gh skill updatecompares local SHAs against the remote to detect real content changes, not just version bumps.
5. --pin で git ref に固定
特定の tag や commit SHA に固定したい場合は --pin を指定します。
gh skill install github/awesome-copilot conventional-commit \
--agent claude-code --pin 329042b24ebc70240bb382a932a94bb90747622c --force
@VERSION をスキル名に付ける書き方(git-commit@v1.2.0 など)でも同様に指定できます。ピン留めしたスキルは gh skill update の対象から外れるので、バージョンを固定したいチーム共通スキルの運用に向いていそうです。--pin にブランチ名(main など)を渡すと技術的には受け付けられますが、その場合はブランチ追従になってしまうので、固定目的であれば tag や SHA を指定する必要があります。
なお上の例にある --force は必須フラグではなく、ヘルプには次のように記載されています。
-f, --forceOverwrite existing skills without prompting
初回インストール時には不要で、既にインストール済みのスキルを別バージョンで入れ直したいときに付けると、上書き確認のプロンプトを省略できます。今回は先に main ブランチの conventional-commit を入れていたので、pin 付きで再インストールするために --force を添えました。
6. update で差分をチェック
まずは gh skill update --dry-run で更新の必要があるかを確認しようとしたところ、手元の環境では以下のように手動で作成したスキルについて対話形式での確認プロンプトが出力されました。
! github-issue-researcher has no GitHub metadata
? Repository for blog (owner/repo):
ヘルプには次のように書かれており、メタデータを持たないスキル(手作業で配置したものや別ツールで入れたものなど)については、そのスキルの取り込み元リポジトリを毎回尋ねる仕様のようです。
Skills without GitHub metadata (e.g. installed manually or by another tool) are prompted for their source repository in interactive mode.
--dry-run でも --all を付けても、この「interactive mode」の質問は抑止されませんでした。--all は「更新の確認をスキップする」フラグで、メタデータ補完のプロンプトとは別枠のようです。
自作スキルが多い環境で対話を避けるには、次のいずれかが扱いやすそうです。
- 対象スキル名を列挙する:
gh skill update git-commit conventional-commitのように gh 経由で入れたスキル名だけを渡す。自作スキルは走査対象外になり、質問そのものが発生しません。 - 標準入力を閉じて非対話モードで走らせる:
gh skill update --all < /dev/nullのように stdin を TTY から切り離すと、metadata のないスキルは警告付きでスキップされます。
試しに stdin を閉じた状態で --dry-run を動かすと次のような出力になります。
gh skill update --all --dry-run < /dev/null
! github-issue-researcher has no GitHub metadata. Reinstall to enable updates
! my-code-review has no GitHub metadata. Reinstall to enable updates
! video-to-procedure has no GitHub metadata. Reinstall to enable updates
All skills are up to date.
自作スキルは metadata.github-* を持たないため、gh skill update の追跡対象にはならず、警告とともにスキップされる挙動に落ち着きました。
7. publish --dry-run で自作スキルを検証
最後に自作スキルの検証を試してみます。publish --dry-run なら GitHub Release の作成は行わず、仕様に合っているかだけチェックしてくれます。
検証用にサンプルディレクトリを作ります。
mkdir -p /tmp/gh-skill-publish-test/skills/hello-skill
cd /tmp/gh-skill-publish-test
git init -q
---
name: hello-skill
description: Use this skill when the user asks for a hello world greeting in multiple languages.
---
# Hello Skill
Greet the user in the requested language.
gh skill publish --dry-run
実行結果です。

license フィールドが推奨されていたり、remote が未設定だと警告が出たりと、公開前チェックがそこそこ細かく実施されていそうです。検出対象のディレクトリパターンは skills/*/SKILL.md / skills/{scope}/*/SKILL.md / */SKILL.md / plugins/{scope}/skills/*/SKILL.md に限定されていました。既存のリポジトリで gh skill publish を想定するなら、このパターンに沿った配置になっているか確認しておくとスムーズそうです。
試してみた感想
パッケージマネージャ的なスキル管理自体は Vercel Labs の npx skills などサードパーティツールでも実現できていた領域で、install / update(tree SHA ベースの差分検知)/ lockfile / ref 固定あたりは概ね同じことができていたように感じます。そのうえで gh skill の独自性を感じた点は次の通りでした。
- preview コマンド: インストール前に SKILL.md 本体をターミナルで読める。
npx skills側には相当機能が現状見当たらなく、実質リポジトリを開きに行くしかなかったので、プロンプトインジェクション対策の初手として使いやすい - publish コマンド: Agent Skills 仕様に照らした検証と GitHub Release 作成まで CLI で完結する。
npx skillsは SKILL.md の雛形生成(init)までで、配布はユーザー任せだった - GitHub Code Search ベースの search:
npx skills findは skills.sh のカタログ検索なので、登録済みスキルに絞られる。gh skill searchは GitHub 上にSKILL.mdを置いてあるリポジトリを広く拾える gh authとの統合: Copilot や GitHub Actions とセットで運用している環境では、認証情報や Code Search API の権限まわりをgh auth側に寄せられるので、追加トークン管理が不要
差分検知や pin 済みスキルの固定まわりはどちらのツールでも可能なので、「既に npx skills で運用が回っているチームが今すぐ移行する必要があるか?」と言われるとそこまででもないかもしれません。ただ、スキルの配布側(publish)や、未登録リポジトリも含めて横断的に探したい場合は gh skill にしかできないことが増えてきそうだと感じました。
一方で、Public Preview ということもあって、gh skill list や gh skill uninstall のような定番操作は現時点では用意されていません(検証した範囲では該当するコマンドは見つかりませんでした)。インストール済みスキルの棚卸しやアンインストールは、今のところディレクトリを直接見て手作業で対応する必要がありそうです。
また、現時点で --scope の有効値は project と user のみで、組織単位の配布を直接サポートする仕組みはまだ見当たりませんでした。このあたりは Preview 期間中に拡張される可能性もあるので、今後のアップデートに注目しておこうと思います。
まとめ
- GitHub CLI v2.90.0 で
gh skillコマンドが Public Preview として追加された search→preview→install→update/publishの一連の流れで Agent Skills をパッケージ感覚で扱える- tree SHA ベースの差分検知と
--pinによるバージョン固定により、スキルのサプライチェーン面に配慮された設計に見える - 既存の手動配置スキルを追跡対象に載せたい場合は
gh skill installで入れ直す必要がある - 現時点は Public Preview のため、業務投入前に仕様変更の可能性を想定しておく必要がありそう
Agent Skills を複数ホストで使い回している人や、チームでスキルを配布・統一したいケースでは試してみる価値がありそうです。
誰かの参考になれば幸いです。
参考リンク:








