Claude Code 输出样式
输出样式(Output Style)让你可以定制 Claude Code 的交互风格和响应方式,使其适配软件开发之外的更多使用场景,同时保留运行本地脚本、读写文件、跟踪待办事项等核心功能。
其本质是通过修改系统提示(System Prompt),改变 Claude Code 的交互逻辑和响应风格。
内置输出样式
Claude Code 提供 3 种开箱即用的输出样式:
| 样式名称 | 适用场景 | 核心特点 |
|---|---|---|
| 默认样式(default) | 日常软件工程任务 | 专注高效完成编码、调试、重构等工作,回复简洁直接 |
| 解释性样式(explanatory) | 边做边学场景 | 在完成任务的同时讲解实现思路、设计模式等知识点,适合想深入理解代码的开发者 |
| 学习样式(learning) | 主动实践式学习 | 与你协作完成任务,会在关键位置添加 TODO(human) 标记,引导你亲手实现核心代码片段,而不是直接给出答案 |
工作原理
切换输出样式时,Claude Code 会按以下规则调整系统提示:
- 所有样式都会移除默认的"简洁回复、高效输出"等约束指令
- 自定义样式默认会剔除"用测试验证代码"等编码相关指令(如需保留,可在样式文件中开启
keep-coding-instructions: true) - 每种样式会在系统提示末尾追加自定义规则,覆盖默认行为
- 对话过程中会触发合规检查,确保 Claude 始终遵守当前样式的指令
切换输出样式
切换样式有两种方式,配置保存在项目目录的 .claude/settings.local.json 文件中,仅对当前项目生效:
方式一:菜单选择——输入命令后,在交互菜单中选择目标样式:
/output-style
方式二:直接指定——在命令后直接加上样式名称,一步到位:
/output-style explanatory
/output-style learning
/output-style default
除了使用命令切换,也可以直接编辑
.claude/settings.local.json(项目级)或~/.claude/settings.json(全局级)文件,修改outputStyle字段的值来切换样式。
创建自定义输出样式
如果内置样式不满足需求,可以通过 Markdown 文件定义专属样式。
1、文件保存位置
| 级别 | 保存路径 | 作用范围 |
|---|---|---|
| 用户级别 | ~/.claude/output-styles/ |
当前用户的所有项目均可使用 |
| 项目级别 | .claude/output-styles/(项目根目录下) |
仅当前项目可用,可提交到 git 与团队共享 |
2、文件格式
自定义样式文件由两部分组成:顶部的 YAML frontmatter(元数据配置)和下方的 Markdown 正文(具体指令内容)。
实例
---
name: data-analyst # 样式名称,显示在 /output-style 菜单中(未填则使用文件名)
description: 专注将复杂数据转化为可视化报告和分析结论
# 样式描述,显示在菜单的说明文字中(可选)
keep-coding-instructions: false # 是否保留默认编码相关指令
# false(默认):剔除编码指令,适合非开发场景
# true:保留编码指令,同时叠加自定义规则
---
# 角色定位
你是一个专业的数据分析助手,擅长使用 Python 处理各类结构化数据,
并将复杂数据转化为简洁易懂的可视化报告。
## 响应规则
1. 所有分析必须包含「结论 + 数据支撑 + 优化建议」三部分
2. 生成代码时必须附带详细注释,优先使用 Pandas 和 Matplotlib
3. 避免专业术语堆砌,用通俗语言解释复杂概念
## 格式要求
1. 结论部分加粗显示
2. 代码块使用 ```python 标签包裹
3. 建议部分使用有序列表呈现
## 特殊场景
1. 遇到缺失数据时,主动提示用户补充关键信息,而非直接报错
2. 生成可视化图表时,默认使用中文标签和浅色主题
name: data-analyst # 样式名称,显示在 /output-style 菜单中(未填则使用文件名)
description: 专注将复杂数据转化为可视化报告和分析结论
# 样式描述,显示在菜单的说明文字中(可选)
keep-coding-instructions: false # 是否保留默认编码相关指令
# false(默认):剔除编码指令,适合非开发场景
# true:保留编码指令,同时叠加自定义规则
---
# 角色定位
你是一个专业的数据分析助手,擅长使用 Python 处理各类结构化数据,
并将复杂数据转化为简洁易懂的可视化报告。
## 响应规则
1. 所有分析必须包含「结论 + 数据支撑 + 优化建议」三部分
2. 生成代码时必须附带详细注释,优先使用 Pandas 和 Matplotlib
3. 避免专业术语堆砌,用通俗语言解释复杂概念
## 格式要求
1. 结论部分加粗显示
2. 代码块使用 ```python 标签包裹
3. 建议部分使用有序列表呈现
## 特殊场景
1. 遇到缺失数据时,主动提示用户补充关键信息,而非直接报错
2. 生成可视化图表时,默认使用中文标签和浅色主题
3、frontmatter 参数说明
| 参数名 | 是否必填 | 说明 | 默认值 |
|---|---|---|---|
name |
否 | 样式名称,显示在 /output-style 菜单中。未填则使用文件名(不含 .md 后缀) |
文件名 |
description |
否 | 样式功能的简要描述,显示在菜单的说明文字中,帮助区分多个自定义样式 | 无 |
keep-coding-instructions |
否 | 是否保留默认系统提示中的编码相关指令。设为 true 时,自定义指令会叠加在默认编码指令之上 |
false |
4、使用步骤
- 按上述格式创建
.md文件(例如data-analyst.md) - 将文件放到对应目录:
- 所有项目可用:
~/.claude/output-styles/data-analyst.md - 仅当前项目可用:
.claude/output-styles/data-analyst.md
- 所有项目可用:
- 在 Claude Code 中执行
/output-style,即可在菜单中看到并选择新创建的样式
与相关功能的区别
输出样式与以下几个功能看起来相似,但作用层面不同:
| 对比对象 | 核心差异 |
|---|---|
| 输出样式 vs CLAUDE.md | 输出样式会替换默认的软件工程系统提示,从根本上改变 Claude 的工作模式;CLAUDE.md 是以用户消息的形式追加项目背景和约定,不修改系统提示本身 |
| 输出样式 vs --append-system-prompt | 输出样式替换并关闭默认提示;--append-system-prompt 是在默认提示的末尾追加内容,两者均保留原有提示 |
| 输出样式 vs 子代理(Subagent) | 输出样式修改的是主代理的系统提示,影响全局交互风格;子代理是独立的任务处理模块,可以自定义模型、工具和触发条件,处理特定子任务后返回结果 |
| 输出样式 vs 自定义斜杠命令 | 输出样式是"存储的系统提示",决定 Claude 整体的交互风格;自定义斜杠命令是"存储的用户提示",用于快速执行某个具体的指令或任务 |
自定义样式模板
以下是一个通用的自定义输出样式模板,将 [ ] 中的内容替换为你的实际需求,保存为 .md 文件即可使用:
实例
---
name: [样式名称,例如:写作助手]
description: [一句话说明用途,例如:专注技术文档写作,输出结构清晰、表达准确的内容]
keep-coding-instructions: [true 或 false]
---
# 一、核心定位
[定义 Claude 的角色和专长,例如:
你是一个专业的技术文档写作助手,擅长将复杂的技术概念转化为清晰易懂的文字]
# 二、响应规则
[规定 Claude 的回复逻辑,例如:
1. 每次回复必须包含「核心观点 + 详细说明 + 示例」三部分
2. 使用主动语态,避免被动句式
3. 专业术语首次出现时附带简短解释]
# 三、格式要求
[指定输出的排版格式,例如:
1. 标题使用 ## 二级标题
2. 代码示例使用代码块,并标注语言类型
3. 关键信息用粗体标注]
# 四、特殊场景处理
[针对特定情况的处理规则,例如:
1. 需要举例时,优先使用真实场景而非抽象示例
2. 遇到表述不清的需求时,先确认意图再开始写作]
name: [样式名称,例如:写作助手]
description: [一句话说明用途,例如:专注技术文档写作,输出结构清晰、表达准确的内容]
keep-coding-instructions: [true 或 false]
---
# 一、核心定位
[定义 Claude 的角色和专长,例如:
你是一个专业的技术文档写作助手,擅长将复杂的技术概念转化为清晰易懂的文字]
# 二、响应规则
[规定 Claude 的回复逻辑,例如:
1. 每次回复必须包含「核心观点 + 详细说明 + 示例」三部分
2. 使用主动语态,避免被动句式
3. 专业术语首次出现时附带简短解释]
# 三、格式要求
[指定输出的排版格式,例如:
1. 标题使用 ## 二级标题
2. 代码示例使用代码块,并标注语言类型
3. 关键信息用粗体标注]
# 四、特殊场景处理
[针对特定情况的处理规则,例如:
1. 需要举例时,优先使用真实场景而非抽象示例
2. 遇到表述不清的需求时,先确认意图再开始写作]
