Claude Code output styleの切り替えは/configで行う
Claude Codeのoutput styleは/configから切り替えます。旧output-styleコマンドは削除済みで、組み込み4種の使い分けと自作手順を解説します。
Claude Codeのoutput styleは/configから切り替えます。かつて専用コマンドだった/output-styleはv2.1.91で削除済みで、検索で出てくる手順が古いままのことがあります。本稿では現行の切り替え手順と、組み込み4種類のスタイルの使い分け、カスタムスタイルの自作方法までを扱います。
Output styleとは何か
Output style(出力スタイル)はClaude Codeのシステムプロンプトを直接書き換える機能です。役割・トーン・出力形式を変えられます。Claude Code全体の機能構成や導入方法はClaude Code(クロードコード)の全体像を解説したガイドにまとめています。
似た機能にCLAUDE.mdや--append-system-promptがありますが、仕組みが違います。CLAUDE.mdはシステムプロンプトの後にユーザーメッセージとして情報を追加するだけで、Claudeの基本的な振る舞いは変わりません。--append-system-promptはシステムプロンプトに追記するだけで、既存の指示は一切外れません。output styleはシステムプロンプトそのものを書き換える点が、この2つと違います。
output styleを切り替えると、Claudeの応答スタイルが根本から変わります。コードを書く前に必ず説明を挟むようになったり、逆に判断を止めずにどんどん実行するようになったりします。会話中はスタイルに従うようリマインドが繰り返し挟まれます。CLAUDE.mdや--append-system-promptとの使い分けは、記事後半の早見表で比較します。
組み込み4スタイルの使い分け
Claude Codeには組み込みのoutput styleが4つあります。Default・Proactive・Explanatory・Learningです。
Defaultは標準のソフトウェアエンジニアリング向けスタイルで、追加設定なしで使われている挙動です。特別な設定は要りません。Explanatoryはコーディング作業の合間に教育的な「Insights」を挟み、なぜそう実装したかを説明しながら進めます。Learningは協調的な「learn-by-doing」形式で、コード中にTODO(human)マーカーを挿入し、一部の実装を利用者自身にやらせます。
Proactiveは判断のたびに立ち止まらず、妥当な前提を置いて即座に実行し、計画より行動を優先するスタイルです。auto modeより強い自律実行のガイダンスですが、権限モード自体は変えません。つまりProactiveに切り替えてもツール実行前の許可プロンプトは変わらず表示されます。「自律的に動くがパーミッションは求める」という、auto modeとは別軸の挙動です。
| スタイル | 何をするか | 向くシーン |
|---|---|---|
| Default | 何をするか標準的なエンジニアリング作業 | 向くシーン通常の開発全般 |
| Proactive | 何をするか判断を止めず即実行、計画より行動優先 | 向くシーン定型作業を素早く回したいとき |
| Explanatory | 何をするか作業の合間に教育的な解説を挟む | 向くシーン実装意図を学びながら進めたいとき |
| Learning | 何をするかTODO(human)で実装の一部を利用者に委ねる | 向くシーンペアプログラミング的に手を動かして学びたいとき |
トークン消費量はスタイルによって変わります。システムプロンプトに指示を足すと入力トークンは増えますが、セッション内2回目以降のリクエストはプロンプトキャッシュが効くためコスト増は抑えられます。ExplanatoryとLearningは仕様上Defaultより長い応答を返すため、出力トークンはこちらが増えます。
/configから切り替える手順
現行の切り替え手順は/configを開き、Output styleの項目を選ぶことです。選択結果はプロジェクトのローカル設定ファイル(.claude/settings.local.json)に保存されます。
/config対話メニューを開かずに直接指定したい場合、v2.1.181以降は/configにkey=value形式で値を渡せます(設定可能なキーの一覧は/config --helpで確認できます)。/settingsは/configの別名です。
設定ファイルのoutputStyleキーを直接編集する方法もあります。
{
"outputStyle": "Explanatory"
}設定の優先順位はManaged(組織管理)> コマンドライン引数 > Local > Project > Userの順です。
outputStyleはほとんどのキーと違い、セッション開始時に1回だけ読み込まれます。切り替えた直後にすぐ挙動が変わらなくても、それは不具合ではなく仕様です。反映させるには/clearを実行するか、セッションを再起動します。
かつて存在した/output-styleコマンド
output style専用の/output-styleコマンドはv2.1.73で非推奨化され、v2.1.91で削除されました。現行のコマンド一覧には存在しません。/configへの一本化の理由は、プロンプトキャッシュの効率化です。output styleはシステムプロンプトの一部で、セッション開始時にスタイルを固定することでキャッシュのヒット率を保つ設計です。
この移行より前の時期には、output style自体が一度非推奨化されたこともあります。v2.0.30で機能自体が非推奨化され、--system-prompt-fileや--append-system-prompt、CLAUDE.md、プラグインへの移行が案内されました。しかしコミュニティの反応を受け、v2.0.32で撤回されています。
/output-styleを過去に使ったことがある人がいまだにこのコマンドを打つと、コマンドとして認識されません。このコマンドはすでに存在しません。/configを使ってください。
| 時期 | コマンド・仕様 | 状態 |
|---|---|---|
| v1.0.81〜 | コマンド・仕様/output-styleコマンドで直接切り替え | 状態かつての標準手順 |
| v2.0.30 | コマンド・仕様output style機能自体を非推奨化、代替手段への移行を案内 | 状態一時廃止 |
| v2.0.32 | コマンド・仕様コミュニティの反応を受けて非推奨化を撤回 | 状態復活 |
| v2.1.73 | コマンド・仕様/output-styleを非推奨化、/configへの移行を案内 | 状態移行期 |
| v2.1.91 | コマンド・仕様/output-styleコマンドを削除 | 状態現行 |
| 現行 | コマンド・仕様/configメニュー、またはoutputStyle設定キーの直接編集 | 状態現行 |
カスタムoutput styleの作り方
組み込みの4種で足りない場合、自分でoutput styleを作れます。実体はMarkdownファイルで、ファイル名がそのままスタイル名になります(frontmatterのnameで上書き可能)。
配置場所は3階層あります。
- ユーザースコープ:
~/.claude/output-styles(全プロジェクト共通) - プロジェクトスコープ:
.claude/output-styles(リポジトリ単位) - 管理ポリシースコープ: 組織の管理設定ディレクトリ内の
.claude/output-styles(組織一括配布)
frontmatterで使えるキーは4種類です。
| キー | 役割 | 既定値 |
|---|---|---|
name | 役割スタイル名(未指定ならファイル名を継承) | 既定値ファイル名 |
description | 役割/configのメニューに表示される説明文 | 既定値なし |
keep-coding-instructions | 役割Claude Codeの組み込みソフトウェアエンジニアリング指示を残すか | 既定値false |
force-for-plugin | 役割プラグイン専用。プラグイン有効化と同時に強制適用するか | 既定値false |
keep-coding-instructionsは既定でfalseです。カスタムスタイルを作ると、組み込みのソフトウェアエンジニアリング指示(変更範囲の決め方・コメントの書き方・検証手順など)が外れます。外れた分、書いた本文がシステムプロンプトの末尾に追加される仕組みです。コードレビューやドキュメント作成専用のスタイルのように、コーディング作業の指示が不要ならこのままでよいでしょう。通常のコーディング作業に指示を足したいだけなら、trueにして組み込み指示を維持します。
force-for-pluginはプラグイン配布専用のキーで、プラグインを有効化した利用者に自動でそのスタイルを適用します。利用者が明示的に選ばなくても効くため、通常のユーザー設定より優先されます。複数の有効化済みプラグインが同時にこのキーを設定していた場合は、最初に読み込まれたプラグインのスタイルが優先されます。プラグイン提供のoutput styleに対するkeep-coding-instructions対応の経緯は、v2.1.94のリリースノートで扱っています。
最小限のカスタムスタイル例
---
name: Code Reviewer
description: レビュー観点での指摘のみを返すスタイル
keep-coding-instructions: false
---
あなたはコードレビュアーです。実装は行わず、指摘事項を箇条書きで返してください。このファイルを.claude/output-styles/code-reviewer.mdとして保存すると、/configのOutput styleメニューに「Code Reviewer」として表示されます。
ネストしたプロジェクト設定の優先順位
モノレポや複数階層のディレクトリで作業していると、.claude/output-styles/が複数の階層に存在することがあります。階層が増えるほど起きやすい問題です。プロジェクトスコープのoutput styleは、作業ディレクトリからリポジトリルートまでの間にあるすべての.claude/output-styles/ディレクトリから読み込まれます。
v2.1.178以降、同名のスタイルが複数階層で見つかった場合は作業ディレクトリに一番近いものが優先されます。たとえばリポジトリ直下に.claude/output-styles/reviewer.mdがあり、サブディレクトリにもpackages/api/.claude/output-styles/reviewer.mdという同名ファイルがあるとします。packages/api配下で作業していれば、後者が使われます。
この仕様は同じv2.1.178でエージェントとワークフローにも適用されており、Claude Codeのネスト設定全体で「近い方が勝つ」という規則に統一されています。詳しい経緯はv2.1.178のリリースノートにまとめています。
よくあるつまずき
切り替えたのに反映されない
outputStyleはセッション開始時に1回だけ読み込まれる設定で、切り替えてもプロンプトキャッシュは無効化されません。画面上は何のエラーも警告も出ないため、失敗したのか反映待ちなのか区別しづらいのがこの症状の厄介なところです。対処は/clearかセッション再起動です。
サブエージェントに反映されない
output styleはメイン会話にのみ適用されます。サブエージェントは自分自身のシステムプロンプトで動くため、メイン会話でスタイルを切り替えてもサブエージェントの応答は変わりません。例外はforkで、これは親のシステムプロンプトをそのまま引き継ぐため、親のoutput styleの影響を受けます。
管理ポリシーと個人設定が競合しているときの見分け方
/configで選び直したはずのスタイルが、次のセッションで元に戻ることがあります。設定の優先順位はManaged(組織管理)>コマンドライン引数>Local>Project>Userの順で、管理ポリシースコープにoutputStyleが固定されていると個人の選択より優先されるためです。管理設定ディレクトリのsettings.jsonにoutputStyleが書かれていないか確認します。
/configのピッカーにdescriptionが出ない場合
/configのOutput styleメニューにファイル名しか並ばず、説明文が空欄のスタイルがあります。descriptionは既定値が「なし」のキーで、frontmatterに書かなければ表示されません。メニューでの見分けやすさを重視するなら、カスタムスタイルにはdescriptionを明記します。
関連機能との使い分け早見表
output styleはCLAUDE.mdや--append-system-prompt、Agents、Skillsと役割が重なって見えますが、動き方も向くシーンも別物です。中身を並べると違いは明確です。
| 機能 | どう動くか | 向くシーン |
|---|---|---|
| Output styles | どう動くかシステムプロンプトを直接書き換える。カスタムスタイルは既定で組み込みのコーディング指示を外し、指示を反映する | 向くシーンターンごとに役割・トーン・出力形式そのものを変えたい |
| CLAUDE.md | どう動くかシステムプロンプトの後にユーザーメッセージを追加する | 向くシーンプロジェクトの規約やコードベースの文脈を常に知らせておきたい |
--append-system-prompt | どう動くかシステムプロンプトに追記する(既存指示は残る) | 向くシーン1回の起動だけ一時的に指示を足したい |
| Agents | どう動くか独自のシステムプロンプト・モデル・ツールを持つサブエージェントを起動する | 向くシーン特定タスクに閉じたヘルパーが欲しい |
| Skills | どう動くか呼び出し時・関連時にタスク固有の指示を読み込む | 向くシーン再利用可能なワークフローとして持ちたい |
判断の起点は「常に効かせたいか、その場限りか」です。プロジェクト全体の前提知識ならCLAUDE.md、応答そのものの性格を変えたいならoutput style、1回きりの追加指示なら--append-system-prompt、と役割が分かれます。設定ファイル全体の管理はClaude Codeの設定を体系的に扱ったガイドも参照してください。
まとめ
Claude Codeのoutput style自体は一度非推奨化されてすぐ撤回された経緯こそありますが、現在は廃止された機能ではありません。変わったのは切り替え手段だけで、/output-styleコマンドから/configメニューへ移行しました。組み込みはDefault・Proactive・Explanatory・Learningの4種類です。カスタムスタイルは3階層のディレクトリに配置でき、同名スタイルが競合する場合は作業ディレクトリに近い方が優先されます。切り替えてもすぐ反映されない、サブエージェントには効かない、といった挙動はいずれも仕様です。/configとの一本化の背景はv2.1.73のリリースノートで扱っています。
よくある質問
keep-coding-instructionsはtrueとfalseのどちらを選べばよいですか
コードレビューやドキュメント作成専用のスタイルのように、コーディング作業の指示そのものが不要なら既定のfalseのままで問題ありません。通常のコーディング作業に自分の指示だけを上乗せしたい場合は、trueにして組み込み指示を残す構成が向いています。迷ったらtrueから試し、応答が冗長すぎると感じたらfalseに切り替える運用が安全です。
Learningが挿入するTODO(human)を残したままコミットしてよいですか
公式ドキュメントはTODO(human)をコミット前に消すよう明示していません。ただし、これは実装の一部を利用者に委ねるためのマーカーなので、残したままコミットすると未実装箇所が伝わらないままレビューに回ってしまいます。コミット前にマーカーが残っていないか確認する運用が無難です。
非対話モード(-p)やCI実行でoutput styleは効きますか
公式ドキュメントは-pモードでの挙動を明記していません。output styleはセッション開始時に読み込まれるシステムプロンプトの一部で、-pやCI実行も内部的には新しいセッションとして扱われるため、設定したoutputStyleは通常のセッションと同様に適用されると考えられます。
プラグインが強制適用するスタイルを止めるにはどうすればいいですか
公式ドキュメントに専用の無効化手順は示されていません。force-for-pluginはプラグインが有効な間だけ適用される設定なので、該当プラグインを無効化すれば通常のoutputStyle設定に戻ります。
カスタムスタイルが/configのメニューに出てこないときどこを見ればよいですか
まず配置場所を確認します。ユーザースコープ(~/.claude/output-styles)、プロジェクトスコープ(.claude/output-styles)、管理ポリシースコープのいずれでもない場所に置くと、/configのメニューには表示されません。プロジェクトスコープは作業ディレクトリからリポジトリルートまでの間にあるディレクトリしか読み込まれないため、その範囲より外側に置いた場合も同様です。拡張子が.mdになっているかもあわせて確認します。