Claude Codeの出力スタイルとは?設定と自作方法
Claude Codeの出力スタイルはシステムプロンプトを編集し、回答の役割や形式を変えます。組み込み5種類の違い、設定場所、v2.1.73で非推奨、v2.1.91で削除されたコマンド、自作方法を解説します。
Claude Code における出力スタイルとは
Claude Code の出力スタイルは、Claude Code がシステムプロンプトに追加する指示のまとまりです。Claude の回答方法、つまり担う役割と出力の形式を変更します。コードベースに関する知識を Claude に教えるものではなく、操作の実行を Claude に許可することもできません。
Claude Code には、組み込みのスタイルが 5 つあります。選択内容は 1 つの設定キー outputStyle に保存され、このキーはセッション開始時に 1 回だけ読み込まれます。この点が、この機能に関する混乱の多くを招きます。セッション途中で切り替えたスタイルは保存されますが、クリアするまで無視されるためです。
VPS では、これは単なる見た目の好みではありません。トランスクリプトは通常、tmux ウィンドウ内の SSH (secure shell) 接続を通じて読むものです。そのため、Claude が説明する各行は、待ち時間と、サイズが固定されたスクロールバックバッファ内の 1 行になります。
Output style 設定の保存場所
/config メニューの Output style でスタイルを選択します。Claude Code は、選択内容を作業中のプロジェクトの .claude/settings.local.json に書き込みます。
単独の /output-style コマンドは存在しません。v2.1.73 で非推奨となり、v2.1.91 で削除されたため、現在のビルドでは何も実行しません。古いガイドに従う前に、実行中のバージョンを確認してください。このページのバージョンは 2026 年 8 月に確認済みです。
claude --versionキーを手動で設定することもできます。このキーを保持できる設定ファイルは 4 つあり、範囲の狭い設定が広い設定より優先されます。
~/.claude/settings.jsonはユーザー設定ファイルです。そのマシン上のすべてのプロジェクトに適用されます。.claude/settings.jsonはプロジェクト設定ファイルです。git にコミットされるため、リポジトリを clone した全員に適用されます。.claude/settings.local.jsonはローカルプロジェクト設定ファイルです。コミットされず、上記 2 つの設定より優先されます。/configメニューが書き込むファイルです。- Linux の
/etc/claude-code/などのシステムパスから IT チームが配布する Managed settings は、他のすべての設定より優先されます。
キーの値にはスタイル名を指定します。
{
"outputStyle": "Concise"
}1 回のセッションだけ設定する場合は、同じキーをコマンドラインで渡します。--settings フラグにはパスまたはインライン JSON 文字列を指定できます。その値は、その実行中に設定ファイル内の同じキーを上書きします。
claude --settings '{"outputStyle": "Concise"}'この機能では、メニューのラベルと slash command がこれまでに少なくとも 1 回変更されています。outputStyle キーは変更されていません。ガイドのスクリーンショットと表示内容が一致しない場合は、キーを直接設定し、/status で有効な設定ソースを一覧表示して確認してください。
新しい出力スタイルがクリアするまで反映されない理由
Claude Code はセッション開始時に system prompt を 1 回作成し、出力スタイルもその system prompt に含めます。そのため、セッション実行中に設定を変更しても値が保存されるだけで、表示上の変化はありません。実行中のセッションは、起動時に作成した prompt を引き続き送信するためです。新しいスタイルは、次の /clear または次回の起動時に読み込まれます。
/clear
/context/context は、現在 context window を占有している内容をカテゴリ別に表示します。system prompt も含まれます。各スタイルで新しいセッションを開始して実行し、system prompt の行を比較の入力側として使います。カスタムスタイルが読み込まれたことを確認する最速の方法でもあります。context window を埋める要素全体については、長時間の Claude Code セッションで context が埋まる仕組みを参照してください。
設定が即時適用されず、待機するのには理由があります。API は、各リクエストの先頭部分が一致する prompt cache から同じリクエストへの応答を提供します。system prompt はリクエストの最初にあります。会話の途中でこれを書き換えると、その後ろにあるすべての内容が無効になり、次のターンで履歴全体を新しい入力として再処理する必要があります。セッション開始時にスタイルを固定すれば、このコストを避けられます。スタイルの切り替え自体は簡単です。clear が必要なだけです。
組み込みの各出力スタイルがトランスクリプトに与える変更
- Default は Claude Code の通常の system prompt です。ソフトウェアエンジニアリング向けに記述されています。
- Concise は結果を先に示します。前置きと手順ごとの説明を省き、詳細を求められるまで回答を短く保ちます。実行されるエンジニアリング作業は変わりません。エラーレポートやセキュリティ警告を短縮することはなく、破壊的な操作の前には完全な形で確認を求めます。このスタイルには Claude Code v2.1.237 以降が必要です。
- Explanatory は、タスクの手順の間に教育的な「Insights」を追加します。実装上の選択理由と、コードベースですでに使われているパターンを説明します。意図的にトランスクリプトが長くなります。
- Learning はさらに踏み込みます。Claude は Insights を共有したうえで、コードの小さな部分を自分で書くよう求めます。ファイル内の各箇所には
TODO(human)コメントを付けます。 - Proactive は質問する代わりに Claude が作業を進めるようにします。定型的な判断では妥当な仮定を置き、確認のために停止しません。
最後の項目は誤解されやすいため、注意して読んでください。Proactive は system prompt における指針です。Claude が試みる操作を変えます。ただし、確認なしで実際に実行される操作は permission mode が決定します。サーバーを無人で稼働させる場合に重要なのは、この設定です。詳しくは auto mode と Claude Code の permission mode を参照してください。
出力スタイルと CLAUDE.md、hook、subagent の違い
これらはすべて Claude の動作を指定する仕組みですが、適用される層が異なります。
- 出力スタイルは system prompt に追加されます。メインの会話におけるすべての応答に適用されます。
- CLAUDE.mdは system prompt の後に user message として追加されます。プロジェクトの規約やコードベースの事実を記載する場所です。
--append-system-promptは、内容を削除せずに、1 回の呼び出しに限って system prompt へテキストを追加します。出力スタイルの一時的な版です。- hookは、イベントが発生したときに Claude Code 自身が実行する shell command です。harness によって強制されるため、Claude が実行を選択するかどうかにかかわらず動作します。Claude Code の hook でできることとできないことを参照してください。
- subagentは、独自の system prompt と独自の tool set で実行されます。
短いテストで、最初の 2 つのどちらかを判断できます。プロジェクトに関する事実は、Claude が知る必要があるため、CLAUDE.md に記述します。表現は回答の読みやすさに関するものなので、出力スタイルに記述します。モデルの判断にかかわらず毎回実行する必要がある処理は、フックです。各機能がどのレイヤーに属するかは、モデル自体ではなく モデルを実行するプログラム の特性です。そのため、スタイルは影響を与えることしかできませんが、フックは強制できます。
出力スタイルが適用されるのはメインの会話だけです。subagent は独自の system prompt で新しい会話を開始するため、スタイルを継承しません。現在の会話の fork は例外で、親の system prompt をそのまま継承します。subagent の書き方が好みに合わない場合は、出力スタイルではなく、その agent のファイルを編集してください。同じマシン上で別の Claude Code session を起動した場合も、この境界は変わりません。起動時にその session 自身が設定ファイルを読み込むため、自分の session と並行して動作している別の session に作業を渡すと、その返信は自分のスタイルではなく、その session が読み込んだスタイルで返されます。
独自の出力スタイルの書き方
カスタム出力スタイルは、frontmatter を含む markdown ファイルです。ホームディレクトリの下に保存すると、すべてのプロジェクトで使用できます。リポジトリ内に保存すると、コードと一緒に管理できます。ユーザーディレクトリは ~/.claude/output-styles/、プロジェクトディレクトリは .claude/output-styles/ です。
mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---
Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.
Do not narrate what you are about to do. Report what you did.
When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOFセッションを開始し、/config を開きます。作成した説明とともに、スタイルが Output style の一覧に表示されます。表示されない場合は、ファイルが読み込まれていません。パスを確認し、--- の frontmatter ブロックがファイルの先頭にあることを確認してください。frontmatter で name を設定しない限り、ファイル名がスタイル名になります。そのため、このスタイルは Terse ops と呼ばれ、terse-ops ではありません。
これを選択するか、キーにその名前を正確に設定して、次を空にします。
{
"outputStyle": "Terse ops"
}ファイルが調整なのか置き換えなのかは、1 つのフィールドで決まります。keep-coding-instructions のデフォルト値は false です。つまり、カスタムスタイルを使用すると、Claude Code に組み込まれているソフトウェアエンジニアリングの指示が削除され、指定したテキストだけで動作します。組み込みの指示は、変更範囲の決定方法や作業結果の検証方法を Claude に伝えるものです。ライティングアシスタントやデータアナリストのように、これらの指示が必要ない場合は、このフィールドを省略してください。コードを扱う用途では true に設定してください。そうしないと、慎重なエンジニアが突然、自分の作業を確認しなくなった理由が分からなくなります。求めているものが別の文体ではなく、タスクにかける作業量の定義をより厳密にすることなら、それはスタイルファイルではなく、エンジニアリングの指示で扱うべきです。Ponytail skill はその実例です。動作する最小限の変更をエージェントに促す、1 つのルールで構成されています。
description は、/config の選択画面で名前の横に表示される行です。6 か月後に自分で作成した 2 つのスタイルから選ぶ場面を想定して記述してください。
SSH では簡潔なスタイルが異なる理由
VPS では、ローカル端末にはない複数の層を通して実行結果を読みます。各層では、出力量が増えるほど負担も増します。
最初はスクロールバックです。tmux では、各ペインが保持する行数が固定されており、history-limit で設定します。デフォルトは 2000 行です。説明の多い実行結果はこのバッファーを早く満たすため、セッションの前半が早く追い出され、後から確認したかった出力が消えます。余裕が必要なら、値を増やします。
echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.confこの設定後に作成したペインは、それぞれ 20000 行を保持します。ただし、ペインごとのメモリ使用量は増えます。すでに開いているペインは、作成時にバッファーサイズが固定されるため、古い上限のままです。セッションのレイアウトをまだ構築中であれば、VPS の tmux 内で Claude Code を実行する方法で詳しく説明しています。
次は遅延です。応答は生成されると同時に端末へストリーミングされます。往復遅延の大きい接続では、長い前置きを見ている間に時間を消費し、回答が表示されるまで待つことになります。
3 つ目は出力トークンです。説明の各行は出力として課金されます。Explanatory と Learning は、設計上、より長くなります。Concise は、デフォルトで応答を短くするよう Claude に指示するため、設計上、より短くなります。
このページを含め、誰かが示す割合をそのまま信用しないでください。差の大きさは、プロンプト、モデル、依頼する作業によって変わります。そのため、変更前と変更後を自分で測定してください。実際の同じタスクを新しいセッションで 2 回実行します。一方は Default、もう一方は Concise に設定して比較します。最も簡単な測定方法は statusline です。Claude Code は、スタイル名とトークン数の両方を含む JSON オブジェクトを stdin 経由でスクリプトに渡します。
cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.shstatusLine 設定で、そのスクリプトを指定します。
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}これでセッション下部のバーに、生成したトークン数とともにアクティブなスタイルが表示されます。必要な変更前と変更後を正確に比較できます。このスクリプトにはコマンドライン JSON パーサーの jq が必要です。最初に sudo apt install -y jq でインストールしてください。バーが空のままなら、スクリプトを手動で実行し、JSON をパイプで渡します。statusline が 0 以外で終了すると、何も表示せず、何も報告しないためです。Claude Code のカスタム statuslineでは、このオブジェクトに含まれるその他のフィールドを説明しています。セッションではなく課金について確認する場合は、Claude Code のトークンが実際に送られる先とClaude Code の利用額を追跡するツールを参照してください。
実際に読み込まれている出力スタイルを確認する方法
推測せず、次の確認を実行します。
/statusは、このセッションで有効な設定のソースを一覧表示します。組織が管理する設定が適用されているかどうかも確認できます。/contextは、コンテキストウィンドウの内訳で、読み込まれた system prompt をカテゴリとして表示します。claude doctorは、セッションを開始せずに shell から実行します。インストールと設定の診断情報を表示し、無効な設定ファイルも報告します。
スタイルが適用されない原因は、ほぼ次の2つのいずれかです。1つ目は、セッションの途中でスタイルを変更したことです。その場合は /clear を実行します。2つ目は優先順位です。.claude/settings.local.json は .claude/settings.json を上書きし、両方とも ~/.claude/settings.json を上書きします。/config の picker はローカルファイルに書き込むため、チームが .claude/settings.json にコミットしたスタイルは、誰かが以前にメニューを使用したマシンでは静かに上書きされます。どのソースが優先されたかは /status で確認できます。
JSON の構文エラーでも同じ症状が発生しますが、対処方法は異なります。claude doctor は解析できなかったファイル名を示します。より複雑な原因を調べる前に実行すると効率的です。
FAQ
/output-style コマンドが動作しなくなったのはなぜですか?
v2.1.73 で非推奨になり、v2.1.91 で削除されたためです。そのため、2026 年半ばのビルドでは、このコマンドは存在しません。claude --version を実行して、使用中のバージョンを確認してください。Output style の /config からスタイルを選ぶか、設定ファイルで outputStyle キーを設定します。このキーはコマンドよりも長く利用できるため、キーを直接設定する方法を自分のメモに記録しておく価値があります。
出力スタイルを変更しましたが、何も変わりません。なぜですか?
出力スタイルはシステムプロンプトの一部であり、Claude Code はセッション開始時にシステムプロンプトを 1 回だけ構築します。セッション途中で行った変更は保存されますが、適用されません。実行中のセッションは、起動時に構築したプロンプトを使い続けるためです。/clear を実行するか、新しいセッションを開始してください。それでも適用されない場合は、/status を実行して、どの設定ソースが優先されたかを確認してください。.claude/settings.local.json は .claude/settings.json を上書きし、両方とも ~/.claude/settings.json を上書きします。
Concise 出力スタイルを使うと費用を節約できますか?
Concise は、Claude にデフォルトで短い応答を返すよう指示するため、想定どおり出力トークン数を減らす方向に働きます。削減量はプロンプトとモデルによって異なるため、公表されている割合は他者の作業に対する測定値として扱ってください。自分の環境で測定するには、新しいセッションで各スタイルを使って /context を実行し、入力側を確認します。次に、各スタイルで同じタスクを実行し、出力トークン数を比較してください。Concise はエラーレポートやセキュリティ警告を短縮しないため、特に読む必要がある部分は省略されません。
出力スタイルによって、subagent の書き方は変わりますか?
いいえ。出力スタイルはメインの会話にのみ適用されます。subagent は独自のシステムプロンプトと独自のツールセットを使って、別の会話を開始するためです。例外は現在の会話の fork です。fork は親のシステムプロンプトをそのまま継承します。subagent の応答方法を変更するには、その agent 自身のファイルを編集してください。
出力スタイルを使うと、Claude は確認なしでコマンドを実行できますか?
いいえ。出力スタイルはシステムプロンプト内のテキストであり、Claude が実行しようとする処理に影響を与えるだけです。Proactive スタイルは、通常の判断で停止せず、Claude が前提を置いて処理するよう促しますが、コマンドの承認はできません。確認なしで実行できる処理は permission mode によって決まります。サーバー上でセッションを実行したままにする前に、確認すべき設定はこれです。