Claude CodeのcopyFullResponseとprStatusFooterEnabledの使い方
/copyのコードブロック選択ピッカーを消すcopyFullResponseと、フッターのPRバッジを消すprStatusFooterEnabled。どちらも~/.claude.jsonのキーで、settings.jsonでは効きません。
Claude Codeの/copyが毎回コードブロックの選択画面を出してうるさい、フッターのPRバッジが要らない。この2つはどちらも、~/.claude.jsonに書く真偽値のキーで切り替えられます。copyFullResponseをtrueにすると/copyは選択画面なしで応答の全文をコピーし、prStatusFooterEnabledをfalseにするとフッターのPR・MRバッジが消えます。
落とし穴は保存先です。2つともsettings.jsonに書いても無視されます。
2つのキーは~/.claude.jsonにしか書けない
公式のリファレンスでは、両キーのスコープがGlobal configと分類されています。~/.claude.jsonに保存するキーで、.claude/settings.jsonや~/.claude/settings.jsonに書いても無視されます。settings.jsonを書き込む前提で「プロジェクトの設定ファイルでチームに配る」ことはできません。
| キー | 型 | 既定値 | /configの表示名 |
|---|---|---|---|
copyFullResponse | 型真偽値 | 既定値false | /configの表示名Skip the /copy picker |
prStatusFooterEnabled | 型真偽値 | 既定値true | /configの表示名Show PR status footer |
~/.claude.jsonは、サインイン情報やMCPサーバー設定なども入る、Claude Code自身が書き込むファイルです。この2つのキーは/configのメニューからも変更でき、手で編集することもできます。手で書く場合の形は次のとおりです。
{
"copyFullResponse": true,
"prStatusFooterEnabled": false
}すでに他のキーが入っているファイルでは、既存の内容を消さずに、この2行を同じ階層のオブジェクトへ追記します。
/configには/config thinking=falseのようにkey=valueで直接指定する書き方もあります。受け付けるキーの一覧は/config --helpで確認できます。ここで扱う2つは、メニューの表示名で選ぶ方が迷いません。
/config --help/copyのピッカーを出さずに全文をコピーする
/copyは直前のアシスタント応答をクリップボードへコピーするコマンドです。/copy 2のように数字を渡すと、2つ前の応答をコピーします。応答にコードブロックが含まれていると、既定では選択画面(ピッカー)が開き、コードブロックを1つだけ選ぶか、応答の全文を選ぶかを決めます。ピッカーの中でwを押すと、選んだ内容をクリップボードではなくファイルへ書き出せます。SSH越しのときに便利な機能です。
copyFullResponseはこのピッカーを飛ばすためのキーです。
true:/copyは選択画面を出さず、常に全文をコピーするfalse(既定): コードブロックを含む応答では、コードブロックまたは全文を選ぶ画面が出る
ピッカーを一度も設定せずにtrueにする方法のほかに、ピッカー側から切り替える経路もあります。ピッカーの選択肢にある「Always copy full response」を選ぶと、Claude Codeがこのキーをtrueにします。つまり「一度だけ全文をコピーした」つもりで選んだ場合でも、以後の/copyはずっとピッカーなしになります。
個別のコードブロックだけをコピーしたくなったら
trueにすると、コードブロック1つだけを選んでコピーする操作は/copyから消えます。ピッカーのwによるファイル書き出しも、ピッカーごと出なくなります。戻したいときは~/.claude.jsonの該当行をfalseにするか、/configの「Skip the /copy picker」をオフにします。
trueのまま断片だけ欲しいときは、/copy以外の経路を使います。フルスクリーン表示やエージェントビューでマウス選択すると、copyOnSelect(既定true)によって選択を終えた時点でクリップボードへ入ります。会話全体をファイルに残したいなら/export ファイル名が使えます。
使い分けの目安は次のとおりです。
| 普段の使い方 | 向く設定 |
|---|---|
| 応答を丸ごとメモやチャットへ貼る | 向く設定true |
| 応答からコマンドやコードの断片だけを取り出す | 向く設定false(既定) |
| SSH先で使い、ファイルへ書き出したい | 向く設定false(ピッカーのwが使える) |
/copyの文字化けや、マウス選択でコピーできない問題は、このキーとは別の原因です。文字化けの仕組みはClaude Codeの/copyで日本語が文字化けする原因と対処法に、GNOME Terminalでの不達はClaude CodeがGNOME Terminalでコピーできない原因と回避策にまとめています。
フッターのPRバッジを消す
Claude Codeは、現在のブランチにオープンなプルリクエスト(GitLabではマージリクエスト)があると、プロンプトのフッターにバッジを出します。GitHubなら「PR #446」、GitLabなら「MR !N」の形で、クリックできるリンクです。色付きの下線が状態を示します。
| 下線の色 | GitHubのPR | GitLabのMR |
|---|---|---|
| 緑 | GitHubのPR承認済み | GitLabのMRGitLabがマージ可能と報告 |
| 黄 | GitHubのPRレビュー待ち | GitLabのMRその他のオープン状態 |
| 赤 | GitHubのPR変更要求あり | GitLabのMR(該当なし) |
| グレー | GitHubのPRdraft | GitLabのMRdraft |
プルリクエストやマージリクエストがマージまたはクローズされると、バッジは消えます。色の意味の詳しい扱いや更新の頻度はClaude Code PRレビューステータスの見方(GitHub/GitLab)にあります。
falseにするとバッジだけでなく確認自体が止まる
prStatusFooterEnabledをfalseにすると、フッターのバッジが出なくなるだけではありません。Claude Codeはプルリクエストとマージリクエストの確認そのものを行わなくなります。バッジの表示だけを隠す設定ではなく、その裏で走る確認も止める設定です。
同じ効果は、環境変数CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを設定したときにも起きます。公式には、この変数を設定するとClaude CodeはPR・MRの状態を確認しない、とあります。通信を絞りたい環境ではこちらを使えます。
例外が1つあります。エージェントビューからアタッチしたセッションでは、falseでもそのセッションにリンクされたプルリクエストへの単純なリンクが出ることがあります。フッターのバッジとは別の表示です。
エージェントビューの一覧に出る番号ラベルは別物
エージェントビュー(claude agents)では、セッションがプルリクエストを開くと、行の右端に#1234のようなラベルが付きます。GitLabのマージリクエストなら!1234です。フッターのバッジと同じ「PR表示」に見えますが、仕組みも色の意味も違います。
| 色 | エージェントビューでの状態 |
|---|---|
| 黄 | エージェントビューでの状態チェックやレビューの待ち、またはチェック失敗 |
| 緑 | エージェントビューでの状態チェックが通り、レビューの妨げがない |
| 紫 | エージェントビューでの状態マージ済み |
| グレー | エージェントビューでの状態draftまたはクローズ |
フッターはマージやクローズでバッジごと消えますが、エージェントビューのラベルは紫やグレーで残ります。紐づけ方にも決まりがあります。ghでPRを編集・コメント・クローズ・ready化したときは、コマンドの出力に出たPRにリンクします。gh pr checkoutやブランチへのpushではgh pr viewでブランチを引き、そのオープンなPRにリンクします。push後にPRを作る場合も、同じディレクトリで最大5回の後続コマンド(git・gh・glab・curl)の間、探し直してくれます。
gh pr mergeは対話ターミナルにしか結果を出さないため、出力からはPRが特定されず、リンクが作られません。複数のPRに紐づくセッションでは3 PRsのように件数表示になり、色は最も対応が必要なPRのものです。SSHやtmuxではハイパーリンク対応を検出できなくてもリンクを出すため、プレーンテキストにしたいときはFORCE_HYPERLINK=0を設定します。
このラベルは一覧の並びにも効きます。オープンなPRを持つセッションはReady for reviewのグループへ移り、完了済みの折りたたみ(… N more)にも入りません。絞り込み欄に#123かPRのURLを入れると、そのPRに取り組むセッションの行だけが残ります。新しくエージェントを起動するときも、同じPRを扱うセッションが既にあれば、重複して起動せずその行が選ばれます。
バッジが出ないときは設定より先に認証を疑う
true(既定)のままバッジが出ないときは、GitHubのトークンを確認します。github.comではGH_TOKENかGITHUB_TOKEN、またはgh auth loginで保存されたトークンが要ります。トークンが見つからないと、フッターには次のヒントが出ます。
ghCLIが未インストール:install gh for PR status- インストール済みで未認証:
gh auth login for PR status
GitHub EnterpriseをGH_HOSTで指定している場合は、GH_ENTERPRISE_TOKENかGITHUB_ENTERPRISE_TOKEN、またはgh auth login --hostname <host>で保存したトークンを使います。それ以外のGitHubホストでは、トークンが無いとバッジもヒントも出ません。「ヒントすら出ない」ときはホストの種類を確かめてください。
同じ~/.claude.jsonに書く仲間のキー
copyFullResponseとprStatusFooterEnabledは、Global configに分類されるキー群の一部です。同じ保存先のキーは、settings.jsonへ書いても同様に無視されます。現行の公式リファレンスに載っているのは次の10個です。
| キー | 効果 | 既定値 | /configの表示名 |
|---|---|---|---|
autoConnectIde | 効果外部ターミナルで起動したとき、実行中のIDEへ自動接続 | 既定値false | /configの表示名Auto-connect to IDE (external terminal) |
autoInstallIdeExtension | 効果VS Codeのターミナルから起動したときIDE拡張を自動導入 | 既定値true | /configの表示名Auto-install IDE extension |
claudeInChromeDefaultEnabled | 効果毎回--chromeなしでChrome連携をオンで起動 | 既定値未設定(オフ) | /configの表示名Claude in Chrome enabled by default |
copyOnSelect | 効果マウス選択の完了時にクリップボードへコピー | 既定値true | /configの表示名Copy on select |
defaultToAgentsView | 効果引数なしのclaudeでエージェントビューを開く | 既定値false | /configの表示名Open agents view by default |
diffTool | 効果IDE接続時の差分表示先("auto"か"terminal") | 既定値"auto" | /configの表示名Diff tool |
externalEditorContext | 効果Ctrl+Gのエディタに直前の応答を#コメントで表示 | 既定値false | /configの表示名Show last response in external editor |
leftArrowOpensAgents | 効果空のプロンプトで←を押すとエージェントビューへ | 既定値true | /configの表示名← opens agents |
一部のキーには、1セッションだけ上書きする手段があります。autoConnectIdeは環境変数CLAUDE_CODE_AUTO_CONNECT_IDE、autoInstallIdeExtensionはCLAUDE_CODE_IDE_SKIP_AUTO_INSTALL=1、claudeInChromeDefaultEnabledは--chromeと--no-chromeが、キーの値より優先されます。恒久設定を書き換えずに一度だけ挙動を変えたいときに向きます。本記事の2キーには、この種の上書き手段は公式に載っていません。ただしprStatusFooterEnabledの確認停止は、前述の環境変数CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICでも同じ結果になります。
残る2つが本記事の2キーです。表示名は、IDEやフルスクリーンなど条件を満たしたときだけメニューに現れるものがあります。permissionExplainerEnabled(v2.1.257で削除)とteammateDefaultModel(v2.1.234で削除)は、書いても現行バージョンでは何も起きません。
キーが効かないと感じたら、リファレンスの索引でScope列がGlobal configになっていないかを先に見ます。この分類のキーはリポジトリ側のファイルからは適用されず、~/.claude.jsonだけが有効です。
設定を切り替える手順
/configを使う方法が一番ずれにくい手順です。
- Claude Code内で
/configを実行し、Configタブを開く - 「Skip the /copy picker」または「Show PR status footer」を選んで切り替える
- 反映を確かめる。
/copyはコードブロックを含む応答を出させたうえで実行し、バッジはPRのあるブランチに切り替えて確かめる
ファイルを直接編集する場合は、~/.claude.jsonを開き、上の2行を追記します。壊れたJSONで保存すると、Claude Codeは起動時に構成エラーとして扱い、壊れたファイルを~/.claude/backups/へコピーしたうえで、手で直すか初期設定へ戻すかを尋ねます。編集前に手元でバックアップを取っておくと安全です。
設定全般の使い分けや、/configのkey=value形式はClaude Codeのconfigコマンドでkey=value設定を直接変更するで扱っています。
症状別の切り分け
| 症状 | 見る場所 |
|---|---|
settings.jsonに書いたのに/copyのピッカーが出る | 見る場所キーを~/.claude.jsonへ移す |
| 全文しかコピーされず、コードブロックを選べない | 見る場所copyFullResponseがtrueになっていないか(ピッカーで「Always copy full response」を選んだ可能性) |
| PRバッジが出ない(ヒントあり) | 見る場所ghのインストールとgh auth login |
| PRバッジが出ない(ヒントもなし) | 見る場所prStatusFooterEnabled、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC、GitHubホストの種類 |
| バッジが出るのにPRが更新されない | 見る場所変更をgit pushしたか、PRが既にマージ済みでないか |
copyFullResponseが知らないうちにtrueになっている点が、実際に迷いやすい部分です。ピッカーの選択肢の1つが、そのまま恒久設定になる作りだからです。ピッカーが急に出なくなったら、まず~/.claude.jsonを開いて値を見ます。
まとめ
copyFullResponseはピッカーを省略して全文をコピーし、prStatusFooterEnabledはPR・MRバッジと確認処理を止めます。どちらも~/.claude.json専用のキーで、settings.jsonに書いても効きません。変更は/configのメニューが確実で、ファイルへ直接書くときはバックアップを取ってから追記します。