`.gitignore` のノリで `.claudeignore` を書いて秘密情報を保護した気になっていないか。**`.claudeignore` は Claude Code の公式機能ではない**(2026 年 5 月時点)。本稿は公式 Issue・The Register 報道を元に、Claude Code の ignore メカニズムの実態と、現実的に「読ませない」設計を整理する。
公式は `.claudeignore` を実装していない
`anthropics/claude-code` の Issue #29455 (Feature Request: `.claudeignore`) は 2026 年に入っても open のまま。同 #2305 / #5105 では「gitignored ファイルへのアクセスを許可してくれ」というむしろ逆方向の要望が議論されている。
The Register(2026-01-28)の検証ではさらに踏み込み、`.gitignore` に `.env` が入っていても Claude Code は `.env` を読めてしまうことを再現した。「ignore ファイルに書けば安全」は **誤解**。
実際の挙動
| ファイル | Claude Code の挙動 | |---|---| | `.gitignore` に `.env` | 読める(gitignore は git の話で、ファイルアクセス制御ではない) | | `.claudeignore` に `.env` | 公式機能ではないので無視される | | `settings.json` の `deny` | 効くはずだが、バグ報告あり(記事 1 参照) | | PreToolUse フック | 確実に効く | | Sandbox の `denyRead` | OS レベルで効く(Bash 系のみ) |
コミュニティ実装としての `.claudeignore`
公式機能でない代わりに、PreToolUse フックで `.claudeignore` 相当の挙動を再現する OSS が出ている。代表は **`li-zhixin/claude-ignore`**。仕組みは単純で:
1. `.claudeignore` を読む(gitignore シンタックス) 2. ファイルパスがマッチしたら exit 1 でブロック
導入したら必ず自分で「`.env` を `cat` する」「`Read(./.env)`」など複数経路で動作確認する。フックが当たらないツール(`Glob` でリストアップだけして中身を取らないなど)は別の対策で塞ぐ。
設計の原則
無料でアカウント作成
CCHub は Claude Code 開発者のための日本語コミュニティです。