是什么
output styles 通过修改 system prompt 改变 Claude 的角色、语气和输出格式,适用于需要固定特定响应风格的场景。与 CLAUDE.md 不同,output styles 改变 Claude 的行为方式,而非项目约定。
核心机制
内置风格
| 风格 | 行为 |
|---|---|
| Default | 标准软件工程助手 system prompt |
| Proactive | 立即执行,做合理假设,偏向行动而非规划(不改变权限模式) |
| Explanatory | 在完成任务的同时提供”Insights”,解释实现选择和代码模式 |
| Learning | 协作学习模式,添加 TODO(human) 标记让用户参与实现 |
切换方式
# 交互式菜单
/config → Output style
# 直接编辑 settings
{"outputStyle": "Explanatory"}保存到 .claude/settings.local.json(local project 级别)。
自定义 Output Style 创建 Markdown 文件,frontmatter 定义元数据,正文是添加到 system prompt 的指令:
---
name: Diagrams first
description: Lead every explanation with a diagram
keep-coding-instructions: true
---
When explaining code, architecture, or data flow, start with a Mermaid diagram...文件位置:
- User 级:
~/.claude/output-styles/ - Project 级:
.claude/output-styles/ - Managed policy:managed settings 目录下的
.claude/output-styles/
keep-coding-instructions 字段
true:保留 Claude Code 的软件工程指令,只改变沟通方式- 不设置/
false:完全替换,适合非软件工程场景(写作助手、数据分析等)
关键细节
- Output style 在 session 开始时写入 system prompt,session 内切换下次 session 才生效(保持 prompt cache 稳定)
- Proactive 风格等同于 auto mode 的行为指导,但不改变权限模式(仍有权限提示)
- 文件名成为风格名称,除非 frontmatter 中设置了
name字段
与其他概念的关联
- settings - output style 的配置位置
- permissions - Proactive 风格不改变权限,权限仍由 permissions 控制
实践要点
- 频繁需要相同格式(如总是要图表)时用 output style,而非每次重复提示
- 非编码场景(写作、分析):不设置
keep-coding-instructions,避免软件工程指令干扰 - 团队共享的 output style 放
.claude/output-styles/(提交到 git)