gh skillが登場。GitHub公式のスキル管理ツールにnpx skillsから乗り換えた
AIエージェント向けのスキル(Agent Skills)、みなさんはどう管理していますか?
2026/04/16、GitHub公式CLIのghに、スキルをパッケージ管理する新しいサブコマンドgh skillが追加されました。GitHubのリポジトリに公開されているスキルをgh経由でインストール・アップデート・公開できます。私はこれまでnpx skillsでスキルをインストール・管理してきましたが、gh skillの方が安全面でよさそうなので乗り換えることにしました。
本記事では、メリットや実際の動作を紹介します。
3行まとめ
-
gh skill install スキルでスキルをインストールできる -
gh skill publish スキルで自作スキルを仕様に沿って公開できる - 改ざん検知・バージョン固定・由来情報の埋め込みなど、サプライチェーン対策が組み込み済み
環境準備
GitHub CLI v2.90.0以上が必要です。私の環境の実行例は次のとおりです。
$ gh --version
// gh version 2.90.0 (2026-04-16)
// https://github.com/cli/cli/releases/tag/v2.90.0
$ gh skill --helpでサブコマンドの一覧を確認すると、次のコマンドが使えることがわかります。
-
search: GitHub上に公開されているスキルを検索する -
preview: インストール前にSKILL.mdの中身を確認する -
install: スキルをローカルにインストールする -
update: インストール済みスキルを最新版に更新する -
publish: 自分のスキルをagentskills.io仕様でバリデーションしつつ、GitHubリリースとして公開する
実際に使ってみる
私が作ったXの投稿のバズり度を採点スキル「x-impact-checker」を、gh skillで導入します。
1. previewで中身を先に確認
いきなりスキルをインストールする前に、gh skill previewでSKILL.mdの中身を確認できます。怪しいスキルじゃないかの確認に便利です。
$ gh skill preview tonkotsuboy/x-impact-checker
確認ダイアログを進めると、スキルの中身が出力されます。この時点ではスキルはインストールされません。

gh skillがカバーしてくれるのは、スキルのインストール経路やバージョン情報まで。プロンプトインジェクション(AIへの命令文を不正に混ぜ込み、意図しない挙動を引き起こす攻撃)は、インストール前に中身を読まないと防げません。これはgh skillにかかわらず、スキルをインストールするときに行うべきことです。
Skills are installed at your own discretion. They are not verified by GitHub and may contain prompt injections, hidden instructions, or malicious scripts. We strongly recommend inspecting the content of skills before installation,
(意訳:スキルはGitHubによって検証されていません。プロンプトインジェクションや隠された命令、悪意のあるスクリプトが含まれている可能性があります。インストール前にスキルの中身を確認することを強く推奨します)https://github.blog/changelog/2026-04-16-manage-agent-skills-with-github-cli/
実際には、中身を読んで判断するのも大変なので、gh skill previewで読んだ中身をチェックするスキルを作って運用するのがいいのではないかと考えています。
2. installでスキルをインストール
gh skill install スキルでインストールします。対話プロンプトでどのエージェントに入れるか、ユーザー全体かプロジェクト単位かを聞かれます。
$ gh skill install tonkotsuboy/x-impact-checker


バージョン指定を省略したときは、最新のタグが優先的に選ばれます。
特定のバージョンに固定してスキルをインストールすることも可能です。次の例では、v2.0.5を指定してインストールしています。
$ gh skill install tonkotsuboy/x-impact-checker --pin v2.0.5
3. 配置先の確認
Claude Code向けにユーザー全体でインストールした場合、~/.claude/skills/直下に入ります。
$ ls ~/.claude/skills/x-impact-checker/
SKILL.md references
npx skillsの場合はスキルファイルは ~/.agents に配置され、~/.claude/skills/にはシンボリックリンクが配置される挙動でしたが、gh skillの場合は指定したエージェント分スキルファイルがコピーされます。
なお、スキルの仕様を公開しているagentskills.ioでは、スキルをローカルのどこに置くかまでは規定していません。npx skillsは自前ディレクトリ~/.agents/skills/を正とする設計、gh skillは各エージェントの純正ディレクトリ(Claude Codeなら~/.claude/skills/)に直接置く設計となっています。
4. updateでスキルを更新
gh skill updateで、インストール済みのスキルをまとめて最新版に更新できます。
$ gh skill update
--dry-runを付けると、実際の書き換えは行わず、更新があるかだけを確認できます。
スキルが勝手に書き換わらない仕組み
スキルはAIへの命令書そのものです。入れたあとに中身がこっそり書き換わると、気づかないうちに意図しない指示でAIが動きます。配布元のリポジトリ乗っ取りや、タグを別コミットに付け替えるforce pushが典型的なケースです。
gh skillは、一度入れたスキルが知らないうちに書き換わらないように、4つの仕組みを用意しています。
- Immutable Releases: 公開後のリリース内容をリポジトリの管理者でも書き換えられなくする設定
- Tree SHA による検知: スキルフォルダ全体のハッシュ値(Tree SHA※)を
SKILL.mdに記録し、リモートの中身が変わると検出できる - Version Pinning:
--pinで特定のタグ・コミットに固定する。updateでも自動更新されない - Portable Provenance: 由来情報(provenance / プロベナンス)を
SKILL.md自体に埋め込むので、ファイルを別環境にコピーしても由来情報がついて回る
※ Tree SHAは、Gitがディレクトリ配下のファイルツリー全体を一意に識別するハッシュ値です。ファイルの中身が1ビットでも変わると値も変わるので、改ざん検知に使えます。
スキルのfrontmatterに書き込まれる由来情報(provenance)
gh skill installを実行したときには、SKILL.mdのfrontmatter(冒頭の---で囲まれた部分)に由来情報(provenance / プロベナンス)が書き込まれます。
次の例は、gh skill installで入れたx-impact-checkerのSKILL.mdのfrontmatterです。
---
description: 'Analyze X (Twitter) posts for viral potential using the actual recommendation algorithm. ...'
metadata:
github-path: skills/x-impact-checker
github-ref: refs/tags/v2.0.6
github-repo: https://github.com/tonkotsuboy/x-impact-checker
github-tree-sha: f7a74cc1c1d6fc8650d00a7ad441d330e8f11e62
name: x-impact-checker
---
metadata:ブロックの4行が由来情報(provenance)の実体です。
-
github-pathはリポジトリ内でのスキルのパス -
github-refはどのタグ・ブランチ由来か(refs/tags/v2.0.6ならv2.0.6タグ固定) -
github-repoはリポジトリのURL -
github-tree-shaはフォルダ全体のハッシュ値(改ざん検知用)
この情報がSKILL.md自体に埋まっているので、ファイルを別のマシンにコピーしても由来情報がついて回ります。gh skill updateはここを読んで、リモートで中身が更新されているかを判定します。
gh skill publishでスキルを公開できる
gh skill publish パッケージは、スキルを公開するためのコマンドです。ローカルのSKILL.md群がagentskills.io仕様を満たしているかをバリデーションし、通ったら対話形式でGitHubリリースを作成します。
agentskills.io仕様への準拠チェック
agentskills.ioは、SKILL.mdが備えるべき命名規則やfrontmatterの項目を定めた共通仕様です。Claude Code、Cursor、Codex、GitHub Copilot、Gemini CLI、Antigravityなどのエージェントが、同じ仕様のスキルを読めるようになっています。
gh skill publish --helpによると、次のようなチェック内容があることがわかります。gh skill publishをつかうことで、この仕様に沿ったスキルの公開が可能になります。
- スキル名がagentskills.ioの命名規則に従っているか
- スキル名とディレクトリ名が一致しているか
-
name/descriptionのfrontmatterがあるか -
allowed-toolsが配列ではなく文字列か - install metadata(
metadata.github-*)が残っていないか
リポジトリ側のセキュリティ設定もチェックする
gh skill publishは、スキル本体のバリデーションに加えて、GitHubリポジトリ側のセキュリティ設定が有効になっているかもチェックします。必須ではないものの、サプライチェーン※対策として推奨されているのが次の3つです。
- tag protection: タグを後から別コミットに付け替えられるのを防ぐ
- secret scanning: コミットに秘密情報(APIキー等)が紛れ込んでいないかのスキャン
- code scanning: コードの脆弱性スキャン
※ サプライチェーンとは、ライブラリやスキルといった外部の部品が、作られてから利用者の手元に届くまでの流れのこと。この流れのどこかに細工を仕込んで利用者を狙う攻撃を「サプライチェーン攻撃」と呼びます。
私が公開を試したときも、tag protectionが有効になっていないリポジトリで実行するとwarningが出ました。次のようにtag protectionを有効化することで解決しました。

さいごに
gh skillを使うと、スキルのインストール・更新・公開までを安全に行なえます。私はnpx skillsを気に入って使っていましたが、昨今のサプライチェーン攻撃などを見ていると、安全な管理方法がないかを考えていました。今回GitHubがリリースしたgh skillはその一つの答えとなるもので、スキル管理の新しい選択肢の一つとなりうるでしょう。個人的にはスキルのインストール・更新のみならず、公開時のセキュリティチェックまでやってくれるのが助かりました。
男は黙ってgh skillを使いましょう。
4/29にCSS Nite「Claude Codeとフロントエンド開発 ──全社員がAIエージェントを活用するUbieの実践事例」にて登壇します。ぜひご参加ください。
Discussion