🔰

Claude Code の基本的な使い方のまとめ

に公開
2

Claude Code とは

https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview

Anthropic社が提供するターミナルから実行可能なAIエージェント。
AIアシスタント Claude をターミナルから直接呼び出し、コードの解析・編集・テスト・Git操作など、開発作業を自動化・効率化することが可能。エディタに依存することはないため、ワークフローを強制せず、ユーザー自身の開発スタイルに合わせて使うことができる。

エディタに依存しないため、ポータビリティ性が高く、また私自身が Xcode をメインで活用するiOSエンジニアなので、VSCode に依存する Cline などと比較して試しやすく、特に注目している。

※ OpenAI社が提供するOSS、Codex CLI も同じコマンドラインツールなので比較したいが、あまり触ることができていない。
※ 以降の説明では、Claude Code のバージョン 0.2.86 を利用した情報をまとめる。

ルールファイル

Claude のメモリに記憶させたいルールを記載する。よく使うコマンド、ディレクトリの説明、コードスタイル、テスト手順、開発環境の注意点などを記載する。

https://x.com/_catwu/status/1904941904812220787
Claude Code 経由で # コマンド後に後述する各メモリ領域にテキストを追加することが可能。何を書くかについては別の記事にまとめている。
https://zenn.dev/to4iki/articles/6eb03574d7f247#ルールファイルに何を書くか

プロジェクト設定

プロジェクトのルートや任意のディレクトリに CLAUDE.md を設置すると、その内容が Claude のコンテキストに自動で取り込まれる。

ローカル設定

個人環境で好みが異なるようなルールや、カスタマイズしたいルールがある場合には、プロジェクト直下に CLAUDE.local.md として定義する。チーム開発の場合には、このファイルを .gitignore 化しておくこと。

CLAUDE.local.md
# ローカルルール
- コードの修正を行った場合には、修正後にプロジェクトがビルドできることを確認すること

グローバル設定

プロジェクト設定とは別で、すべての Claude コマンドに適用したいようなユーザー固有のグローバル設定に関しては、ユーザーディレクトリ直下の ~/.claude/CLAUDE.md に記載すること。

~/.claude/CLAUDE.md
# グローバルルール
- 日本語で返信すること
- コード生成を求められた場合は、変更部分のみをわかりやすく説明し、提示すること

使い方

$ claude で起動し、後は/コマンドによる補完候補で大体何ができそうか想像が付くので、本記事では特に設定値についてやCLIツールならではの使い方にフォーカスしつつ、公式が公開しているベストプラクティスのブログからも掻い摘んで紹介する。

https://www.anthropic.com/engineering/claude-code-best-practices

設定

承認なしで実行可能なコマンドの登録

allowdTools "Bash(任意のコマンド)" の形式で Claude Code の承認ステップをスキップして実行可能なコマンドや利用禁止するコマンドを登録できる。

グローバル設定

~/.claude/setting.json
{
  "permissions": {
    "allow": [
      "Bash(ls:*)",
      "Bash(git:*)",
      "Bash(gh:*)"
    ],
    "deny": [
      "Bash(rm:*)"
    ]
  }
}

ローカル設定

.claude/setting.local.json
{
  "permissions": {
    "allow": [
      "WebFetch(domain:*)"
    ],
    "deny": []
  }
}

読み込むファイルやディレクトリの除外設定

いわゆる、.clineignorecursorignore に相当するような Claude Code 用の除外ファイル設定は2025/6現在提供されていない。.claudeignore ファイルのような構造は提案されていたが、setting.json を利用するとのこと。

https://github.com/anthropics/claude-code/issues/579

その代わりに $ claude config add ignorePatterns コマンドを使用して除外パターンを設定することができる。例えば、node_modules ディレクトリを除外するには以下のコマンドを使う。

.claude/setting.local.json
{
  "permissions": {
    ...
    "deny": [
      "Read(deprecated_files/**)"
    ]
  }
}

起動オプション

インライン起動

Claude Code をインライン実行することができる。以下の Makefile では書式設定の妥当性確認用のリンターとして使用している。

Makefile
lint-ai-rules:
	claude -p "あなたはリンターです。rules-bank/ディレクトリ以下のmdファイルがあなたや他のAIコーディングツールに渡す情報として適切かをコードベースと照らし合わせてよく考えて回答してください。"

CLIなので、パイプでデータを繋ぎこむこともできる。

$ cat build-error.txt | claude -p 'このビルドエラーの根本原因を簡潔に説明してください' > output.txt

YOLOモード

You Only Live Once mode

コマンド実行のパーミッションをスキップする場合は --dangerously-skip-permissions オプション付きで起動する。

$ claude --dangerously-skip-permissions

ヘッドレス実行

インライン実行とYOLOモードを組み合わせることで、例えばCIのワークフローへの組み込みなどが容易となる。

ANTHROPIC_API_KEY の環境変数でカスタムAPIキーをセットし、インライン実行する例:

$ export ANTHROPIC_API_KEY=sk_...
$ claude -p "最新の変更でREADMEを更新" --allowedTools "Bash(git diff:*)" "Bash(git log:*) Edit"

公式リポジトリでは、新しいIssueが登録されると Claude Code が検査し、適切なラベルを割り当てるような GitHub Actions のワークフローが構築されている。

その他

カスタムスラッシュコマンド

チームで共有したいようなカスタムコマンドを作成することができる。

.claude/commands/optimize.md
このコードのパフォーマンスを分析し、具体的な最適化を提案してください。

カスタムコマンドの実行は/コマンドで呼び出すこと。補完が効くので特に迷うことはない。

$ claude
> /project:optimize

ちなみに、コマンドはサブディレクトリ毎に整理可能で、.claude/commands/frontend/components.md/project:frontend:component に対応する。

MCP化した Claude Code への接続

https://zenn.dev/kazuph/articles/5a6cc61ae21940

Claude Code は MCP(Model Context Protocol)サーバーとして利用することが可能。例えば、Claude Desktop アプリから接続する場合には、以下のように設定ファイルを更新する。

/Users/<user_name>/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "claude_code": {
      "command": "claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}

CLIから利用できる Claude Code をデスクトップアプリから扱うのは遠回りのようだが、MCPサーバーとして動かすことで、API利用の従量課金を月額定額利用のDesktopアプリ版のClaudeで吸収することが可能となる。
つまり、Claude Code を定額利用するために、Desktopアプリを経由するということ。

まとめ

備忘を兼ねて Claude Code の使い方について簡単にまとめた。
今回紹介していない以下のような、MCPサーバー追加用のコマンドが用意されているので、それは後日試しながらまとめる。

  • JSONファイルからMCPサーバーを追加する
  • Claude Desktop からMCPサーバーをインポートする

また、CLIツールならではの使い方として、複数の Claude Code インスタンスを並列実行することも可能なので、具体のユースケースを追求しようと思う。

参考

https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials

https://github.com/anthropics/claude-code

Discussion

atsuyamaruatsuyamaru

ヒントとして大変参考にさせていただきました!

$ claude config add ignorePatterns コマンドを使用して除外パターンを設定することができる。例えば、node_modules ディレクトリを除外するには以下のコマンドを使う。
$ claude config add ignorePatterns node_modules

こちらなのですが、現在はdeplicatedとなっているようです。現在の推奨は下記のように .claude/settings.json または .claude/settings.local.json に"deny"ルールとして記述するとのことでした。

プロジェクト設定はプロジェクトディレクトリ内の.claude/settings.json(共有設定用)と.claude/settings.local.json(ローカルプロジェクト設定用)に保存されます。Claude Codeは作成時に.claude/settings.local.jsonをgitで無視するように設定します。
https://docs.anthropic.com/ja/docs/claude-code/settings#設定ファイル

たとえば .env , .hogehoge といったファイルをClaude Codeによる読み込みから除外したい場合、下記のように記述すると良さそうです。

      5      ],
 "deny": [
      7        "Read(.env)"
      8        "Read(.hogehoge)"
      9      ]
     10    }
     11  }

本記事をヒントに発見できました。感謝とご参考まで。

to4ikito4iki

@atsuyamaru
除外設定に関して情報ありがとうございます。記事を更新しました!