Claude Media
Claude CodeのmaxProseWidthで地の文の幅を制限する

Claude CodeのmaxProseWidthで地の文の幅を制限する

ワイドターミナルで伸びきる地の文の幅をmaxProseWidthで区切る。表とコードブロックは対象外で、v2.1.282以降が対象。

maxProseWidthでできること

maxProseWidthは、Claude Codeの応答に含まれる地の文の幅を、ターミナルの実際の横幅とは別に指定できるsettings.jsonのキーです。段落・見出し・箇条書き・引用は指定した桁数で折り返されますが、表とコードブロックはこの制限を受けず、ターミナル幅いっぱいのまま表示されます。v2.1.282で追加された設定で、それより前のバージョンでは効果がありません。

対象になる場面はシンプルです。フルスクリーンのターミナルや、200桁を超えるワイドモニター、あるいは複数ペインを開いたtmux・iTerm2のセッションでClaude Codeを動かすと、地の文が画面の端から端まで一直線に伸びます。1行が長くなるほど視線移動が大きくなり、行の折り返し位置を目で追い直す負荷が増えます。maxProseWidthはこの負荷を、表やコードの一覧性を犠牲にせずに下げるための設定です。

エディタやブラウザは本文の最大幅を固定して読みやすさを保つのが一般的ですが、ターミナルにはその考え方がありませんでした。maxProseWidthは、Claude Codeの応答表示という限られた範囲にこの考え方を持ち込んだ設定です。

設定方法

~/.claude/settings.json(ユーザー単位)、プロジェクト直下の.claude/settings.json、.claude/settings.local.json、組織が配布するmanaged設定のいずれにも書けます。公式リファレンスはこの4種類をまとめて「Any file」スコープと呼んでおり、maxProseWidthもこの区分に含まれます。個人の好みで変えたいだけなら、チーム共有の.claude/settings.jsonではなく~/.claude/settings.jsonに置くのが扱いやすい構成です。

settings.jsonの記述例
{
  "maxProseWidth": 80
}

値は「ターミナルの列数」を表す整数です。最小値は40で、40未満の値や整数でない値を指定してもClaude Codeはその値を無視します。既定値は未設定で、未設定のときは従来どおりターミナルの端まで地の文が伸びます。設定した値を外して元の挙動に戻したいときは、値を書き換えるのではなくキー自体を設定ファイルから削除します。

複数の設定ファイルに書いたときの優先順位

maxProseWidthは「Any file」スコープなので、ユーザー設定・共有プロジェクト設定・プロジェクトローカル設定・managed設定のどこにでも書けます。同じキーが複数のファイルにあるときは、Claude Codeの設定優先順位に従い、高い階層の値が低い階層の値を上書きします。優先順位は高い順に、①managed設定 ②起動時のコマンドライン引数(--settings)③.claude/settings.local.json(プロジェクトローカル)④.claude/settings.json(チーム共有のプロジェクト設定)⑤~/.claude/settings.json(ユーザー設定)です。maxProseWidthはfallbackModelやmodelPickerのようにリストをまるごと入れ替える特別扱いのキーではなく、通常どおり最上位の値だけが有効になります。

コマンドライン引数で1セッションだけ値を変えたいときは、claude --settings '{"maxProseWidth": 100}'のように起動時に渡します。この値はmanaged設定の次に高い優先順位を持つため、.claude/settings.jsonや~/.claude/settings.jsonに書いた値より優先されます。ただし--settingsはその1回のセッション限りで、設定ファイルには書き込まれないので、次回のセッションでは元の値に戻ります。毎回同じ値を使いたいのであれば、コマンドライン引数ではなく設定ファイルに書いておくほうが手間がかかりません。

具体的な場面で確認します。自分の~/.claude/settings.jsonにmaxProseWidth: 80を設定していても、チームの.claude/settings.jsonが同じキーを100に設定していれば、そのプロジェクトでは100が使われます。ユーザー設定より共有プロジェクト設定のほうが優先順位が高いためです。個人の好みを維持したい場合は、そのプロジェクトの.claude/settings.local.jsonにもmaxProseWidth: 80を書き足します。プロジェクトローカル設定は共有プロジェクト設定よりさらに上位にあるため、自分のセッションだけ元の値へ戻せます(設定ファイルの優先順位の全体像はClaude Code settings.json完全ガイドにまとめてあります)。

組織のmanaged設定でmaxProseWidthを配布すると、ユーザー設定・共有プロジェクト設定・プロジェクトローカル設定・コマンドライン引数のどれで上書きしようとしても効きません。managed設定は優先順位の最上位にあるためです。全社のスクリーンショットやレコーディングで地の文の折り返し位置を統一したい、といった運用上の理由でmanaged設定に含めるケースが考えられますが、変更したい個人は管理者に相談する以外に手段がありません。

この「managed設定は下位から上書きできない」という原則には例外があり、公式ドキュメントはdisableClaudeAiConnectors・enableArtifact・isolatePeerMachines・crossSessionInbound・maxEffortLevelなど、セッションの挙動を制限する少数のキーに限って、下位のファイルからより厳しい値を指定すればmanaged設定より優先されると定めています。maxProseWidthはこの例外キーの一覧には含まれていないため、managed設定が配布した値が常にそのまま適用されます。

表とコードブロックは対象外という設計

maxProseWidthが制御するのは地の文だけです。公式リファレンスは、段落・見出し・箇条書き・引用がこの桁数で折り返される一方、表とコードブロックはターミナルの全幅を保つと明記しています。表を折り返すと列の対応が崩れて読みにくくなり、コードブロックを折り返すと構文の対応関係が読み取りづらくなるため、この2つだけ例外にする設計です。

つまりmaxProseWidth: 80を設定しても、diffの表示やJSON設定の全文提示、比較表の出力は従来どおりターミナル幅いっぱいに広がります。制限の対象は長い説明文で、構造化データの見た目は変わりません。

どんな幅を選ぶか

具体的にいくつを指定すべきかは公式に決まった推奨値があるわけではなく、好みと画面サイズ次第です。目安として、一般的な英文タイポグラフィでは1行あたり60〜80字前後が読みやすい範囲とされることが多く、maxProseWidthもこのあたりの値にするのが無難です。ただしmaxProseWidthの単位はあくまで「ターミナルの列数」であり、日本語1文字は等幅フォントで英数字2文字分の幅を占めるのが一般的です。同じmaxProseWidth: 80でも、日本語主体の応答は英語主体の応答よりも1行に収まる文字数が少なくなる点は踏まえておくとよいでしょう。

利用シーン目安の値理由
フルスクリーンの単一ペイン目安の値80〜100理由一般的な可読幅に収まりつつ表・コードは全幅のまま
ウルトラワイドモニターで常時全画面目安の値80前後理由200桁超のまま読ませると視線移動が大きくなりすぎる
tmux・iTerm2で複数ペインに分割目安の値未設定のまま理由ペイン自体が既に狭く、追加の制限が不要なことが多い
画面共有・ペアプログラミング目安の値80〜100理由相手のモニターサイズが分からないため保守的な値が安全

よくあるつまずき

  • 40未満を指定しても反映されない: 公式リファレンスは40未満の値や整数でない値を「無視する」と明記しています。反映されないときはまず数値そのものを疑います。
  • 表やコードブロックまで狭くなると思い込む: maxProseWidthは地の文だけが対象です。長いコード例や比較表の見た目を変えたい場合、この設定では実現できません。
  • バージョンを確認していない: maxProseWidthはv2.1.282以降の機能です。それより古いClaude Codeでは設定自体は書けても効果が出ません。claude --versionでインストール済みのバージョンを先に確認します。バージョンが古い場合は、自動更新を待つか手動でアップデートしてから再度設定を見直します。
  • チーム設定に書いて全員へ強制する: プロジェクト共有の.claude/settings.jsonに書くと、そのプロジェクトを開く全員の地の文幅が変わります。個人の好みであれば~/.claude/settings.jsonに留めるほうがトラブルが少なくなります。
  • 環境変数で切り替えようとする: modelキーに対するANTHROPIC_MODELのような、設定ファイルの値を横から上書きする専用の環境変数はmaxProseWidthには存在しません。ホスト側でターミナル幅を動的に変えるような運用をしたい場合でも、変更手段は設定ファイルの書き換えかコマンドライン引数の--settingsに限られます。
  • 設定したのに反映されない: 値を書いたファイルより優先順位の高い場所で同じキーが設定されていると、そちらが勝ちます。/statusを実行すると、Claude Codeが実際に読み込んだ設定ファイルの一覧を確認できるので、まずどのファイルが優先されているかをここで見ます。設定を反映させたいファイルを/statusの表示で特定してから書き換えれば、無駄な試行錯誤を減らせます。
  • JSON全体が壊れていて読み込まれない: maxProseWidthに40未満の値を入れてもそのキーだけが無視されるだけですが、カンマ抜けなどでJSON構文自体が壊れていると、ファイル単位で読み込みが失敗しmaxProseWidthを含む他のキーごと効かなくなります。この場合はセッション開始時にClaude Codeが表示するエラーダイアログから修正するか、claude doctorで詳細を確認します。ダイアログでは、その場でClaudeに手直しさせるか、壊れた設定を無視したまま続行するかを選べます。

関連する設定と合わせて使う

ターミナルの見た目に関わる設定はmaxProseWidthだけではありません。公式の設定リファレンスもmaxProseWidthを「Interface and terminal」というグループに分類しており、配色や通知など他の表示系の設定と同じ並びに位置します。配色はthemeコマンドやClaude Codeカラーテーマで調整でき、地の文の幅と組み合わせることで、ワイドモニターでの長時間作業がさらに読みやすくなります。設定ファイルの構成やキーの一覧はClaude Code settings.json完全ガイドにまとめてあります。

まとめ

maxProseWidthは、ワイドターミナルで地の文だけを読みやすい幅に区切るための小さな設定です。表とコードブロックは対象外でターミナル幅のまま、値は40以上の整数のみ有効、v2.1.282以降が必須という3点を押さえれば設定ミスは防げます。ウルトラワイドモニターや画面共有での作業が多い人は、~/.claude/settings.jsonに80前後の値を一度置いてみてください。設定後に反映されないと感じたら、まずはインストール済みバージョンと数値の下限を疑うところから確認していきましょう。

この記事を共有:XはてブLinkedIn