Claude Code: 输出样式
最后更新:2026-08-31
输出样式控制 Claude Code 怎么"说话"——从简洁到详细、从纯文本到 JSON,选对样式让信息更易消化。
💡 提示:输出样式不影响 Claude Code 的能力,只影响它呈现结果的方式。日常开发用默认样式,自动化脚本用 JSON 格式。
📋 前置知识:第十六章 Agent Skills 与 skill-creator
1. 你将学到
- 内置输出样式
- 自定义输出格式
- 不同场景的样式选择
- JSON 输出用于脚本集成
- 输出样式配置
2. 内置输出样式
(1) 样式列表
| 样式 | 说明 | 适用场景 |
|---|---|---|
| default | 平衡的信息量 | 日常开发 |
| concise | 最精简输出 | 快速查询 |
| verbose | 详细解释 | 学习/调试 |
| code | 以代码为核心 | 纯代码生成 |
| plan | 先计划后执行 | 复杂任务 |
(2) 样式切换
BASH
# 命令行指定
claude --style concise
claude --style verbose
# 会话内切换
> /style concise
> /style verbose
# CLAUDE.md 中配置
## 输出偏好
- 使用 concise 样式
- 代码修改时显示 diff
▶ 示例 1: 不同样式的输出对比
TEXT
📖 仅展示
# Default 样式
> 给 UserService 添加密码重置功能
Claude Code:
I'll add a password reset feature to UserService.
→ Reading src/services/user.service.ts
→ Adding resetPassword() method
→ Adding generateResetToken() helper
→ Creating src/services/__tests__/password-reset.test.ts
→ Running: npm test -- password-reset.test.ts
✅ 4 tests passed
Changes:
- Modified: src/services/user.service.ts (+28 lines)
- Created: src/services/__tests__/password-reset.test.ts
---
# Concise 样式
> 给 UserService 添加密码重置功能
Claude Code:
✅ Added resetPassword() to user.service.ts
✅ Created password-reset.test.ts (4 tests)
2 files changed, 28 insertions(+)
---
# Verbose 样式
> 给 UserService 添加密码重置功能
Claude Code:
I'll implement a complete password reset flow...
Step 1: Analysis
- UserService currently has: create, find, update, delete
- Need to add: resetPassword, generateResetToken
- Email service already exists for sending reset links
Step 2: Implementation Details
- resetPassword(token, newPassword):
1. Verify token validity and expiry
2. Hash new password with bcrypt
3. Update user record
4. Invalidate used token
- generateResetToken(userId):
1. Generate random token (crypto.randomBytes)
2. Set expiry (1 hour)
3. Store in Redis for fast lookup
Step 3: Code Changes
→ Reading src/services/user.service.ts (45 lines)
→ Adding resetPassword method (lines 47-68)
→ Adding generateResetToken method (lines 70-82)
Step 4: Tests
→ Creating test file with 4 test cases:
- Valid token resets password
- Expired token is rejected
- Invalid token is rejected
- Used token cannot be reused
Step 5: Verification
→ Running: npm test -- password-reset.test.ts
✅ 4/4 tests passed
Files: 2 changed | Lines: +28 | Tests: +4
3. 自定义输出格式
(1) CLAUDE.md 中定义输出偏好
MARKDOWN
<!-- CLAUDE.md -->
## 输出偏好
- 代码修改时只显示 diff,不显示完整文件
- 使用中文描述操作
- 修改文件后自动运行测试
- 测试失败时显示失败原因和修复方案
- 不需要解释每一步的原因(除非我问)
(2) 任务级格式控制
TEXT
📖 仅展示
# 要求 JSON 输出
> 列出所有 TODO 注释,输出 JSON 格式
# 要求表格输出
> 对比 Express 和 Fastify 的性能,用表格展示
# 要求 Markdown 输出
> 生成 API 文档,Markdown 格式
# 要求代码优先
> 重构这个函数,只输出修改后的代码
▶ 示例 2: 格式化输出
TEXT
📖 仅展示
> 列出 src/services/ 下所有 service 的测试覆盖率,用表格展示
Claude Code:
| Service | Coverage | Missing |
|:--------|:---------|:--------|
| user.service.ts | 92% | delete method |
| auth.service.ts | 85% | refresh token |
| order.service.ts | 78% | cancel, refund |
| payment.service.ts | 0% | **no tests** |
| search.service.ts | 65% | pagination |
Average: 64% | Total: 5 services | Below 80%: 3
4. JSON 输出用于脚本
(1) 命令行 JSON 输出
BASH
# JSON 格式输出
claude -p "列出所有 TypeScript 错误" --output json
# 输出结构
{
"task": "list TypeScript errors",
"result": {
"errors": [
{
"file": "src/auth.ts",
"line": 12,
"code": "TS2304",
"message": "Cannot find name 'token'"
}
],
"total": 1
},
"usage": {
"tokens": 15420,
"cost_usd": 0.31
}
}
(2) 脚本集成
▶ 示例 3: 自动化代码审查脚本
BASH
#!/bin/bash
# auto-review.sh - 自动审查 git 变更
CHANGED_FILES=$(git diff --name-only HEAD~1)
for file in $CHANGED_FILES; do
echo "Reviewing $file..."
RESULT=$(claude -p "审查 $file 的代码质量,只关注安全问题" --output json)
ISSUES=$(echo "$RESULT" | jq '.result.issues | length')
if [ "$ISSUES" -gt 0 ]; then
echo "⚠️ Found $ISSUES issues in $file:"
echo "$RESULT" | jq '.result.issues[]'
else
echo "✅ $file looks good"
fi
done
5. 输出样式配置
(1) 全局默认样式
JSON
// ~/.claude/settings.json
{
"output": {
"defaultStyle": "concise",
"showDiff": true,
"language": "zh",
"autoTest": true
}
}
(2) 项目级样式
MARKDOWN
<!-- CLAUDE.md -->
## 输出偏好
- 默认 concise 样式
- 代码修改显示 diff(非完整文件)
- 自动运行相关测试
- 中文描述 + 英文代码
(3) 动态切换
TEXT
📖 仅展示
# 会话中临时切换
> 从现在开始用 verbose 样式
> /style concise # 切回简洁
> 这次任务用 JSON 输出 # 单次指定
6. 综合示例:多场景样式策略
TEXT
📖 仅展示
# Alice 的样式策略
## 日常开发(default)
claude
> 重构 UserService
## 快速修复(concise)
claude --style concise
> 修复这个 typo
## 学习新项目(verbose)
claude --style verbose
> 解释这个项目的架构
## 代码审查(plan)
claude --style plan
> 审查这次 PR 的变更
## 自动化脚本(JSON)
claude -p "代码审查" --output json | jq '.result'
❓ 常见问题
Q 不同样式消耗的 Token 一样吗?
A 不一样。verbose 最消耗,concise 最省。差异可达 2-3 倍。日常推荐 default 或 concise。
Q JSON 输出格式稳定吗?
A 基本稳定但可能随版本变化。脚本中建议做容错处理,不要强依赖特定字段。
Q 能自定义 Markdown 模板吗?
A 可以在 CLAUDE.md 中描述输出格式要求,Claude Code 会尽量遵循。但没有严格的模板系统。
Q 输出样式影响代码质量吗?
A 不影响。样式只影响呈现方式,不影响实际生成的代码。
Q 中文输出和英文输出效果一样吗?
A 代码部分一样,解释部分中文输出消耗略多 Token。代码注释和文档语言由 CLAUDE.md 控制。
Q 如何让输出更简洁?
A 用 concise 样式 + 精确指令 + CLAUDE.md 中写"不需要解释步骤"。
📖 小节
- 五种内置样式:default、concise、verbose、code、plan
- 日常用 default,快速用 concise,学习用 verbose
- JSON 输出适合脚本集成和自动化
- CLAUDE.md 可定义项目级输出偏好
- 样式只影响呈现,不影响代码质量
📝 作业
- 基础题(难度⭐):用三种不同样式完成同一个任务,对比输出差异。
- 进阶题(难度⭐⭐):用 JSON 输出格式编写一个简单的代码审查脚本。
- 挑战题(难度⭐⭐⭐):设计一套团队输出样式规范,在 CLAUDE.md 中配置,确保所有成员获得一致的输出体验。