Tools
Claude Code の system prompt を書き換える方法
セッションごとの system prompt の有無と、ユーザーが注入・置換できる経路 (CLI フラグ / CLAUDE.md / output style) の一覧
要点: system prompt はセッションごとに存在するが、対話中に直接編集する手段はない。書き込みは起動時の CLI フラグ (--append-system-prompt / --system-prompt) のみ。CLAUDE.md は system prompt ではなく user message として注入される。
経路の一覧
| 経路 | system prompt に入るか | タイミング |
|---|---|---|
--append-system-prompt "text" | 入る (既定に追記) | 起動時。interactive と -p 両対応 |
--append-system-prompt-file <path> | 入る (ファイルから追記) | 同上 |
--system-prompt "text" / --system-prompt-file | 入る (全置換。既定の指示が消える) | 同上 |
~/.claude/CLAUDE.md, ./CLAUDE.md, ./CLAUDE.local.md | 入らない (user message として注入) | 起動時 |
/output-style (built-in: default, Proactive, Concise, Explanatory, Learning) | 入らない (指示として追加) | セッション中に切替可 |
| settings.json | 該当キーなし (systemPrompt キーは存在しない。outputStyle のみ) | — |
- subagent 用の追記:
--append-subagent-system-prompt(v2.1.205+)、--append-subagent-system-prompt-file(v2.1.261+)。どちらも-pのみ --exclude-dynamic-system-prompt-sections(-pのみ): 作業ディレクトリ等の機械固有部を system prompt から外し、prompt cache のヒット率を上げる
使い分け
- 恒常的なルール → CLAUDE.md (system prompt でなくても実用上は同等に効く。ただし文法上は user message なので保証はない。強制したい 1〜2 個は hook)
- そのセッション限りの役割指定 →
claude --append-system-prompt "..." - 既定の挙動ごと差し替えたいエージェント用途 →
--system-prompt-file(置換なので副作用大)
セッション中にできること
system prompt 自体は変えられない。代替:
/output-style <style>— 口調・形式の指示を切替/memory— CLAUDE.md を編集して再注入/config <key>=<value>— 設定の切替
関連
- Claude Code の context 注入層 — CLAUDE.md / hook / memory / skill のコストと使い分け
最終更新: