skills.shは、Claude CodeやCodex、CursorなどのAIコーディングエージェントに読み込ませる「エージェントスキル」を探せるディレクトリです。Vercelが運営し、同じくVercelが開発するCLI(npmの skills パッケージ)を使えば、npx skills add オーナー/リポジトリ の1行でスキルを手元のエージェントに配置できます。この記事では、2026年10月9日公開の最新版1.7.2を一時ディレクトリで実行し、導入・確認・復元・削除の挙動と配置先を確かめたうえで、コマンドの使い方と運用の注意点をまとめます。
まとめ:skills.shの正体と最初に打つコマンド
- skills.shはスキルを探すWebサイト、
npx skillsは導入と管理のCLI。どちらもVercelのプロジェクトで、CLIはMITライセンスの無料ソフトウェア - 導入は
npx skills add vercel-labs/agent-skills。中身だけ見るなら-l、1本だけ入れるなら-s スキル名 - Claude CodeとCodexを同時に指定すると、実体は
.agents/skills/に置かれ、Claude Code用の.claude/skills/にはシンボリックリンクが張られる(Claude Codeだけなら.claude/skills/に直接置かれる) - 管理は
list・update・remove。アンインストールに当たるのはremove(別名rm) skills-lock.jsonからの復元(experimental_install)は.agents/skills/にしか戻さない。Claude Code向けには.claude/skills/側の扱いを別に決めておく- スキルはエージェントと同じ権限で動く。導入前にskills.shの監査欄(Gen Agent Trust Hub・Socket・Snyk)と
SKILL.mdを確認する
skills.shの構成:ディレクトリとskills CLIの役割
skills.shのランキング表示とPacks・Official・Audits
Vercelは2026年1月20日(米国時間)のchangelogでskills CLIを発表し、同時にskills.shを「スキルパッケージのディレクトリとリーダーボード」として公開しました。2026年10月15日にskills.shのトップを開くと、リーダーボードは累計の「All Time」、直近24時間の「Trending (24h)」、直近1時間を前日の同じ時間帯と比べる「Hot」の3タブで、All Timeタブには「1,319,697」という件数が表示されています。インストール数の1位は vercel-labs/skills の find-skills(3.9M)、2位は mattpocock/skills の grill-me(1.4M)でした。
ナビゲーションには「Packs」「Official」「Audits」があります。Packsは公開・非公開のスキルを1つの導入コマンドにまとめる機能です。ただし、作成したPackはURLを知る人なら認証なしで閲覧・導入できるため、秘密情報や認証情報を含めてはいけません。Officialは技術の開発元が自ら配布するスキルの一覧で、anthropics・cloudflare・aws などの組織が並びます。Auditsは各スキルのセキュリティ監査結果の一覧で、後半の章で読み方を説明します。
CLI(npmのskillsパッケージ)と版の追い方
CLIの本体はnpmの skills パッケージで、ソースは vercel-labs/skills(MIT)にあります。2026年10月15日時点の最新は1.7.2(10月9日公開)で、1.6.0と1.7.0は9月17日に続けて出ています。週に複数回リリースされることもあるため、手順書やCIでは npx [email protected] のように版を固定すると挙動がそろいます。公開初期の名前だった add-skill パッケージは、npm上で「’skills’ に改名した」と非推奨になっています。
npx は未導入のパッケージを一時的に取得して実行する仕組みなので、npm install -g skills は必須ではありません。キャッシュの扱いと版の固定方法はnpxとは?npm execとの違い・キャッシュ実行の仕組みとCIでの固定手順で説明しています。
スキルの中身はSKILL.md
1つのスキルは、SKILL.md を含むディレクトリです。YAMLのフロントマターに name と description を書き、本文にエージェントへの手順を書きます。この形式はAnthropicが始め、現在は agentskills.io で公開されているAgent Skillsの仕様に沿っています。仕様の詳細や各製品の対応状況はAgent Skillsとは?SKILL.md仕様と46製品で動かす移植性の実装手順、Claudeでの書き方はClaude Skillsとは?SKILL.mdの書き方とclaude.ai・Claude Code・APIでの使い方に分けています。この記事では、skills.shとCLIで流通させる側の話に絞ります。
skills.shの使い方:npx skills addによる導入手順
addによるスキル一覧の確認と単体導入
最初は -l(--list)で、リポジトリに入っているスキルを導入せずに一覧表示するのが安全です。vercel-labs/agent-skills で実行すると、vercel-react-best-practices・web-design-guidelines・vercel-optimize などが説明文付きで表示されました。入れるスキルが決まったら、-s で名前を、-a で導入先のエージェントを指定します。
# 導入せずにスキル名と説明を一覧表示
npx [email protected] add vercel-labs/agent-skills -l
# 1本だけ、Claude CodeとCodexへ、確認なしで導入
npx [email protected] add vercel-labs/agent-skills -s web-design-guidelines -a claude-code codex -y
後者を空のgitリポジトリで実行した結果が次の配置です。実体は .agents/skills/ に1つだけ作られ、Codexはそれを直接読み、Claude Codeの .claude/skills/ にはシンボリックリンクが張られました。同時に、導入元を記録する skills-lock.json もプロジェクト直下に作られます。
./.agents/skills/web-design-guidelines/SKILL.md
./.claude/skills/web-design-guidelines -> ../../.agents/skills/web-design-guidelines
./skills-lock.json
一方、-a claude-code だけを指定した場合は、.claude/skills/ にリンクではない通常のディレクトリが作られました。.agents/skills/ を読むエージェントが導入先に含まれるかどうかで、配置の形が変わります。
addで指定できるソース
READMEに載っている指定方法は次のとおりです。非公開リポジトリも同じ書き方で指定できます。GitHubの短縮形またはHTTPS URLでは、通常のGit認証が失敗すると、認証済みのGitHub CLI、SSHの順にフォールバックします。
- GitHubの短縮形(
vercel-labs/agent-skills)とURL、リポジトリ内の特定スキルを指す/tree/main/skills/...形式のURL - GitLab、Azure Repos、任意のgit URL(
[email protected]:...など) - ローカルのパス(
./my-local-skills) - Webサイトが
/.well-known/agent-skills/で公開するスキル、SKILL.md単体やzip・tar.gzを直接返すURL(取得は10MiBまで)
addの主なオプション
| オプション | 働き |
|---|---|
-g |
ユーザー単位(ホーム配下)に導入 |
-a |
導入先のエージェント('*' で全部) |
-s |
導入するスキル名('*' で全部) |
-l |
導入せずに一覧表示 |
-y |
確認を省略 |
--copy |
リンクでなくコピーで配置 |
--all |
-s '*' -a '*' -y の短縮 |
--full-depth |
直下にSKILL.mdがあっても深く探索 |
--json |
結果を機械可読で出力 |
--all は全スキルを全エージェントへ入れます。CIでは -s と -a を明示して -y を付ける形にとどめます。
npx skillsのコマンド一覧(1.7.2)
npx [email protected] --help で表示されるサブコマンドは次の9つです。
| コマンド | 役割 | 別名 |
|---|---|---|
add |
スキルを導入 | a |
use |
導入せず1回だけ使う | なし |
find |
スキルを検索 | なし |
list |
導入済みの一覧 | ls |
update |
最新版へ更新 | upgrade・check |
remove |
導入済みを削除 | rm |
init |
SKILL.mdの雛形を作成 | なし |
experimental_install |
lockから復元 | なし |
experimental_sync |
node_modules内のスキルを配置 | なし |
check はヘルプに載っていませんが、1.7.2のソースでは update と同じ処理に振り分けられています。uninstall や install というサブコマンドはありません。
use:未導入スキルの一時取得とプロンプト出力
use はスキルを一時ディレクトリに取得し、そのスキルを実行させるためのプロンプトを標準出力に出します。web-design-guidelines で試すと、出力は1,374バイトで、冒頭に「You are being given a Skill to execute」という指示、その後に SKILL.md の全文が入っていました。パイプでエージェントに渡すか、-a で対応エージェントを対話起動します。
npx skills use vercel-labs/agent-skills@web-design-guidelines | claude
npx skills use vercel-labs/agent-skills -s web-design-guidelines -a claude-code
find・list:スキル検索と導入済み一覧の確認
find は引数なしで対話検索、キーワードを付けると一致するスキルを返します。1.7.2では --owner vercel のように、特定のGitHubユーザーや組織のリポジトリに絞れます。list は既定でプロジェクトのスキルを、-g でユーザー単位のスキルを表示し、--json を付けると次のように機械可読で出ます。
[
{
"name": "web-design-guidelines",
"scope": "project",
"agents": ["Codex", "GitHub Copilot", "OpenCode"],
"source": "vercel-labs/agent-skills",
"sourceType": "github"
}
]
出力の一部の項目(path など)は省略しています。これはlockから復元した直後の出力で、.agents/skills/ を読むエージェントだけが並び、Claude Codeは含まれていません。理由は次の章で説明します。
update・remove:更新と削除
update は導入済みスキルを最新にします。-g でユーザー単位だけ、-p でプロジェクトだけに絞れ、-y を付けると対象範囲の質問を省いて現在のディレクトリから自動判定します。remove はスキル名を渡すと削除し、owner/repo を渡すとそのリポジトリ由来のスキルをまとめて消します。
npx skills update -p -y
npx skills remove web-design-guidelines -y
実行すると、実体とリンクが消え、skills-lock.json は "skills": {} になりました。ただし空になった .agents/skills/ ディレクトリと、lockファイル自体は残ります。
init:自作スキルの雛形
npx skills init my-skill で my-skill/SKILL.md が、名前を省くとカレントに SKILL.md が作られます。必須は name(小文字・数字・ハイフン)と description の2項目です。仕様上、nameは1〜64文字で親ディレクトリ名と一致させ、先頭・末尾のハイフンと連続するハイフンは使えません。フロントマターに metadata.internal: true を書くと通常の検索と導入の対象から外れ、環境変数 INSTALL_INTERNAL_SKILLS=1 を設定すると一覧表示・導入の対象になります。ただし、環境変数がなくても -s で名前を明示すれば導入できるため、アクセス制御には使えません。作業中のスキルを通常の一覧から隠す用途に向きます。
スコープと対応エージェント別の配置先
導入範囲は2種類です。既定のプロジェクト単位はリポジトリにコミットしてチームで共有でき、-g のユーザー単位はホームディレクトリ配下に置かれて全プロジェクトで使えます。READMEは対応エージェントを「OpenCode、Claude Code、Codex、Cursorほか75」と書いており、対応表では、配置先が共通する複数のエージェントを同じ行にまとめています。主な製品の配置先は次のとおりです。
| エージェント | -a の値 |
プロジェクト | ユーザー(-g) |
|---|---|---|---|
| Claude Code | claude-code |
.claude/skills/ |
~/.claude/skills/ |
| Codex | codex |
.agents/skills/ |
~/.agents/skills/ |
| Cursor | cursor |
.agents/skills/ |
~/.cursor/skills/ |
| GitHub Copilot | github-copilot |
.agents/skills/ |
~/.copilot/skills/ |
| Gemini CLI | gemini-cli |
.agents/skills/ |
~/.gemini/skills/ |
| OpenCode | opencode |
.agents/skills/ |
~/.config/opencode/skills/ |
| Kiro CLI | kiro-cli |
.kiro/skills/ |
~/.kiro/skills/ |
プロジェクト単位では多くの製品が .agents/skills/ を共有しており、Claude CodeやKiro CLIのように独自のフォルダを読む製品にはリンクかコピーで届けます。CLIは手元に入っているエージェントを自動で検出し、見つからなければ導入先を尋ねます。Codexでの読み込み方はCodex Skillsとは?できること・SKILL.mdの作り方と配置場所を解説で扱っています。
スキルの書式は共通でも、使える機能は製品によって異なります。READMEの互換表では、スキルを別の文脈で走らせる context: fork に対応するのはClaude Codeだけで、HooksはClaude Code・Cline・Kiro CLIが対応しています。allowed-tools はKiro CLIとZencoderが非対応です。これらに頼るスキルは、使用する機能と導入先の対応状況を照合して選びます。
skills-lock.jsonでチームにそろえるときの落とし穴
プロジェクト単位で add すると、skills-lock.json に導入元が記録されます。今回の導入で作られた中身は次のとおりです。
{
"version": 1,
"skills": {
"web-design-guidelines": {
"source": "vercel-labs/agent-skills",
"sourceType": "github",
"skillPath": "skills/web-design-guidelines/SKILL.md",
"computedHash": "a6a44d54...f727c2a"
}
}
}
記録されるのはリポジトリとパス、導入時の内容のハッシュで、gitのコミットやタグは入りません。npm ci のような完全な版固定ではなく、あとから復元すると、その時点のリポジトリの内容が取得されます。
復元に使う npx skills experimental_install にも注意が要ります。.agents/skills/ と .claude/skills/ を消してから実行すると、戻ったのは .agents/skills/ だけで、Claude Code用のリンクは作られませんでした。-a claude-code を付けても結果は同じです。1.7.2のソースでは、復元先が .agents/skills/ を読むエージェント群に固定されています。この状態では、Codex・Cursor・GitHub Copilotは復元したスキルを読めても、Claude Codeは読めません。
Claude Codeを使うメンバーがいるチームでは、次のどちらかに決めておくのが確実です。
.agents/skills/と.claude/skills/(シンボリックリンク)をどちらもリポジトリにコミットする。復元コマンドに頼らず、cloneした時点で全員が同じ内容を読む- lockはコミットするが、セットアップ手順で
npx skills add ... -a claude-code -yを明示的に実行する
Windowsのgitは設定によってシンボリックリンクを通常のファイルとして取り出すため、前者は --copy で導入してコピーをコミットする方が扱いやすくなります。名前に experimental_ と付いているとおり仕様が変わる可能性があるので、版を上げたら同じ確認をやり直してください。
安全に使うための確認:監査表示とテレメトリ
skills.shのAudits欄の読み方
スキルはエージェントへの指示で、エージェントと同じ権限でファイルを読み書きし、コマンドを実行します。add の完了時にも「Review skills before use; they run with full agent permissions.」と表示されます。skills.shのSecurity Auditsは、Gen Agent Trust Hub、Socket、Snykの3者による監査結果を並べたページです。2026年10月15日時点では、インストール数1位のfind-skillsもSnykの欄は「Med Risk」で、上位でも3者すべてが最良の評価とは限りません。「Pending」のまま監査が済んでいないスキルもあります。
監査は2026年2月17日のVercelの発表で始まりました。悪意があると判定されたスキルはリーダーボードと検索から自動で外され、URLを直接開くと導入前に警告が出ます。skills.shのAPIリファレンスでは、監査の提供元としてRunlayerとZeroLeaksも加えた5者が挙がっています。
監査欄は判断材料の1つにとどめ、導入前に -l でスキル名と説明を一覧表示し、配布元のリポジトリで SKILL.md と同梱スクリプトを読むのが基本です。外部へ送信する処理や、rm・curl を含むシェル実行を指示しているスキルは、業務のリポジトリに入れる前に内容を確かめてください。
CI環境のテレメトリ送信と無効化設定
CLIは匿名の利用統計をskills.shへ送ります。skills.shのドキュメントによると、リーダーボードの順位はこのテレメトリの集計で決まります。READMEは DISABLE_TELEMETRY=1 か DO_NOT_TRACK=1 で止められると説明しています。以前は「CI環境では自動で無効」と紹介されることがありましたが、1.7.2のソースでは、CI や GITHUB_ACTIONS などの環境変数を検出すると、送信を止めずに ci=1 という印を付けて送っています。CIで送信を止めたいなら、環境変数を明示して設定します。
もう1つの注意点として、この2つの環境変数はセキュリティ監査の取得も止めます。公開GitHubリポジトリから導入するとき、CLI(1.4.0以降)はskills.shから監査結果を取得して「Security Risk Assessments」として表示しますが、テレメトリを無効にするとこの取得と表示も行われません。送信を止める環境では、監査結果をWebのAudits欄で事前に確認する手順を加えてください。
skills.shを使わない方がよい場面
社外秘の手順や認証情報の扱いを含むスキルを、公開のGitHubリポジトリに置いてskills.sh経由で配るのは避けるべきです。公開GitHubリポジトリからの導入では、リポジトリ名とスキル名がテレメトリとして送られます。社内向けは非公開リポジトリに置いてアクセス権で守るか、Claude Codeが中心ならプラグインのマーケットプレイスで配る方法もあります(Claude Codeプラグインの作り方と社内配布|marketplace.json・管理設定)。社内の業務手順をエージェントに組み込む設計から相談したい場合は、AIエージェント開発の支援も行っています。
MCPやプラグインとの違い
MCP(Model Context Protocol)は、エージェントと外部のサービスやデータをつなぐ通信の規格で、サーバーを動かしてツールを提供します。スキルは手順と知識を書いたファイルで、サーバーは要りません。必要な場面でエージェントが SKILL.md を読み、書かれた手順に沿って既存のツールを使います。外部APIを呼ぶ能力そのものを足すならMCP、社内の規約や作業手順を守らせるならスキル、という分担です。MCPの仕組みはMCP(Model Context Protocol)とは?AIと外部ツールをつなぐ標準規格の仕組みをわかりやすく解説で説明しています。
skills CLIは、リポジトリに .claude-plugin/marketplace.json や plugin.json があれば、そこに書かれたスキルも検出します。Claude Codeのプラグイン用のリポジトリからも、スキル部分だけを他のエージェントへ導入できます。開発元が npx skills add での導入を案内する例には、動画制作のRemotionがあります(Remotion Agent Skillsとは?12スキルの中身と導入コマンド・Claude Codeでの動画制作手順)。
よくある質問
skill.shとskills.shは同じサイトですか?
違います。正しいドメインは末尾にsが付く skills.sh です。2026年10月15日に skill.sh を開くと、ドメイン売買サービスの駐車ページが表示されました。
skills.shは無料で使えますか?
無料です。CLIはMITライセンスで、ディレクトリの閲覧と npx skills add での導入に料金はかかりません。CLI 1.7.2の動作要件はNode.js 22.20.0以上です。Git経由で取得する導入元ではGitも必要です。
Codexにスキルを入れるコマンドは何ですか?
npx skills add オーナー/リポジトリ -a codex です。プロジェクト単位では .agents/skills/ に、-g を付けると ~/.agents/skills/ に置かれます。Cursorは -a cursor で、プロジェクト単位の置き場所はCodexと同じです。
入れたスキルをアンインストールするには?
npx skills remove スキル名(別名 rm)です。uninstall というサブコマンドはありません。ユーザー単位で入れたものは -g、特定のエージェントからだけ外すなら -a を付けます。
npm install -g skills で入れて使ってもよいですか?
使えますが、版が手元に固定されたままになります。更新が頻繁なので、普段は npx skills、手順をそろえたい場面では npx [email protected] のように版を書く方が管理しやすくなります。