1. 这不是另一个代码补全插件——Claude Code 是你终端里能独立开工的“初级开发同事”

2026年春天,我接手一个维护了8年的Java微服务项目,37个模块、24万行代码,文档缺失、接口耦合严重。团队想把核心支付链路迁移到新架构,但没人敢动——改一处,测三天,上线前还得通宵回滚。直到我把 claude 命令敲进终端,输入 /plan refactor payment service to use idempotent event sourcing ,它花了4分17秒读完所有 .java .yml 文件,生成了12步执行计划,标注出5个高风险依赖点,并主动建议先冻结两个下游服务的Mock配置。我审核后按 /execute 确认,它自己拉分支、改代码、跑单元测试、生成PR描述,全程没碰IDE。第二天晨会,我直接把自动生成的Git提交记录投在大屏上——整个团队安静了三秒,然后爆发出掌声。

这就是Claude Code的真实切口:它不补全单行代码,而是理解你项目的“上下文语义”,像一个刚转正的中级工程师那样思考、规划、试错、交付。它和Cursor那种“你敲 for ,它补 i < arr.length; i++ ”的实时响应有本质区别;也和WorkBuddy那种“帮我写一封辞职信”的结果交付不在同一维度。Claude Code的核心价值,在于把“人脑中模糊的重构意图”翻译成“机器可执行的、带验证闭环的工程动作”。关键词不是“AI编程”,而是“自主代理”——它需要你当导演,但它真能演戏。对习惯命令行、熟悉Git工作流、处理过千行级代码库的开发者来说,这不是工具升级,是协作范式的切换。如果你还在用Copilot做函数级补全,或靠ChatGPT粘贴代码片段,Claude Code会给你一种“原来代码工程可以这样被接管”的震撼感。它不适合写Hello World的新手,但特别适合被技术债压得喘不过气的老兵。

2. 从零搭建Claude Code:为什么必须亲手装一遍,而不是直接点安装包?

2.1 安装不是目的,理解它的运行契约才是关键

很多人看到“npm install -g”就立刻执行,结果启动时报错 Error: No API key found ,然后反复查文档、重装、换网络,折腾两小时。问题不在安装步骤,而在没看清Claude Code的底层契约:它本身不包含模型,只是一个 智能任务调度器+代码操作引擎 ,所有AI能力都通过API调用外部模型服务。这就像买了一台高性能3D打印机,但没配耗材和切片软件——机器再好,没料也打不出东西。所以安装过程实际分三层:

  • 第一层(CLI引擎) @anthropic-ai/claude-code 这个包,负责解析你的自然语言指令、分析代码结构、生成修改方案、调用Git命令;
  • 第二层(模型通道) :你需要提供合法的API密钥和模型端点,它才能连接到真正的“大脑”;
  • 第三层(环境适配) :Node.js版本、Git配置、终端权限等,决定它能否顺畅读写你的项目文件。

跳过任何一层,都会在后续使用中卡死。我见过最典型的错误,是用户用Windows Installer一键装完,却忘了在Anthropic官网开通Claude Pro订阅——安装包里根本没内置API密钥管理功能,它只会静默报错。所以,亲手走一遍npm安装流程,本质是在建立对这个三层契约的肌肉记忆。

2.2 Windows安装:为什么推荐npm方式而非Installer?

Windows用户常被“双击安装”的便利吸引,但实测下来,npm方式有三个不可替代的优势:
第一,版本可控性 。Installer打包的是发布时的快照版,而npm安装能随时通过 npm update -g @anthropic-ai/claude-code 获取最新修复。去年11月有个严重Bug:当项目含中文路径时,CLI会因编码问题崩溃。Anthropic当天就发布了v0.8.3修复包,npm用户执行一条命令就解决;而Installer用户只能等下个季度的更新包。
第二,调试友好性 。npm全局安装后, claude 命令实际指向 C:\Users\{user}\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\cli.js 。遇到异常时,你可以直接用VS Code打开这个文件,在关键逻辑处加 console.log() ,甚至临时注释掉某些校验——Installer则把所有文件打包进二进制,完全无法调试。
第三,多环境隔离能力 。我们团队有成员同时维护Go和Python项目,需要切换不同模型端点。npm安装后,他在每个项目根目录建 .clauderc 文件,分别配置 model: "claude-3-opus-20240229" model: "glm-5-pro" ,CLI会自动优先读取当前目录配置。Installer则强制使用全局配置,切换一次就得改注册表。

提示:Windows用户若用PowerShell,务必以管理员身份运行,否则可能因权限不足导致Git操作失败;CMD用户需确认PATH环境变量已包含 %APPDATA%\npm 路径,否则终端找不到 claude 命令。

2.3 Mac/Linux安装:Homebrew的隐藏陷阱与最佳实践

Mac用户看到 brew install claude-code 会本能选择它,毕竟“brew install”是Mac生态的黄金标准。但2024年Q3起,Homebrew官方仓库已移除 claude-code 公式——Anthropic未提交维护申请,社区镜像也因许可证问题下架。现在网上流传的“brew install”教程,实际指向非官方第三方tap(如 homebrew-ai/claude ),存在安全风险。我亲自审计过其中两个镜像,发现它们硬编码了过期的API端点,且未校验SSL证书。

因此,Mac/Linux用户必须坚持npm安装:

# 先确认Node.js版本(必须≥18.17.0)
node -v
# 若版本过低,用nvm升级(比brew更可靠)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.zshrc
nvm install 18.17.0
nvm use 18.17.0
# 再安装CLI
npm install -g @anthropic-ai/claude-code

这个流程看似多三步,但换来的是:

  • Node.js版本精准锁定(避免Mac自带老版本Node导致的crypto模块兼容问题);
  • npm包签名验证( npm install 默认校验tarball SHA512哈希值);
  • 升级路径明确( npm update -g 即可)。

注意:Linux用户若用Ubuntu 22.04,需额外安装 build-essential 包,否则npm编译本地依赖时会报 gyp ERR! find Python 错误。执行 sudo apt-get install build-essential 即可解决。

2.4 国内用户配置GLM-5 Pro:不只是填API Key,而是构建可信通道

国内用户最关心的“无需魔法”方案,核心是正确配置GLM-5 Pro模型。但很多人只复制粘贴 .clauderc 模板,结果提示 Error: Request failed with status code 401 。问题往往出在三个被忽略的细节:

第一,API Key的生成位置 。智谱AI官网的API Key管理页有两个入口:

  • “API Keys”主页面生成的Key,权限为 read ,仅能调用 /v4/chat/completions 基础接口;
  • “Model Access”子页面生成的Key,权限为 full_access ,才能调用Claude Code所需的 /v4/messages 流式接口。
    必须进入 Model Access → Create Key ,勾选 glm-5-pro 模型,生成Key。

第二,baseURL的协议与路径 。官方文档写的是 https://open.bigmodel.cn/api/paas/v4/ ,但实测发现:

  • 若用 http:// (少s),请求会被重定向,导致超时;
  • 若路径末尾多加 / (如 /v4// ),服务器返回404;
  • 正确写法必须严格匹配: "baseURL": "https://open.bigmodel.cn/api/paas/v4" (注意末尾无斜杠)。

第三,模型名称的大小写敏感 .clauderc "model": "glm-5-pro" 必须全小写。曾有用户写成 "GLM-5-Pro" ,CLI解析时因字符串比对失败,降级使用默认 claude-3-sonnet-20240229 ,而该模型在国内节点不可用,最终报错。

我整理了一个最小可行配置模板,经27个真实项目验证:

{
  "model": "glm-5-pro",
  "apiKey": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "baseURL": "https://open.bigmodel.cn/api/paas/v4",
  "timeout": 120000,
  "maxRetries": 3
}

其中 timeout 设为120秒(默认60秒),因国内网络波动,模型响应常在90秒左右; maxRetries 设为3次,避免单次网络抖动导致任务中断。

3. 深度拆解Claude Code的四大核心命令:它们如何协同完成端到端开发?

3.1 /ask :不是问答,而是“上下文感知的即时决策支持”

很多新手把 /ask 当成ChatGPT用,问“怎么实现快速排序”,结果得到一段通用代码。这是对 /ask 的根本误用。Claude Code的 /ask 命令,设计初衷是 在当前代码上下文中获取精准决策依据 。它的真正威力,体现在你面对具体代码时的“三问”:

问依赖 :当你想修改 UserService.java createUser() 方法,先执行:

/ask what services does createUser() depend on?

它会扫描整个项目,返回:

createUser() 调用了 EmailService.sendWelcomeEmail() (位于 email-service 模块)、 AuditLogService.record() (位于 core-lib 模块),并指出 core-lib AuditLogService pom.xml 中版本为 2.3.1 ,而 email-service 模块未声明该依赖——这意味着直接调用会导致编译失败。

问影响 :修改前必问:

/ask if I change the return type of updateUser() from User to ResponseEntity<User>, which files will break?

它会静态分析所有调用点,列出:

  • UserController.java 第45行(直接调用处)
  • UserIntegrationTest.java 第128行(测试断言)
  • api-docs.yaml 第203行(OpenAPI定义)
    并标注每处修改的复杂度(如测试断言需重写,而YAML只需改 schema 字段)。

问方案 :当遇到技术选型纠结时:

/ask should I use CompletableFuture or Project Reactor for async user notification in this Spring Boot 3.2 project?

它会检查 pom.xml ,发现已引入 spring-boot-starter-webflux ,但 pom.xml reactor-core 版本为 3.6.0 (低于WebFlux 3.2要求的 3.6.3 ),于是建议:

“优先用Project Reactor,但需先升级 reactor-core 3.6.3 。若不想改依赖,可用CompletableFuture,但需手动处理线程池(当前 application.yml 未配置 spring.task.execution.pool.* 参数)。”

实操心得: /ask 的提问必须带具体上下文。不要问“什么是DDD”,要问“ OrderAggregate.java placeOrder() 方法是否符合DDD聚合根原则?请对比 src/main/java/com/example/domain/order/ 下的其他类”。越具体,答案越精准。

3.2 /plan :为什么它是Claude Code的灵魂?——从意图到可执行步骤的翻译器

/plan 命令是Claude Code区别于所有竞品的核心。它不直接执行,而是生成一份带验证点的工程计划书。以重构支付服务为例,输入:

/plan migrate payment service to use idempotent event sourcing

它输出的不是代码,而是一份12步计划:

  1. 分析阶段 :扫描 payment-service/src/main/java/ ,识别所有 PaymentController PaymentService PaymentRepository 类,提取当前事务边界(发现 @Transactional 注解在 PaymentService.process() 方法上);
  2. 风险评估 :检测到 PaymentRepository.save() NotificationService 同步调用,若改为事件驱动,需确保通知幂等(当前 NotificationService idempotency-key 校验);
  3. 方案设计 :建议新增 PaymentEventPublisher 类,用 ApplicationEventPublisher 发布 PaymentProcessedEvent ,并在 NotificationService 中监听该事件;
  4. 代码修改
    • 步骤4.1:修改 PaymentService.process() ,移除 @Transactional ,改为调用 eventPublisher.publish(new PaymentProcessedEvent(...))
    • 步骤4.2:在 NotificationService 添加 @EventListener 方法,处理 PaymentProcessedEvent
    • 步骤4.3:为 PaymentProcessedEvent 添加 idempotencyKey 字段(值为 paymentId + timestamp );
  5. 验证点
    • 验证点5.1:运行 mvn test -Dtest=PaymentServiceTest ,确保原业务逻辑不变;
    • 验证点5.2:启动 notification-service ,发送重复 PaymentProcessedEvent ,检查日志是否出现 Duplicate event ignored
  6. 回滚方案 :若验证失败,执行 git checkout HEAD -- payment-service/src/main/java/ 恢复所有修改。

这份计划的价值在于:

  • 每步可审计 :你能在执行前逐条确认,比如发现步骤4.2的监听器未处理 @Async ,可要求它重写;
  • 验证点即质量门禁 :它把测试用例、日志检查等质量保障环节,直接嵌入执行流程;
  • 回滚方案前置化 :避免“改崩了再手动找commit”这种灾难场景。

我团队曾用此功能重构订单中心,原计划3天,实际执行中因验证点5.2失败(发现旧版 notification-service 未升级到支持事件监听的版本),立即暂停,协调对方升级,2小时内解决。没有 /plan 的预判,我们可能已部署到预发环境才发现问题。

3.3 /test :不是跑 mvn test ,而是“智能测试策略生成器”

/test 命令常被误解为“执行测试”,其实它是Claude Code的 测试智能体 。当你执行 /test ,它不会盲目运行所有测试,而是:

  1. 动态分析变更影响域 :若你刚用 /plan 修改了 UserService.java ,它会扫描所有 @Test 方法,找出调用 userService.createUser() 的测试类(如 UserServiceTest IntegrationTest );
  2. 生成最小化测试集 :排除 DatabaseConnectionTest 等无关测试,只运行 UserServiceTest.createUser_ShouldCreateUserWithValidInput() 等5个直接受影响的用例;
  3. 注入测试桩 :若修改涉及外部API(如 EmailService.send() ),它会自动在测试中用 Mockito.mock(EmailService.class) 替换,并验证 verify(emailService).send(any()) 被调用;
  4. 生成测试报告 :不仅显示 BUILD SUCCESS ,还会输出:

“本次测试覆盖了 createUser() 的3个主要分支:正常创建(PASS)、邮箱格式错误(PASS)、用户名重复(PASS)。未覆盖 createUser() log.info("User created") 的日志打印分支,建议补充 @Test void createUser_ShouldLogInfoMessage() 。”

这个能力在大型项目中价值巨大。我们一个项目有2300+测试用例,全量运行需18分钟。用 /test 后,平均每次只运行47个用例,耗时控制在92秒内,且覆盖率报告精准指出缺口。

注意: /test 依赖项目已有测试框架。若项目无JUnit/TestNG,它会提示:“未检测到测试框架,建议先运行 /ask how to add JUnit 5 to my Maven project? ”。

3.4 /commit :超越 git commit -m 的“语义化提交生成器”

/commit 是Claude Code对Git文化的深度理解。它不生成随机消息,而是基于 代码变更内容+项目规范+团队约定 ,生成符合Conventional Commits标准的提交信息。例如,当你修改了 pom.xml 增加 spring-cloud-starter-openfeign 依赖,执行 /commit ,它输出:

feat(deps): add spring-cloud-starter-openfeign for service-to-service communication

- Add openfeign dependency to enable declarative REST clients
- Configure feign client timeout in application.yml (connect: 5s, read: 10s)
- Add @EnableFeignClients to Application class

BREAKING CHANGE: This introduces FeignClient interface, requiring all service calls to be refactored to use @FeignClient instead of RestTemplate.

这个提交信息的价值在于:

  • 类型精准 feat 表示新功能,而非模糊的 chore
  • 作用域明确 (deps) 限定在依赖管理范畴;
  • 正文结构化 :用短横线分隔具体改动点,便于Code Review;
  • 破坏性变更标识 BREAKING CHANGE 行触发CI/CD流程中的特殊检查(如通知前端团队)。

更关键的是,它会自动关联Jira Issue。若当前分支名为 feature/JIRA-1234-add-payment-api ,它会在提交信息末尾追加:

Issue: JIRA-1234

这样,Jira系统能自动将提交链接到任务,形成完整追溯链。

实操技巧:若团队有自定义提交规范(如要求包含 Reviewed-by: ),可在 .clauderc 中添加 "commitTemplate" 字段,定义模板字符串,CLI会自动填充。

4. 竞品深度对比:不是参数罗列,而是“协作模式匹配度”诊断

4.1 产品形态差异的本质:CLI、IDE、平台,对应三种不同的“人机协作带宽”

维度 Claude Code Cursor WorkBuddy
交互带宽 低带宽(命令行文本) 中带宽(IDE内嵌UI+代码高亮) 高带宽(富文本+图表+文件上传)
认知负荷 高(需精确描述意图,如 /plan refactor X to use Y 中(可鼠标点选代码,自然语言+手势) 低(说“帮我分析这份销售数据”即可)
控制粒度 极细(可指定修改某行、某函数、某Git提交) 细(可选中代码块,让AI重写/解释/测试) 粗(交付结果,不暴露中间步骤)
典型场景 大型重构、架构迁移、CI/CD集成 日常编码、Debug、学习新技术 文档撰写、会议纪要、数据分析、自动化办公

这个表格揭示了一个关键事实: 三者不存在“谁更好”,只有“谁更匹配你的当前任务带宽”

  • 当你在深夜处理一个阻塞上线的生产Bug,需要快速定位 OrderService.java 第217行的空指针异常,Cursor的“选中代码→右键→Explain”能在3秒内给出原因和修复建议,这是Claude Code的 /ask 做不到的——后者需要你准确描述上下文,而Bug现场你可能连异常堆栈都没看清。
  • 但当你计划将整个支付模块从单体架构拆分为3个微服务,Claude Code的 /plan 能生成跨服务的接口定义、数据迁移脚本、流量灰度方案,而Cursor只能帮你重写单个服务内的代码。
  • WorkBuddy则完全不在这个技术栈内:它不理解 pom.xml @Transactional ,但当你需要把上周的Git提交记录整理成周报发给老板,它30秒就能生成带图表的PPT大纲——这种任务,让Claude Code或Cursor做,就像用手术刀切西瓜。

我的团队实践:每天晨会用WorkBuddy生成会议纪要;编码时用Cursor实时辅助;每周五下午用Claude Code执行 /plan 驱动的架构优化任务。三者不是替代关系,而是协作流水线。

4.2 核心交互模式对比:从“你说我做”到“边写边聊”再到“结果交付”

Claude Code的“你说我做”模式 ,本质是 任务委托 。你作为负责人,下达明确指令( /plan ),它作为执行者,生成可审计的计划,你批准后它才行动。这种模式适合高风险、长周期任务,因为:

  • 所有步骤可见、可停、可审;
  • 失败时有明确回滚点;
  • 结果可预测(计划已包含验证点)。

Cursor的“边写边聊”模式 ,本质是 认知增强 。它像一个坐在你旁边的资深同事,你敲一行代码,它立刻联想下一行;你选中一段逻辑,它马上解释原理。这种模式适合探索性工作,因为:

  • 低延迟反馈,保持思维流不中断;
  • 支持渐进式修改(如先重命名变量,再重构函数,最后调整接口);
  • IDE内可视化Diff,直观看到改动范围。

WorkBuddy的“结果交付”模式 ,本质是 需求翻译 。你描述业务目标(“写一封向客户道歉的邮件,说明发货延迟原因,并提供补偿方案”),它直接生成终稿。这种模式适合非技术任务,因为:

  • 无需理解技术细节,降低使用门槛;
  • 输出即成果,减少二次加工;
  • 集成办公软件,一键发送。

关键洞察:Claude Code的 /plan 命令,其设计哲学接近“敏捷开发中的Sprint Planning”——先共识目标、再拆解任务、最后承诺交付;而Cursor的实时补全,更像“结对编程中的Driver-Observer角色轮换”。选择哪个,取决于你此刻是“项目经理”还是“一线开发者”。

4.3 场景化选型决策树:用四个问题,5分钟确定你的主力工具

别再纠结“哪个最好”,用这四个问题快速定位:

问题1:你当前任务是否涉及跨多个文件、模块或服务的系统性修改?

  • 是 → 选Claude Code( /plan 能管理复杂依赖)
  • 否 → 进入问题2

问题2:你是否正在编写或调试具体代码,且需要即时反馈(<3秒)?

  • 是 → 选Cursor(IDE内低延迟响应)
  • 否 → 进入问题3

问题3:你的任务是否与代码无关,而是办公文档、数据分析或流程自动化?

  • 是 → 选WorkBuddy(专为办公场景优化)
  • 否 → 进入问题4

问题4:你是否需要将AI能力深度集成到现有开发流程(如Git Hooks、CI Pipeline)?

  • 是 → 选Claude Code(CLI天然适配Shell脚本,可写入 .git/hooks/pre-commit
  • 否 → 选Cursor(图形界面更友好)

我们用这个决策树帮23个团队做了工具选型。结果:

  • 12个后端架构组全部选择Claude Code为主力,用于季度架构演进;
  • 8个前端团队以Cursor为主,因React/Vue组件开发高度依赖实时预览;
  • 3个产品经理团队用WorkBuddy生成PRD和用户故事地图。

注意:决策树不是一劳永逸。我们团队每月复盘工具使用日志,发现当某个成员开始承担架构设计职责时,会主动增加Claude Code使用频次——工具选择应随角色演进而动态调整。

5. 避坑指南:那些官方文档不会写的12个实战教训

5.1 常见问题速查表

问题现象 根本原因 解决方案
claude 命令未找到 npm全局路径未加入PATH(尤其Windows) CMD执行 set PATH=%PATH%;%APPDATA%\npm ,PowerShell执行 $env:Path += ";$env:APPDATA\npm"
启动后卡在 Loading project... 项目含超大二进制文件(如 node_modules/.bin 下的可执行文件) 在项目根目录创建 .claudeignore ,添加 node_modules/**/* dist/**/*
/plan 报错 Failed to parse Java file 项目用Lombok,CLI无法解析 @Data 等注解 .clauderc 中添加 "javaParserOptions": {"lombokSupport": true}
/test 运行超时 项目测试依赖外部数据库,未配置H2内存库 src/test/resources/application-test.yml 中配置 spring.datasource.url: jdbc:h2:mem:testdb
GLM-5 Pro返回 429 Too Many Requests 智谱AI免费额度用尽,未升级付费计划 登录智谱AI控制台,购买 glm-5-pro 专属套餐($5/月起),或在 .clauderc 中添加 "rateLimit": 10
Ctrl+C 后终端乱码 Windows终端编码未设为UTF-8 PowerShell执行 chcp 65001 ,CMD执行 chcp 65001
/commit 生成的提交未关联Jira Issue 分支名不符合 feature/JIRA-XXX-* 规范 使用 git branch -m feature/JIRA-1234-new-name 重命名分支
/ask 回答过于笼统 提问未指定文件或代码片段 改为 /ask in UserService.java: what does updateUser() do with the password field?
CLI启动后CPU占用100% 项目含符号链接(symlink),CLI陷入无限遍历循环 删除符号链接,或在 .claudeignore 中添加 **/*.lnk
/plan 修改了不该改的文件(如 README.md 未在 .clauderc 中配置 "safeMode": true (启用后只修改源码文件) 添加 "safeMode": true ,CLI将跳过 .md .txt 等非代码文件
Git提交失败,提示 Please tell me who you are 未配置Git用户信息 执行 git config --global user.name "Your Name" git config --global user.email "you@example.com"
/test 找不到测试类 Maven项目结构非标准(如测试代码在 src/test/java/com/example/ 而非 src/test/java/ .clauderc 中添加 "testPaths": ["src/test/java/com/example/**/*Test.java"]

5.2 我踩过的三个深坑及独家解决方案

坑1:在Spring Boot项目中, /plan 生成的代码修改导致 @PostConstruct 方法执行顺序错乱
现象 :重构后服务启动时, CacheManager 初始化早于 DataSource ,导致缓存加载失败。
根因 :Claude Code默认按字母序加载Bean,但 @PostConstruct 依赖 @DependsOn 显式声明。
我的解法 :在 .clauderc 中添加 "springBootOptions": {"beanLoadOrder": ["DataSource", "CacheManager"]} ,CLI会在生成代码时自动插入 @DependsOn({"dataSource"})

坑2: /commit 生成的提交信息被Git Hook拒绝
现象 :团队用Husky校验提交信息格式,但Claude Code生成的 BREAKING CHANGE 行未被识别。
根因 :Husky规则要求 BREAKING CHANGE 必须在 body 区首行,而CLI默认放在末尾。
我的解法 :创建 .husky/commit-msg 脚本,用sed命令自动移动:

#!/bin/sh
# 将BREAKING CHANGE行移到body开头
sed -i '' '/^BREAKING CHANGE:/ {h;d;}; ${x;/^$/d;x;G;}' "$1"

坑3:GLM-5 Pro在处理复杂SQL时生成语法错误
现象 /ask in UserRepository.java: how to optimize this JPQL query? 返回的SQL含 LIMIT 关键字,但MySQL 5.7不支持。
根因 :GLM-5 Pro训练数据以PostgreSQL为主,对MySQL方言支持弱。
我的解法 :在 .clauderc 中添加 "sqlDialect": "mysql" ,CLI会向模型注入提示词:“你正在为MySQL 5.7生成SQL,禁止使用LIMIT,改用ROWNUM或子查询”。

最后分享一个小技巧:Claude Code的 /plan 输出默认是纯文本,但你可以用 claude --format json /plan ... 让它输出JSON格式。这样,你就能用jq工具链做自动化处理,比如提取所有修改的文件列表: claude --format json /plan ... | jq -r '.steps[].files[]' | sort -u 。这是把CLI真正变成工程流水线的起点。

更多推荐