Claude Codeでローカル固有の情報をメモリで扱う方法
こんにちは。サービス開発室の武田です。
Claude Codeで開発していて、プロジェクトローカルなメモリ(CLAUDE.md)が欲しいなと思ったことはないでしょうか?大丈夫です、作れます!
ユースケース
たとえばAWS環境へアクセスする際にawsume
を普段使っているとします。その場合awsume foo-dev && aws sts get-caller-identity
とすることで、foo-dev
で定義されたプロファイルを使用してAWS CLIを実行できます。ただしMFAを設定している場合は、次の記事のように事前設定が必要になります。
さて、そうした場合にawsume
を使うかどうかは個人の環境の話ですし、プロファイル名も同様です。そのためこの情報はリポジトリにはコミットしにくいです(メンバー全員で統一するとかならいいけど)。
またグローバルメモリ(~/.claude/CLAUDE.md
)に追記するという方法もありますが、リポジトリやシチュエーションごとに羅列するのはいかにもメンテナンス性が悪そうです。というわけで、こういうケースではローカルメモリがあるととても助かります。
追加手順
手順は次の3ステップです。
- ローカルメモリファイルを作成
.gitignore
に追加- プロジェクトメモリにインポート追記
ローカルメモリファイルを作成
さて、最初のステップとしてローカルメモリを作成します。このファイル名は特に制限がありません。./CLAUDE.local.md
というファイルも使用できるようなのですが、現在は非推奨となっています。ちなみにこのファイルですが、 プロジェクト配下 に置いておくのがお勧めです。最初ホームディレクトリに置いてみたのですが、自動でファイルを読み込んでくれませんでした。おそらく権限の問題などにより制限されているのでしょう(明示的にファイル読み込んでと指示すれば読み込みました)。
たとえば次のようなプロンプトを与えるといいでしょう。
.claude/project.local.md としてプロジェクトローカルファイルを作成してください。
AWSのdev環境へアクセスする場合は`awsume foo-dev &&`、prod環境へアクセスする場合は`awsume foo-prod &&`を付けるようにしてください。
そうすると、私の環境では次のようなファイルが作成されました。
# foo プロジェクト固有設定
## AWS環境へのアクセス
AWS開発環境にアクセスする際は、必ず以下のプレフィックスを使用すること:
```bash
awsume foo-dev && <コマンド>
\```
例:
- AWS CLI: `awsume foo-dev && aws s3 ls`
- CDKデプロイ: `awsume foo-dev && npx cdk deploy -- --context environment=dev`
本番環境の場合:
```bash
awsume foo-prod && <コマンド>
\```
.gitignore
に追加
このファイルは固有の情報を含んでいるため、リポジトリ管理対象外としましょう。たとえば次のように追記すればOKです。
.claude/*.local.*
このディレクトリにはsettings.local.json
なども置かれるため、一括で除外しておくと楽です。
- プロジェクトメモリにインポート追記
最後に、CLAUDE.md
にインポートを追記しましょう。注意点としてコードブロックなどでくくってしまうと読み込まないようですので、そのままパスを書く必要があります。
# 個人設定
- @~/.claude/project.local.md
- 確認
読み込まれたかどうかのチェックもしておきましょう。再起動して、新しいセッションを始めます。その後/memory
コマンドを実行しましょう。次のように表示されれば成功です!
Memory Files
L user: ~/.claude/CLAUDE.md
L project: CLAUDE.md
L .claude/project.local.md
まとめ
ローカル固有の情報をClaude Codeに与えたくなったらこの方法をぜひ試してみてください!