はじめに

本記事では、Claude Codeについてご紹介いたします。
近年、AIによるコーディング支援は急速に発展しており、Anthropic社が提供するClaude Codeはその最前線に位置しています。
従来の「エディタ連携型(VS Code拡張など)」とは異なり、CLI(Command Line Interface)ベースで動作する点が大きな特徴です。


Claude Codeとは

Claude Codeは、2025年5月22日にAnthropic社から提供されたCLI型のAIコーディングツールです。
ターミナル上で自然言語を入力すると、AIがコードベースを解析し、以下のような操作をサポートします。

  • 新機能の実装
  • バグ修正
  • リファクタリング
  • マルチファイル編集

👉 公式ドキュメント: https://docs.anthropic.com/en/docs/claude-code/overview


Claude CodeがCLIで提供されている理由

  1. IDE依存の回避

    • 開発者によって使用するIDE(VS Code、Xcode、Vimなど)は異なります。
    • すべてのIDEにAI機能を実装することは現実的ではないため、CLI形式にすることで全ての環境で共通利用を可能にしています。
  2. 進化スピードへの柔軟な対応

    • GUIベースの開発支援ツールはアップデートに時間がかかる傾向があります。
    • モデルの進化に追随しやすいCLI形式を採用することで、俊敏な更新や適応が可能となっています。
    • 将来的にはIDE自体が不要となる可能性も見据えています。

上記のような開発コンセプトがあり、Claude Codeが注目される背景には、以下のようなCLIであることによる恩恵が大きいことがあげられます。

  • 環境依存がないため、OSやエディタを問わず使用可能
  • コマンドラインベースのため、GUIよりも軽量で動作が高速

Claude CodeとCursorなどのAIエディタとの比較

AIエディタだと変更された箇所がエディタ上で可視化されるので、どのファイルのどの部分が変更されたのかすぐにわかります。
一方、Claude Codeの場合はCLIのため、どこが変更されたか把握しづらいという印象です。
特に大規模なコード生成が実行された場合、変更箇所のレビューワークが重くなる傾向があります。


Claude Codeをインストール

以下のサイトをもとに各OSに応じてインストールします。

https://docs.claude.com/ja/docs/claude-code/setup

自身のプロジェクトのルートに移動します。

cd your-project-directory

.claude/settings.json を作成します。
Google CloudeのVertex AIを使用する場合は以下を設定。

{
  "env": {
    "CLAUDE_CODE_USE_VERTEX": 1,
    "CLOUD_ML_REGION": "使用するリージョン",
    "ANTHROPIC_VERTEX_PROJECT_ID": "<GCPのプロジェクト名>",
    "ANTHROPIC_MODEL": "使用するモデル名",
    "ANTHROPIC_SMALL_FAST_MODEL": "使用するモデル名"
  },
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -Command \"Add-Type -AssemblyName System.Windows.Forms; $notify = New-Object System.Windows.Forms.NotifyIcon; $notify.Icon = [System.Drawing.SystemIcons]::Information; $notify.Visible = $true; $time = Get-Date -Format 'HH:mm:ss'; $notify.ShowBalloonTip(3000,'Claude Code has completed the task.','Time: ' + $time,'Info'); Start-Sleep -Seconds 3; $notify.Dispose()\""
          }
        ]
      }
    ]
  }  
}

hooksについて
hooksの設定はClaude Codeがタスクを完了したときに実行するイベントを定義できる機能です。
hooksの用途としては、以下の例があります

  • コード生成後にコードをフォーマットさせる
  • コード生成後にテストを実行させる
  • タスク完了後に通知を送信する

上記の設定ではタスク完了時に通知用のタスクトレイアイコンをWindows上に表示させる設定をしています。

# PowerShellで NotifyIcon クラス(タスクトレイアイコン)を使うために、.NET の System.Windows.Forms を読み込みます。
Add-Type -AssemblyName System.Windows.Forms

# NotifyIcon オブジェクトの作成
$notify = New-Object System.Windows.Forms.NotifyIcon

# 既定のシステムアイコン(青い「i」情報アイコン)をセットしています。
$notify.Icon = [System.Drawing.SystemIcons]::Information

# バルーン通知の表示(3秒表示)
$notify.ShowBalloonTip(3000,'Claude Code has completed the task.','Time: ' + $time,'Info')

# 後処理アイコン破棄
$notify.Dispose()

Anthropic公式ドキュメント: settings.json

Google Cloudでの認証設定。

gcloud auth application-default login

Claude Codeを起動して以下のプロジェクトを初期化します。

npx claude
summarize this project
/init

Claude Codeをカスタマイズする方法

Claude Codeでは、AIにプロジェクトの背景やルールを理解させるために「CLAUDE.md」という特別な設定ファイルを使用します。


CLAUDE.mdとは

CLAUDE.mdは、プロジェクトの背景・規約・技術情報などをまとめたMarkdown形式のファイルです。
Claude Codeはこのファイルを自動的に読み込み、プロジェクトの「メモリ」として活用します。

これにより、AIが次のような誤動作を防止できます。

  • 非推奨ライブラリの使用
  • 不要なファイルの上書き
  • チームのコード規約に反する生成

👉 詳細: https://www.anthropic.com/claude-code
👉 参考: Zenn: Claude Code ベストプラクティス
👉 参考: Findy: Claude Codeのファイル構成


CLAUDE.mdの記載例

## 目的

AIエージェントは以下の役割を担います。

- xxx

---

## 回答スタイル

- 日本語で簡潔 (必要に応じ英語用語併記)。
- ユーザー目的が不明なら最初に 1-2 質問で目的確認。

---

## プロジェクト概要

このリポジトリはxxxを行うWEBアプリです。

---

## 技術スタック

  - 言語: Python 3.12
  - フレームワーク: Fast API

---

## プロジェクト構造

  - common/: 共有ロジックモジュール
    - logic.py: 処理ロジッククラス
    - dto/: データ転送オブジェクト
  - app.py: メイン処理

---

## コマンド

  - `pip-compile requirements.in` : 依存関係の解決
  - `pip install -r requirements.txt` : パッケージインストール

---

## コードスタイル

  - インデントはスペース4つ
  - 命名規則:
    - 関数/変数: スネークケース (snake_case)
    - クラス: パスカルケース (PascalCase)
    - 定数: 大文字スネークケース (UPPER_SNAKE_CASE)
  - Docstrings: Google形式
    - 関数/メソッドの説明を記述
    - Args: 引数の型と説明
    - Returns: 戻り値の型と説明
    - Yields: ジェネレータの場合
    - Examples: 使用例(可能な限り記述)
    - Note: 重要な注意事項
    - Raises: 発生する例外
  - import文は標準ライブラリ、サードパーティ、ローカルの順に分割し、空行で区切る
  - エラーハンドリング:
    - try-except-finallyを適切に使用
    - エラーメッセージは具体的に記述
    - スタックトレースをログに記録

---

## 禁止事項

  - 機密情報を含んだファイルのコミット禁止
  - ログメッセージ[`hogehoge`]は運用監視で使用するため、変更禁止

---

## Git運用ルール

- **Git Flow採用**: Git Flowブランチ戦略を採用
  - `develop`: 開発ブランチ(デフォルト)
  - `feature/*`: 機能開発ブランチ(developから分岐)
  - `release/*`: リリース準備ブランチ
  - `hotfix/*`: 緊急修正ブランチ
  - `main`: 本番リリースブランチ
- **コミットメッセージ形式**: `モジュール名: ***` の形式を厳守
  - 例: `モジュール名: チャット機能を追加`
  - 例: `モジュール名: LLM処理を最適化`
- **プルリクエスト**: feature/* → develop へのマージはPRを作成

ベストプラクティス(Anthropic公式)

  • 具体的に記述すること 「可読性を保つ」ではなく、「1行あたりの文字数は100文字以内」といった明確なルールにします。

  • 構造化して整理すること 見出しや箇条書きを活用し、関連情報をグループ化します。

  • 定期的に更新すること プロジェクトの進行や仕様変更に応じてCLAUDE.mdを更新し、常に最新状態を維持します。

👉 参考: https://docs.claude.com/en/docs/claude-code/memory#memory-best-practices


配置場所と優先順位

Claude Codeは現在のディレクトリから上位ディレクトリへ再帰的にCLAUDE.mdを探索し、 見つかったものを「広域 → 狭域」の順で統合的に読み込みます。

メモリタイプ 配置場所 用途 共有範囲
エンタープライズポリシー /etc/claude-code/CLAUDE.md 組織全体の標準やセキュリティ方針 全社員
プロジェクトメモリ ./CLAUDE.md または ./.claude/CLAUDE.md チーム単位の開発ルール チームメンバー
ユーザーメモリ ~/.claude/CLAUDE.md 個人設定 個人のみ
ローカルメモリ(非推奨) ./CLAUDE.local.md 個人用の一時設定 非推奨

CLAUDE.local.mdについて

従来は、プロジェクト固有の個人設定を記述するために CLAUDE.local.md を使用していましたが、 現在は非推奨となっています。
代替として、個人設定は ~/.claude/CLAUDE.md に記載し、Gitの追跡対象外にする方法が推奨されています。

👉 参考: メモリタイプの決定方法


OpenAIとの比較:AGENTS.md

OpenAIでは、Claude Codeと同様の目的でAGENTS.mdというファイル形式を採用しています。
2025年8月、OpenAI・Google・Cursorなど複数社の共同仕様として発表され、今後の標準化が期待されています。

👉 https://agents.md

AGENTS.mdの記載例

# AGENTS.md

## 目的
AIコーディングアシスタントに、プロジェクトの開発ルールを伝えるためのファイルです。  

## 開発環境
- pnpm + Turbo を使用
- 新規Reactプロジェクト作成方法を明記

## テスト
- CI実行コマンド
- テストの修正手順

## PRルール
- タイトルフォーマット
- コミット前チェック項目

Claude Codeは現時点でAGENTS.mdに正式対応していません。
AGENTS.mdは複数団体が共同で作成しているものなので、今後はAGENTS.mdが業界標準の仕様になる可能性があります。

Claude CodeとGitHub CopilotなどのAGENTS.mdに対応した別のツールを併用して使いたい場合は、 以下のようにCLAUDE.mdをAGENTS.mdのシンボリックとして作成することで、AGENTS.mdとCLAUDE.mdを実質同一ファイルとして使用することができます。

New-Item -ItemType SymbolicLink -Path "CLAUDE.md" -Target "AGENTS.md"

または、CLAUDE.mdファイルにAGENTS.mdをインポートするような記載して、AGENTS.mdを参照させるようにすることもできます。

@./AGENTS.md

Agent Skills

Agent Skills は、特定のタスクを実行するために必要なスクリプトやデータをスキルというパッケージとしてClaudeに登録することで、特定のタスク用のAI Agentを作成することができる機能です。  

Agent Skillは具体的には、タスクを実行するためのスクリプトなどのファイルが配置されたプロジェクト内の特定フォルダ(例の場合:skills/以下)」のことを示します。   SKILL.md にスキルの説明・入出力仕様を記述し、Claudeがこの内容を理解してスクリプトを呼び出すようになっています。

skills/
  ├─ summarize/
  │   ├─ SKILL.md
  │   └─ script.py
  ├─ deploy/
  │   ├─ SKILL.md
  │   └─ main.sh

Anthropic公式: Agent Skills

ユースケース

Agent Skillsのユースケースとして、以下のようなものが考えられます。

  • データ分析スキル

    • CSVデータを読み込み、集計、グラフ可視化するスキル
  • 開発フロー自動化スキル

    • 「Playwrightテスト実行」「GitHubリポジトリからデプロイ」自動で実行するスキル

Agent Skillsと既存のAIエージェントの違い

従来のAIエージェントは、MCP(Model Context Protocol)を介して外部ツールと接続していましたが、次のような課題がありました。

  • ツールが増えるほど「どのツールを使うべきか」判断が難しくなり、性能低下や誤作動を起こす可能性がある
  • ツール定義情報が増えるとトークン消費が大きくなり、コンテキストウィンドウを圧迫して思考リソースが減る

Agent Skillsでは、タスクに必要なツールや手順があらかじめ1つのスキルとしてまとめられているので、
AIはツール選択で迷わず、不要なツールを呼び出さない分、性能低下、誤作動が抑止され、トークン使用量が最適化されています。


Claude Code チートシート(カテゴリー別)

会話・コンテキスト管理とGit管理系はよく使用するので、覚えておくと便利です。

ファイル操作

コマンド 説明
/add-dir 新しい作業ディレクトリを追加
/init 新しい CLAUDE.md ファイルを初期化し、コードベースのドキュメントを作成
/memory Claudeのメモリファイル(CLAUDE.md)をテキストエディタで開く

会話・コンテキスト管理

コマンド 説明
/clear (reset, new) 会話履歴をクリアし、コンテキストを解放
/compact 会話履歴をクリアし、要約のみをコンテキストに保持オプション: /compact [要約の指示]
/resume 過去の会話セッションを選択し、選択した会話を再開(/clearと組合せて使用)
/rewind (checkpoint) コードや会話を以前のポイントに復元
/export 現在の会話をファイルまたはクリップボードにエクスポート

ステータス・診断

コマンド 説明
/status Claude Codeのステータス(バージョン、モデル、アカウント、API接続、ツールステータス)を表示
/context 現在のコンテキスト使用状況をカラーグリッドで表示
/cost 現在のセッションの合計コストと時間を表示
/doctor Claude Code のインストールと設定を診断・検証
/todos 現在のTODO項目を一覧表示
/release-notes Claude Codeのリリースノートを表示
/usage プランの使用制限を表示

Git管理

コマンド 説明
/review プルリクエストをレビュー
/pr-comments GitHubプルリクエストのコメントを取得
/security-review 現在のブランチの保留中の変更に対するセキュリティレビューを完了

設定・カスタマイズ

コマンド 説明
/agents エージェント設定を管理
/config (theme) 設定パネルを開く
/hooks ツールイベント用のフック設定を管理
/ide IDEと接続: エラーや警告をIDEから直接取得可能になり、より正確なコード理解が可能
/mcp MCPサーバーを管理
/model Claude CodeのAIモデルを設定
/output-style 出力スタイルを直接設定または選択メニューから設定(Default(簡潔な応答をするモード), Explantory(実装の選択肢や、コード設計について説明するモード), Learning(学習のために小さなコードを生成)
/plugin (plugins, marketplace) Claude Codeのプラグインを管理
/permissions (allowed-tools) ツールの許可・拒否ルールを管理
/statusline Claude CodeのステータスラインUI(画面下部の情報パネルのUI)を設定
/vim Vimモードと通常編集モードを切り替え

インストール・移行

コマンド 説明
/migrate-installer グローバルnpmインストールからローカルインストールへ移行
/terminal-setup 改行用のShift+Enterキー設定をインストール

その他

コマンド 説明
/help ヘルプと利用可能なコマンドを表示
/exit (quit) REPLを終了
/stickers Claude Codeステッカー(公式グッズ)のECサイトを表示

ショートカットキー

キー 説明
Esc × 2 /rewindを実行
Alt + m プランニングモード:plan mode自動承認モード:accept editsの切り替え

Claude Code効率化のコツ!役立つ実践Tips集🔧


おわりに

この記事ではClaude CodeとCLAUDE.mdによるClaude Codeのカスタマイズについて紹介しました。