Claude Code /skillsコマンドの使い方 — トークン数ソートと可視性切り替え
/skillsコマンドで導入済みスキルを一覧し、tキーでトークン数順に並べ替え、Spaceキーで可視性を4段階に切り替える操作をまとめます。
/skillsは導入済みのスキル一覧を開くコマンドです。ただの一覧表示ではなく、tキーで推定トークン数によるソート、Spaceキーでスキルごとの可視性を4段階に切り替える操作を持っています。名前で絞り込む検索ボックスもあり、スキルが増えて/メニューが埋まってきたときの管理画面として機能します。
/skillsで開く一覧に何が並ぶか
/skillsを実行すると、そのセッションで読み込まれているスキルが一覧表示されます。対象はバンドルスキルです(/doctor /code-review /batch /debug /loop /claude-apiなど、標準で同梱されているもの)。加えて、プロジェクトの.claude/skills/に置いた自作スキル、~/.claude/skills/のユーザースキル、プラグイン経由で入ったスキルも同じ一覧に並びます。名前を打ち込むと即座に絞り込まれるため、10個や20個程度なら検索ボックスだけで十分実用的です。
一覧の各行にはスキル名と説明文が並びます。この説明文がClaudeの文脈に載る実体で、スキルが増えるほど毎リクエストのトークン消費に効いてきます。/skillsはこの一覧そのものを管理する画面という位置付けです。
tキーでトークン数順に並べ替える
一覧を開いた状態でtキーを押すと、表示順が推定トークン数順に切り替わります。もう一度押すと元のアルファベット順(または導入順)に戻るトグル動作です。
スキルの数が増えてくると、「どのスキルが文脈を一番食っているか」は名前だけでは分かりません。tでソートすれば、説明文が長いスキルやwhen_to_useの記述が冗長なスキルが上位に出てきます。トークン消費の大きいスキルから順に説明文を削るか、後述の可視性設定で名前だけの表示に落とすかを判断する起点になります。
/doctorを実行すると、スキル一覧が消費している文脈コストの見積もりと、その中で影響の大きいスキルが分かります。tソートと/doctorの出力を突き合わせると、削るべき対象をピンポイントで特定できます。
Spaceキーで可視性を4段階に切り替える
一覧でスキルを選びSpaceキーを押すと、そのスキルの可視性が状態を1つずつ進めながら循環します。Enterで確定すると、変更内容が.claude/settings.local.jsonのskillOverrides設定に書き込まれます。
| 状態 | Claudeへの見え方 | /メニューでの表示 |
|---|---|---|
on(既定) | Claudeへの見え方名前と説明文が渡る | /メニューでの表示表示される |
name-only | Claudeへの見え方名前だけが渡る(説明文は渡らない) | /メニューでの表示表示される |
user-invocable-only(/skillsではuser-onlyと表示) | Claudeへの見え方Claudeには見えない | /メニューでの表示表示される |
off | Claudeへの見え方Claudeには見えない | /メニューでの表示非表示 |
skillOverridesに登録されていないスキルはonとして扱われます。この設定はSKILL.mdのfrontmatterを直接書き換えずにスキルの見え方を変えられる点が実務上の利点です。共有リポジトリにチェックインされたスキルの挙動を、自分の手元でだけ調整したいときに向いています。プラグイン経由のスキルは対象外で、こちらは/plugin側で管理します。
skillOverridesは設定ファイルに直接手で書くこともできます。/skillsメニューでの操作は、この設定ファイルへの書き込みをGUI越しに行っているだけです。設定ファイル全体の階層構造や他の設定項目との関係はClaude Code settings.json完全ガイドで扱っています。
{
"skillOverrides": {
"legacy-context": "name-only",
"deploy": "off"
}
}可視性を切り替える判断基準
すべてのスキルをonのまま放置すると、スキルが増えるたびに毎リクエストの文脈コストが積み上がります。かといって説明文まで削ると、Claudeがそのスキルを使うべき場面で気づけなくなる可能性があります。
| 状況 | 向く設定 |
|---|---|
| Claudeに自動で使ってほしい、説明文も判断材料に必要 | 向く設定on(既定のまま) |
| 存在は知らせたいが説明文まで載せる余裕がない | 向く設定name-only |
自分では/から呼びたいが、Claudeが自動で使うと事故りやすい | 向く設定user-invocable-only |
今のプロジェクトでは使わない、文脈からも/メニューからも消したい | 向く設定off |
user-invocable-onlyが向くのは、破壊的な操作を伴うスキル(本番デプロイ、DBマイグレーション等)です。Claudeが文脈から自動判断して呼び出すのは避けたいが、人間が明示的に/deployと打つ分には問題ない、というケースに合います。disable-model-invocation: trueをSKILL.mdのfrontmatterに書く方法も同じ効果を持ちます。違いは、skillOverridesならファイルを編集せずに設定できる点です。
同名スキルが複数あるときの表示
スキルは作業ディレクトリより下にあるネストした.claude/skills/からも読み込まれます。Claudeがサブディレクトリ内のファイルを読み書きすると、そのサブディレクトリの.claude/skills/にあるスキルが使えるようになる仕組みです。モノレポの1パッケージが自分専用のスキルを持ち、そのパッケージを触っているときだけ有効になる、という構成に向きます。
このネストしたスキルがプロジェクトルートのスキルと同じ名前を持つ場合、両方が一覧に残ります。たとえばプロジェクトルートにdeployスキルがあり、apps/web/.claude/skills/にも同名のdeployがあるとします。この場合、ネストした側はapps/web:deployというディレクトリ修飾名で/skillsに表示されます。/deployと打てばルート側が実行され、/apps/web:deployと明示すればネスト側を個別に呼び出せます。名前を指定せずルート側のdeployが発動した場合でも、Claude Codeはその文脈にネスト版の存在を書き添え、作業対象のディレクトリに応じてネスト版も合わせて呼び出すよう促します。
ネストしたスキルはセッション開始時点では読み込まれません。該当サブディレクトリ内のファイルを実際に読み書きした瞬間に初めて読み込まれ、以降そのセッション内で使えるようになります。読み込まれる前は/skillsの一覧にも自動補完にも出てこないため、「さっきまで無かったスキルが増えている」と感じたら、直前にどのディレクトリを触ったかを振り返ると理由が分かります。
スコープが違う同名スキルはどちらが一覧に出るか
エンタープライズ・パーソナル(~/.claude/skills/)・プロジェクト(.claude/skills/)という3つのスコープがあります。同じ名前のスキルが複数スコープに定義されていても、/skillsには1件しか出ません。優先順位はエンタープライズがパーソナルを上書きし、パーソナルがプロジェクトを上書きします。どのスコープのスキルも、同名のバンドルスキルより優先されます(ただしバンドルスキルのエイリアスまでは上書きしません)。.claude/commands/のファイルも同じ仕組みで扱われ、スキルとコマンドが同名なら、スキル側が優先されます。
syncedという名前は3つのスコープすべてで予約されています。理由は同期の仕組みにあります。CLAUDE_CODE_SYNC_SKILLSを非対話モードで設定していると、claude.aiで有効にしたスキルが~/.claude/skills/synced/へ自動ダウンロードされます。自分でsyncedという名前のスキルを作っても読み込まれません。同期スキルまわりの安全策(ローカルコマンドを覆い隠さない設計・説明文のサニタイズ)はClaude Code v2.1.228で扱っています。
スキル一覧が予算を超えるとどうなるか
導入するスキルが増えすぎると、一覧全体の文脈コストが割り当て予算を超えることがあります。超過するとClaude Codeはデバッグログに警告を書き込みます(--debug起動で確認可能)。/doctorを実行すれば、現在の一覧が消費しているコストの見積もりと、コストの大きいスキルの内訳を先に確認できます。
予算を広げたい場合はskillListingBudgetFraction設定を使います(例: 0.02で文脈全体の2%)。固定の文字数で指定したいならSLASH_COMMAND_TOOL_CHAR_BUDGET環境変数を使います。優先度の低いスキルをname-onlyに落として予算を空ける方法も有効です。各スキルの説明文とwhen_to_useを合わせた文字数には、予算とは別に1,536字という上限があり、これを超える分は表示から切り捨てられます。この上限自体はskillListingMaxDescChars設定で変更できます。長い説明文を書くときは、最も判断材料になる用途を先頭に置くと、切り捨てられても実害が小さくなります。
/skillsで見落としやすい点
Enterキーの挙動はバージョンで変わっています。以前はEnterが単に一覧を閉じるだけでしたが、現在は選択したスキル名を/<スキル名>の形でプロンプトに差し込みます(可視性の変更中に押したEnterは保存の確定であり、この差し込みとは別の操作です)- ソート順は既定でアルファベット順です。数が多い一覧では
tでトークン数順、それ以外は名前で検索する使い分けが基本になります disableBundledSkillsを有効にすると、/doctorを除く全バンドルスキルが無効になります。/doctorだけは無効化してもタイプ可能な例外で、これも隠したい場合はDISABLE_DOCTOR_COMMAND環境変数かskillOverridesの"doctor": "off"で対応しますskillOverridesはプラグインスキルには効きません。プラグイン由来のスキルを止めたいときは/plugin側の操作が必要です
SKILL.mdの書き方やfrontmatterの設計まで踏み込むならClaude Code Skills完全ガイドで扱っています。Claude Codeの組み込みコマンド全体の中で/skillsがどう位置付くかはClaude Codeスラッシュコマンド一覧で確認できます。
よくある質問
/skillsと/pluginは何が違いますか
/skillsはプロジェクト・ユーザー・プラグイン経由すべてのスキルを横断して一覧表示・可視性管理する画面です。/pluginはプラグイン自体のインストール・更新・マーケットプレイス管理を担当します。プラグイン内のスキルを個別に隠したい場合は/skillsではなく/plugin側の操作が必要です。
skillOverridesの設定はどこに保存されますか
/skillsメニューでの変更は.claude/settings.local.jsonに書き込まれます。バージョン管理に含めない前提のローカル設定ファイルなので、チーム全体ではなく自分の手元だけの調整に向きます。チーム全体で可視性を揃えたい場合は、この内容を共有設定ファイルへ手動で移す必要があります。
tキーのソートは何を基準にしていますか
スキルの説明文やwhen_to_useなどをもとにした推定トークン数です。実際にAPIへ送られる正確なトークン数とは異なる場合がありますが、どのスキルが文脈コストの大部分を占めているかを掴む目安としては十分機能します。
可視性をoffにしたスキルは完全に消えますか
ファイルは削除されず残ります。offは表示と読み込みを止めるだけなので、Spaceキーでonに戻せばいつでも復活します。SKILL.md自体を消したいわけではなく、一時的に使わないだけのときはoffが安全です。
まとめ
/skillsは一覧・検索に加えて、tキーのトークン数ソートとSpaceキーの4段階可視性切り替えを持つ管理画面です。スキルが増えて/doctorの警告が出るようになったら、tでコストの大きいスキルを特定し、name-onlyやoffで予算を調整する、という流れが基本になります。可視性の変更はSKILL.mdを編集せずに.claude/settings.local.jsonへ反映されるため、共有リポジトリのスキルを手元だけ調整したいときにも使えます。