概要

Cursor はプロジェクトのコードベースを読み取り・インデックス化して機能を提供する。ルートディレクトリの .cursorignore ファイルで、Cursor がアクセスできるディレクトリやファイルを制御できる。 Cursor は .cursorignore に記載されたファイルへのアクセスを次からブロックする:
Agent が開始するツール呼び出し(terminal や MCP サーバーなど)は、 .cursorignore の対象となるコードへのアクセスをブロックできない

なんでファイルを無視するの?

セキュリティ: APIキー、クレデンシャル、シークレットへのアクセスを制限。Cursorは無視対象のファイルをブロックするけど、LLMの予測不能性のために完全な保護が保証されるわけじゃない。 パフォーマンス: 大規模なコードベースやモノレポでは、関係ない部分を除外してインデックスを高速化し、ファイル発見の精度を上げよう。

グローバル無視ファイル

ユーザー設定で全プロジェクト共通の無視パターンを設定して、プロジェクトごとの設定なしで機密ファイルを除外できる。
Global Cursor Ignore List
デフォルトのパターンは次のとおり:
  • 環境ファイル: **/.env, **/.env.*
  • 資格情報: **/credentials.json, **/secrets.json
  • 鍵: **/*.key, **/*.pem, **/id_rsa

.cursorignore の設定

ルートディレクトリに、.gitignore の構文で .cursorignore ファイルを作成しよう。

パターン例

config.json      # 特定のファイル
dist/            # ディレクトリ
*.log            # 拡張子
**/logs          # 入れ子のディレクトリ
!app/            # 無視ルールの否定(無視しない)

階層的な無視

親ディレクトリの .cursorignore を検索するには、Cursor Settings > Features > Editor > Hierarchical Cursor Ignore を有効にしてね。 メモ: コメントは # で始まるよ。後に書かれたパターンが前のパターンを上書きするよ。パターンはファイルの位置を基準にした相対指定だよ。

.cursorindexingignore でインデックスを制限する

.cursorindexingignore を使うと、インデックス化からのみファイルを除外できる。これらのファイルは AI 機能からは引き続きアクセスできるけど、コードベース検索には表示されない。

デフォルトで無視されるファイル

Cursor は .gitignore と、以下のデフォルトの無視リストにあるファイルを自動的に無視する。.cursorignore では ! を先頭につけてオーバーライドできる。

否定パターンの制限

否定パターン(先頭に !)を使う場合、親ディレクトリが * で除外されていると、その配下のファイルを再度含め直すことはできない。
# public フォルダ内のすべてのファイルを無視
public/*

# ✅ これは動作する(ファイルがトップレベルにあるため)
!public/index.html

# ❌ これは動作しない — ネストされたディレクトリ内のファイルは再包含できない
!public/assets/style.css
回避策: ネストされたディレクトリを明示的に除外する:
public/assets/*
!public/assets/style.css # このファイルは参照できるようになる
除外されたディレクトリはパフォーマンスのために走査されないため、配下ファイルへのパターンは効果がない。
これは、ネストされたディレクトリにおける否定パターンの .gitignore の挙動と一致する。詳しくは gitignore パターンに関する公式 Git ドキュメント を参照。

トラブルシューティング

git check-ignore -v [file] でパターンをテストしてみよう。