Claude Code カスタムコマンド(slash command)の作り方と使い方

公開日:
目次

カスタムコマンドは、よく使うプロンプトを /コマンド名 で呼び出せるようにする機能です。

この記事では、その作り方と使い方を解説します。

最速で試す

カスタムコマンドは、.claude/commands/ フォルダにMarkdownファイルを置くだけで作ることができます。

まずはフォルダを作成しましょう。

mkdir -p .claude/commands

次に、コマンドとして使いたい内容をMarkdownファイルに保存します。

例として、コードレビュー用のコマンドを作ってみます。

echo "このコードをレビューしてください。バグ、パフォーマンス、可読性の観点でチェックして。" > .claude/commands/review.md

最後に、Claude Codeを起動(再起動)してチャットで以下のように入力します。

Claude Code
/review

これで、/review で保存したプロンプトが実行されます。

基本的な考え方

上記ではサクッと使ってみる方法を紹介しましたが、ここからはカスタムコマンドの仕組みと応用的な使い方を解説します。

保存場所は2種類

Claude Codeのカスタムコマンドは、2つの場所に保存できます。

これによって、プロジェクトごとに共有するコマンドと、自分専用のコマンドを使い分けられます。

種類 場所 用途
プロジェクト用 .claude/commands/ このプロジェクトだけで使う。Gitで共有可能
個人用 ~/.claude/commands/ 全プロジェクトで使える。自分専用

コマンドはあくまでプロンプトを保存するだけであり、個人のやり方に依存する部分が多いと思うので、最初は個人用に作るのがベターかと思います。

共有が必要になったら、プロジェクト用にコピーすればOKです。

ファイル名 = コマンド名

ファイル名がそのままコマンド名になります。

例えば、以下のようになります。

  • review.md/review
  • create-test.md/create-test
  • fix-bug.md/fix-bug

引数を使う

カスタムコマンドには引数を渡すことで、オプションを指定したり、柔軟に動作させたりできます。

引数はプロンプト内で以下のように参照できます。

渡された引数をすべて受け取る

$ARGUMENTS で、渡された引数をすべて受け取ることができます。

.claude/commands/fix-issue.md
GitHub Issue #$ARGUMENTS を確認して修正してください。

上記を使う場合は下記のようにします。

/fix-issue 123

$ARGUMENTS123 に置き換わります。

個別に受け取る

渡された引数を個別に受け取ることもできます。

その場合は、$1、$2、$3... のように番号で参照します。

.claude/commands/create-component.md
$1 という名前の$2コンポーネントを作成してください。

上記を使う場合は下記のようにします。

/create-component UserProfile React
  • $1UserProfile
  • $2React

上記の例はあまり使い物にならないかもしれませんが、引数を分けて受け取りたい場合に便利です。

便利に使う

ここからは、カスタムコマンドをより便利に使う方法を紹介します。

Bashコマンドの実行

!`コマンド` と書くと、コマンド実行時にBashが走り、その結果がプロンプトに埋め込まれます。

.claude/commands/commit.md
---
allowed-tools: Bash(git diff:*), Bash(git status:*)
---

## 現在の変更
!`git diff --staged`

この変更に対して適切なコミットメッセージを提案して。

こうすることで、「今の状態」を自動で取得できます。

Clade Code
/commit

上記を実行すると、自動でdiffが取得されて、それを元に提案してくれます。

ファイル参照

@ファイルパス で、そのファイルの中身をプロンプトに含めることができます。

@$ARGUMENTS のテストを書いてください。

下記の通りClaude Codeでコマンドを実行します。

Claude Code
/test src/utils.ts

こうすることで、引数で指定したファイル(src/utils.ts)の中身 を自動で読み込めます。

他の指示と組み合わせると便利です。

フロントマター

ファイル先頭に --- で囲んだ設定を書けます。

---
description: コードをレビューする
argument-hint: [ファイルパス]
allowed-tools: Bash(npm test:*)
---

$ARGUMENTS をレビューしてください。

こうすることで、以下のような効果があります。

項目 効果
description /help で「このコマンド何だっけ」がわかる
argument-hint コマンド入力時に引数のヒントが表示される
allowed-tools Bashコマンド等の実行に許可がいらなくなる

これらの方法を組み合わせることで、便利かつ強力なカスタムコマンドを作ることができます。