Claude Code: 输出样式

最后更新:2026-08-31

输出样式控制 Claude Code 怎么"说话"——从简洁到详细、从纯文本到 JSON,选对样式让信息更易消化。

💡 提示:输出样式不影响 Claude Code 的能力,只影响它呈现结果的方式。日常开发用默认样式,自动化脚本用 JSON 格式。

📋 前置知识:第十六章 Agent Skills 与 skill-creator

1. 你将学到


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 中写"不需要解释步骤"。

📖 小节


📝 作业

  1. 基础题(难度⭐):用三种不同样式完成同一个任务,对比输出差异。
  2. 进阶题(难度⭐⭐):用 JSON 输出格式编写一个简单的代码审查脚本。
  3. 挑战题(难度⭐⭐⭐):设计一套团队输出样式规范,在 CLAUDE.md 中配置,确保所有成员获得一致的输出体验。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏