Claude Codeの除外設定方法|.claudeignoreは公式機能ではない

AI・自動化

オフィスの執務デスクにAIアシスタントを招き入れる様子を想像してみてください。目の前にある「今すぐ見てほしい企画書」と一緒に、「給与明細や秘密鍵のメモ(.env)」や「過去数年分の辞書や領収書が詰まった巨大ダンボール箱(node_modules / .venv)」まで机いっぱいに広げてしまえば、AIは情報過多で混乱し、動作速度が落ち、回答の精度も下がってしまいます。

除外設定とは、AIアシスタントに対して「ここから先は見る必要のないバックヤード」「この金庫には絶対に触らないで」という適切な立入禁止テープを貼る、最も基本的かつ強力なコンテキスト最適化技術です。

.claudeignore というファイル名で検索してこの記事にたどり着いた方に、まず結論をお伝えします。2026年現在の公式仕様において、.claudeignore という名前のファイルは Claude Code のネイティブ機能として存在しません。不要ファイルの除外や機密情報の読み取り遮断は、.claude/settings.json の permissions.deny と、respectGitignore を使うのが唯一の公式推奨ルートです。

本記事を読むことで、以下の3大ベネフィットが3分でスッキリ理解できます。

  • .claudeignoreが使えない理由と正しい代替手法: なぜコミュニティの俗説が広まったのか、公式の permissions.deny 設計
  • フレームワーク別コピペ設定レシピ: React/Next.js、Python、WordPress、Go/Rustで即座に使える設定テンプレート
  • コンテキスト節約と機密漏洩防止の鉄則: トークン消費を抑え、回答精度を劇的に向上させる実践トラブルシューティング
図解: Claude Code 公式推奨の除外設定・2重防御フロー

スポンサーリンク

Claude Code で不要ファイルを除外する公式ルートとは?

まず大前提として、.claudeignore を Claude Code の設定ファイルとして配置しても、CLI側はそれを単なる無関係なテキストファイルとして無視します。公式ドキュメントで定義されている正式な除外手段は、次の2つです。

  • .claude/settings.json の permissions.deny で、特定パスの読み取りを強制ブロックする
  • respectGitignore を有効化し、ファイルピッカーが .gitignore の除外ルールを尊重するようにする

この2つを正しく組み合わせることで、不要なトークン消費を抑えつつ、.env や秘密鍵(*.pem)のような機密ファイルを物理的にブロックできます。


permissions.deny の基本設定と respectGitignore の使い方

公式ルートで除外を設定する場合、プロジェクトルート直下の .claude/settings.json に読み取り拒否ルールを記述します。最小の標準構成は以下の通りです。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Read(./node_modules/**)",
      "Read(./dist/**)",
      "Read(./coverage/**)"
    ]
  }
}

permissions.deny で最優先にブロックすべき対象

  • .env や secrets/: APIキーやDBパスワードなど機密情報の誤読取を防止
  • node_modules/ や .venv/: 膨大な容量でトークンを浪費し、解析価値がない依存ライブラリ
  • dist/ や coverage/: ビルド生成物やテスト計測結果によるノイズを遮断

respectGitignore の役割と注意点

respectGitignore は、Claude Code の @ ファイルピッカーが .gitignore を参照するための設定です。すでに Git 運用で除外しているビルド生成物があるなら、そのルールを流用できます。ただし、機密ファイルの保護まで .gitignore に依存するのは危険です。機密ファイルは必ず permissions.deny で明示的に止めるのが鉄則です。


除外すべきファイル・ディレクトリの分類表

分類代表パターン除外すべき理由
依存ライブラリnode_modules/, .venv/容量が数万行に及び、AIのコンテキストを圧迫するため
ビルド成果物dist/, build/, out/生成物はコードから再現可能であり、ノイズになるため
テスト生成物coverage/, *.lcovテスト実行ごとの差分が検索精度を下げるため
キャッシュ・ログ*.log, .cache/時系列ノイズでAIの回答ブレを招くため
機密ファイル.env, *.pemセキュリティ漏洩リスクを未然に遮断するため

プロジェクト環境別の即戦力設定レシピ

お使いの開発環境に合わせて、以下のブロックを .claude/settings.json の permissions.deny にそのままコピペして利用できます。

1. React / Next.js / TypeScript

"Read(./node_modules/**)",
"Read(./.next/**)",
"Read(./out/**)",
"Read(./dist/**)",
"Read(./coverage/**)",
"Read(./.env*)"

2. Python (FastAPI / Django / データ分析)

"Read(./.venv/**)",
"Read(./__pycache__/**)",
"Read(./.pytest_cache/**)",
"Read(./.mypy_cache/**)",
"Read(./htmlcov/**)",
"Read(./*.pyc)",
"Read(./.env*)"

3. WordPress(テーマ / プラグイン開発)

"Read(./wp-content/cache/**)",
"Read(./wp-content/uploads/**)",
"Read(./node_modules/**)",
"Read(./dist/**)",
"Read(./vendor/**)",
"Read(./*.log)",
"Read(./.env)"

プロジェクト全体の運用方針を明文化する際は、CLAUDE.md ファイル内で「どのディレクトリを読むべきか/読まないか」を明記しておくと、チーム開発やサブエージェント運用時の再現性が格段に高まります。


.gitignore と permissions.deny の役割分担

.gitignore は Git のバージョン管理対象を制御する設定であり、permissions.deny は Claude Code の思考・読み取りコンテキストを制御する設定です。目的が異なるため、以下の表のように使い分けましょう。

比較項目.gitignorepermissions.deny
主目的Gitコミット対象の制御AIの読み取り・推論対象の制御
影響範囲Gitリポジトリの差分管理AIの回答精度・トークン消費・機密保護
設定のコツ差分管理の最小化ノイズ排除と誤読取の物理的遮断
除外設定の役割分担図解

よくある設定ミスとトラブルシューティング

ミス1:除外したはずのファイルをAIがまだ参照してしまう

原因: permissions.deny のパス記述が浅く、ワイルドカード(/**)が漏れているか、既存セッションのメモリに過去の読み取り結果が残っています。
解決策: "Read(./node_modules/**)" のように末尾まで階層をカバーし、設定変更後は一度 /compact またはセッションを再起動してください。

ミス2:除外設定を広げすぎて必要なコードまで読まれない

原因: src/ や app/ などの配下に不要ファイルがあるからといって親ディレクトリごと deny に入れたり、.gitignore に広すぎるパターンを指定してしまっています。
解決策: まずは .env と node_modules/ だけをブロックする最小構成からスタートし、必要に応じてピンポイントで追加してください。


よくある質問(FAQ)

Q1. .claudeignore ファイルをリポジトリ内に作って置いておくと何か不具合は起きますか?

直接的なエラーにはなりませんが、Claude Codeからは単なる普通のテキストファイルとして扱われるため、除外効果は一切発揮されません。「除外されている」と思い込んで機密情報を放置してしまう重大な誤解を招くため、作成せずに公式の .claude/settings.json を使用してください。

Q2. Gitで追跡していない大容量CSVやデータセットを除外するには?

.claude/settings.json に "Read(./data/raw/**)" や "Read(./datasets/**)" のように追加するのが最も確実です。これにより、数万行に及ぶ巨大ファイルがAIの推論コンテキストに流れ込み、トークン上限やAPIコストが急騰するトラブルを確実に防げます。

Q3. サブエージェント(Subagents)を実行した際もこの除外設定は有効ですか?

はい、有効です。プロジェクトレベルの .claude/settings.json に定義された permissions.deny ルールは、親エージェントだけでなく起動されたすべてのサブエージェントにも同一の制約として適用されます。

Q4. 一時的に除外フォルダ内の1ファイルだけをAIに見せたいときは?

チャット入力時に @./path/to/file で直接メンションして呼び出すか、一時的にそのファイルのみ作業ディレクトリにコピーして渡す運用がスムーズです。


あわせて読みたい:Claude Code 活用実践シリーズ

CLAUDE.md 書き方完全ガイド|テンプレート・サンプル付き【2026年】
CLAUDE.md の書き方を知りたい方へ。Claude Code を使い始めた頃、セッションのたびに同じ指示を繰り返す非効率さに悩んでいました。「またコーディング規約を説明するのか」「またプロジェクト構成を伝えるのか」。そんな問題を根本か...
Claude Code vs GitHub Copilot比較【2026年最新】
Claude Code vs GitHub Copilot、どちらを選べば開発効率が上がるのか悩んでいませんか。筆者は Claude Code をメインツールとして日常的に活用しており、両者の特性の違いを身をもって体感してきました。この記事...
Cowork 設定方法とエージェントチームの作り方【2026年】
Cowork 設定方法を知りたいけれど、どこから始めればいいか分からない——そんな方のために、この記事では Claude Code の Agent Teams(Cowork)の有効化から、エージェントチームの作成・役割定義・タスク管理・メッ...
【完全ガイド】Gemini Sparkの使い方と活用法|Gemとの違いからMac版・自動化スキルまで解説
「Gemini Sparkの使い方が知りたい」「従来のGemと何が違うの?」とお悩みではありませんか?例えるなら、従来の対話型AI(Gem)が「電話口で的確な助言をくれる優秀な相談役」だとすれば、自律型AIエージェント「Gemini Spa...

まとめ

Claude Codeで快適かつ安全なコーディング環境を作るためには、正しい除外設定が不可欠です。

  1. .claudeignoreは非公式: ネット上の古い俗説に惑わされず、公式仕様に準拠する。
  2. permissions.denyを活用: .claude/settings.json で機密情報と巨大依存ファイルを明示的にブロック。
  3. respectGitignoreと併用: .gitignore と連動させつつ、二重防御でコンテキストを最適化。

不要なファイルをしっかり除外してクリーンなコンテキストを維持し、Claude Codeの圧倒的な開発スピードを存分に体験してください。

あわせて読みたいおすすめ書籍

Claude Codeをさらに深く使いこなしたい方には、以下の書籍がおすすめです。

コメント