Code Mode は実験的な機能で、デフォルトではオフになっています。どのリリースでも変更または削除される可能性があります。フィードバックを送るには、
/feedback を実行してください。Code Mode の仕組み
Code Mode のセッションでも、タスクはこれまでどおりプロンプトで説明し、Claude がそれを実行するための JavaScript を書きます。1 つのコードで、コマンドを並列に実行し、ある結果を次の呼び出しで使い、出力のうち Claude が読む必要のある部分を返すことができます。 たとえば、再試行の上限を引き上げるよう Claude に依頼すると、Claude はファイルを見つけて編集し、テストを実行するために次のようなコードを書くことがあります。最後の行で、ファイルのパスとテストの出力を Claude に返します。Ctrl+O を押してトランスクリプトビューアを開きます。各コードはそこで折りたたまれた Code 行として表示され、展開方法のヒントが添えられています。
Code Mode を使う場面
Code Mode は、関連する多数のツール呼び出しを必要とするタスクで試してください。たとえば次のようなものです。- 多くのファイルにわたって繰り返される変更
- Claude が読む前に結果を絞り込む必要がある検索
- 同時に実行できる複数の独立したコマンド
Code Mode の制限事項
Code Mode をオンにする前に、次の制限を受け入れられるか確認してください。- 再開: Code Mode のセッションは、ターミナルで Code Mode をオンにした状態でのみ再開できます
- auto モード: auto モードの分類器は、各ツール呼び出しではなくコードをレビューします
- 長時間実行されるコード: コードをバックグラウンドで実行できる場合を除き、完了するまで待つ必要があり、コードは 10 分後に停止します
- フック:
PreToolUseフックが実行できない場合やタイムアウトした場合にツール呼び出しが拒否されることがあり、UserPromptSubmitフックによってコードの出力がブロックされることがあります - 利用できない機能: Remote Control、Claude in Chrome、computer use は使用できません
- セッションの移動: セッションを Desktop アプリに移動したり、バックグラウンドセッションに変えたりすることはできず、
/forkでバックグラウンドのコピーを開始することもできません
要件
- バージョン: Claude Code v2.1.323 以降(どちらのリリースチャネルでも可)。古いバージョンでは、理由
it isn't open to your account yetの表示の有無にかかわらず、Code Mode なしで起動します - アカウント: Claude のサブスクリプションまたは Console アカウント。ゲートウェイ、Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry を経由して Code Mode を使うことはできません
- 組織: 組織が HIPAA 構成やゼロデータ保持を使用していないこと
- モデル: Claude Opus 5.5、Sonnet 5.5、Haiku 5.5、または Fable 5.2
- サーフェス: ターミナルでの対話型の
claudeセッション。Code Mode は-p、Agent SDK、VS Code パネル、Desktop アプリ、クラウドセッションでは動作しません - インストール: Claude Code のネイティブビルド
- Windows: Git for Windows がインストールされていること
DISABLE_TELEMETRY など、一部の設定がオンになっている場合も Code Mode を開始できません。それぞれの対処方法については、Code Mode が起動しないを参照してください。
Code Mode を試す
Code Mode をオンにして Claude にタスクを与え、Claude が書いたコードを確認します。1
バージョンを確認する
claude --version を実行します。バージョンが v2.1.323 より古い場合は、claude update を実行します。stable チャネルを使用していて、更新しても v2.1.323 に達しない場合は、stable が追いつくのを待つか、latest に切り替えてください。2
Code Mode をオンにして Claude Code を起動する
環境変数
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE を 1 に設定します。Code Mode を試すには、シェルで設定します。すべての新しいセッションで Code Mode をオンにするには、ユーザー設定で設定します。- macOS, Linux, WSL
- Windows PowerShell
- settings.json
3
Code Mode を使うことを確認する
Claude Code は、最初の Code Mode セッションの前に確認を求めます。Yes, turn on Code Mode を選択します。Claude Code が再起動し、セッションの上部付近に次の行が表示されます。別の行が表示された場合や何も表示されない場合は、Code Mode が起動しないを参照してください。
4
多数のツール呼び出しを必要とするタスクを Claude に与える
よく知っているプロジェクトで、次のようなプロンプトを送信します。
5
Claude が書いたコードを読む
Ctrl+O を押して Code 行を展開すると、ツール呼び出しの背後にある JavaScript を確認できます。会話に戻るには、もう一度 Ctrl+O を押します。Code Mode をオフにする
シェルと~/.claude/settings.json から CLAUDE_CODE_EXPERIMENTAL_CODE_MODE を削除し、新しいセッションを開始します。変数を残したまま、どちらかの場所でその値を 0 に変更することもできます。一方の場所に 0 があれば、もう一方で 1 を設定していても Code Mode はオフのままです。
組織で Code Mode をブロックする
組織内の誰も Code Mode を使えないようにするには、管理設定に値0 の CLAUDE_CODE_EXPERIMENTAL_CODE_MODE を追加します。
0 が設定されている間は Code Mode のセッションを再開できません。管理設定からユーザーに対して Code Mode をオンにすることはできません。
権限と長時間実行されるコード
権限モードによって、Claude のコードがどのようにチェックされるか、またコードの実行中に Claude と会話できるかどうかが決まります。権限チェック
Claude のコードが行う各ツール呼び出しは、deny と ask の権限ルールおよび PreToolUse フックを通過します。Bash などのツールのルールや matcher を変更する必要はありません。ルールとフックに加えて、auto モードでは分類器がコードをレビューし、確認を求めるモードではプロンプトに応答します。
- auto モード: 分類器は、各ツール呼び出しではなく、実行前の各コードをレビューします。検索出力から取得したパスなど、実行時に計算される値は分類器には見えないため、制御する必要がある呼び出しにはルールやフックを残しておいてください。それでも、以前のコードの実行中に新しいコードが開始されると、プロンプトが表示されることがあります
- その他の権限モード: コードはレビューなしで開始され、そのモードでプロンプトが表示されるツール呼び出しごとにプロンプトが表示されます
REPL にマッチする PreToolUse フックを書き、tool_input.code から JavaScript を読み取ります。
長時間実行されるコード
コードが長時間のビルドやテストを実行している間、Claude はその完了を待つか、バックグラウンドで続行させます。- 待機: Claude はコードの完了後に応答し、コードは 10 分後に停止します(権限プロンプトで費やした時間を含みます)
- バックグラウンド: Claude との会話を続けることができ、コードは最大 2 時間実行できます
bypassPermissions モードでセッションを開始します。それでも Claude が待機する場合は、現在のモードとセッションの開始方法を確認してください。
- 別のモードに切り替えた場合: 開始時のモードに戻るまで
Shift+Tabを押します - 別のモードで開始した場合、または
claude --resumeのリストからセッションを選択した場合: auto モードが利用できる場合は、終了してから、Code Mode をオンにした状態でclaude --continue --permission-mode autoを実行します --toolsにツール名を渡した場合: そのフラグなしで auto モードで再度起動します
トラブルシューティング
Code Mode が起動しない
セッションの上部付近にCode Mode (experimental) isn't available と表示される場合、Claude Code は Code Mode なしで起動しています。理由は同じ行に続けて表示され、/status にも表示されます。次の表で理由を見つけて変更を行い、新しいセッションを開始してください。表にない理由の場合は、要件を確認してください。
Code Mode に関する行が何も表示されない場合は、
claude --version を実行します。バージョンが v2.1.323 より古い場合は更新してください。その後、シェルまたはユーザー設定で CLAUDE_CODE_EXPERIMENTAL_CODE_MODE が 1 になっていることを確認し、それらの場所と --settings ファイルから 0 をすべて削除してください。
カウントダウン付きの権限プロンプト
auto モードで、以前のコードがまだ実行中のときに Claude がさらにコードを開始すると、以前のコードは分類器によるレビューを失います。Claude Code は、以前のコードの残りの呼び出しのうちレビューが必要になるものについて確認を求めます。IDE が接続されていない場合、プロンプトにはカウントダウンが表示されます。フックによってツール呼び出しが拒否された
Claude がツール呼び出しの拒否を報告した場合は、エラーテキストを尋ねてください。次のエラーは、PreToolUse フックが判定を返さなかったことを意味し、onFailure が設定されていない場合でも呼び出しは拒否されます。
the hook failed: Claude のコードからの呼び出しで、フックが開始できなかった、強制終了された、126、127、または 128 を超えるコードで終了した、あるいは HTTP エラーや無効な出力を返しました。フックを修正してくださいthe hook did not finish: Claude のコードからの呼び出し、または Claude がセッション内でコードを実行した後のその他のツール呼び出しで、フックがタイムアウトしました。フックのtimeoutを引き上げてください
command または http フックが失敗またはタイムアウトしたときに呼び出しを続行させるには、そのフックに "onFailure": "continue" を設定します。command フックが 1 などの通常のコードで終了した場合、"onFailure": "block" を設定した場合を除き、呼び出しは続行されます。
フックによってコードの出力が保留された
Claude のコードからの出力を期待していたところで Claude がフックのブロック理由を報告した場合は、UserPromptSubmit フックを確認してください。コードをバックグラウンドで実行できる場合、そのイベントの command、http、mcp_tool フックはコードの出力に対しても実行されます。出力を通過させるには、入力の source が poll_event のときにブロックしないようにフックを変更してください。