はじめに
Claude Agent SDK (旧 Claude Code SDK) を利用してエージェントを作成していて、エージェントを既存と異なる設定ファイルで動かすために参照先を変更したにもかかわらず元のCLAUDE.md
を読み込んでしまうバグに遭遇したので、それを回避する目的で Claude Code の設定ファイルを移動する方法を調べました。
そもそも~/
直下に.claude/
, .claude.json
, .claude.json.backup
があるのはお行儀が悪いので、いい機会と思い~/.config/claude/
以下に動かしました。
Claude Code SDK から Claude Agent SDK へのアップデートで、デフォルトではCLAUDE.md
を読み込まないようになりました。そのためエージェントを使いたいというだけなら、設定ファイルの移動は不要になりました。
環境
- macOS Sonoma
- zsh
- Claude Code v1.0.123 (npmインストール)
方法
- 環境変数で
CLAUDE_CONFIG_DIR
を設定する
export CLAUDE_CONFIG_DIR=$HOME/.config/claude
-
~/.claude/
以下のファイル,.claude.json
,.claude.json.backup
を~/.config/claude/
以下に移動する - 適当なプロジェクト内で Claude Code を起動して再ログインをする
これで無事に移動が完了し、CLAUDE.md
や過去のセッションを読み込むことができました。
ccusage は設定ディレクトリを移動しても動くのか?
ccusageが動くのか不安でしたが、CLAUDE_CONFIG_DIR
を参照してくれるようです。
遭遇したバグの詳細
Claude Code を利用したエージェントを作成するにあたり、ユーザースコープのCLAUDE.md
を コーディングエージェントとしての Claude Code と共有したくないため、CLAUDE_CONFIG_DIR
を指定して設定を分離しようとしました。
しかし、CLAUDE_CONFIG_DIR
を設定しても、~/.claude/CLAUDE.md
が読み込まれているようでした。
そこで以下のコマンドで Claude Code を起動し、/context
で本当に~/.claude/CLAUDE.md
が読み込まれているのか確認することにしました。
$ env CLAUDE_CONFIG_DIR="$(pwd)/claude" claude
なぜか Project スコープとして、~/.claude/CLAUDE.md
が読み込まれていました。
そこで、npmにある Claude Code の Minify されたコードを手探りで読んだ結果、どうやら作業ディレクトリから遡って、.claude/CLAUDE.md
を Project Memory File として読み込んでいるようでした。
上記の通り設定ファイルを移動したら解決しました。