本文经原作者授权转载,版权归原作者所有。原作者:Xudong Han(@Xudong07452910)。查看原文 →


你刚装好 Claude Code,跑了几条命令,感觉……还行?

但你也许没意识到,你手里的这个 Claude,并不是它的完整体。

Anthropic 出厂时把它调成了一个「省电模式」,思考浅一点、模型默认贵一点、终端闪烁多一点、长任务跑一半就被切断。这套默认值是为了照顾「完全没接触过命令行的纯新手」,但代价就是,每一个稍微正经用它的人,都在用一个被悄悄阉割过的版本。

好消息是,你不需要懂任何技术细节,就能把它变回完整版。

打开你电脑的终端,找到一个叫 `~/.zshrc`(macOS)或 `~/.bashrc`(Linux)的文件,把下面的 8 行配置粘贴进去就完事。整个过程不超过 5 分钟,每一行都解决一个具体的小问题。

  • 让它认真思考,而不是看一眼就动手
  • 让它不再编造不存在的函数和 API
  • 让它的「小弟」用便宜模型干活,把账单砍到 1/5
  • 默认锁定便宜模型,避免无意识烧钱
  • 写长文档不再写一半就断
  • 终端输出不再闪到眼瞎
  • 关掉所有遥测,公司代码更放心
  • 跑长任务不再 10 分钟硬超时

如果你完全没改过 shell 配置,别紧张,文末的常见疑问里手把手讲了怎么操作。

下面我们一条一条来。

1.让它认真思考

export CLAUDE_CODE_EFFORT_LEVEL=high

痛点,让 Claude 重构一段复杂代码,它瞄了一眼就开始动手,结果越改越乱。

原因,2026 年 2–3 月,Anthropic 把默认思考强度从 `high` 偷偷降到了 `medium`,省了自己的算力,苦了我们这些写复杂逻辑的人。Hacker News 当时炸开了锅。

解法,这一行强制 Claude 每次都全力思考。复杂任务的代码质量肉眼可见地回来了。

五档可选,`low` / `medium` / `high` / `xhigh` / `max`。日常 `high` 就够,攻克难题再切 `max`(只支持 Opus,其他模型会报错)。

2.不许偷懒

export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1

痛点,Claude 一本正经地告诉你「用 `np.fast_inverse()` 这个函数就行」,你去查发现根本不存在。

原因,Claude 默认开着「自适应思考」,它觉得任务简单时就跳过推理。问题是它经常误判,明明该深思的小问题,它选择拍脑袋,于是就有了上面那种「精准幻觉」。

解法,关掉自适应,强制每次都按预算思考。少很多「看起来对其实是编的」答案。

跟第 1 条搭配使用效果最好。一个定上限,一个保下限。

3.把账单砍到 1/5

export CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-4-5-20251001

痛点,你只用了 Claude 几个小时,月底账单出来吓一跳。

原因,你以为 Claude 一个人在干活?其实它经常派子代理去读文件、查文档、跑搜索。默认这些子代理也跑 Opus,烧的都是大模型的钱,而子代理干的多半是「翻找资料」这种 Haiku 也能胜任的体力活。

解法,让子代理改用 Haiku,质量几乎不变,单次成本立刻降到 1/15。账单跟着腰斩。

装了很多插件的用户慎设,部分插件 agent 可能会报 404。

4.默认用便宜的

export ANTHROPIC_MODEL=claude-sonnet-4-6

痛点,开个新项目顺手就跑 Opus,回头一看 token 烧得心疼。

原因,Claude Code 装好以后默认是最贵的模型,新手很容易忘记切。但实际上日常 80% 的工作 Sonnet 已经够用,读代码、写函数、跑 lint、改测试,根本用不到 Opus 的脑容量。

解法,默认锁定 Sonnet,需要硬骨头时再手动 `/model opus` 切换。账单不会再因为「忘了切」而失控。

最新模型 ID,Opus 是 `claude-opus-4-7`,Sonnet 是 `claude-sonnet-4-6`,Haiku 是 `claude-haiku-4-5-20251001`。

5.不要刚写一半就被截断

export CLAUDE_CODE_MAX_OUTPUT_TOKENS=16384

痛点,让 Claude 写个长文档或重构整个模块,写到一半戛然而止,你得再说一句「继续」,它接得磕磕巴巴。

原因,默认单次输出上限偏保守,长内容必然被截断。Claude 自己也无法预知会被截在哪,所以续写时经常重复或断层。

解法,把单次上限拉到 16384,长文档一次产出。需要更长就调到 32768。

写代码党可以放心调高,只用来问简短问题的话保持默认也行,省点 token。

6.终端别再闪了

export CLAUDE_CODE_NO_FLICKER=1

痛点,在 VS Code 集成终端、tmux 或 iTerm2 里看 Claude 输出一长串,屏幕疯狂闪烁,眼睛要瞎。

原因,老的渲染方式是「整页重画」,每次更新都全屏刷一遍。终端越宽、内容越长,闪得越凶。

解法,打开新的「虚拟视口 + diff 渲染」模式,只更新真正变化的字符。结果就是流畅如丝,而且终于支持鼠标点击和滚轮了。

Anthropic 内部员工早就全员切到这个模式,只是默认还没开。

7.关掉所有遥测

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

痛点,在公司写商业代码,或者本地有客户敏感数据,不希望任何东西被悄悄上传。

原因,默认情况下,Claude Code 会上报使用统计、错误日志、用户调查问卷等。单独关每一项要设 5 个变量,烦得很。

解法,这一条等于一键关闭以下全部。

  1. 自动更新检查
  2. 错误上报(Sentry)
  3. 使用遥测(Statsig)
  4. bug 反馈命令
  5. 会话质量调查
唯一副作用,`--channels` 命令不能用了(基本没人在用,放心关)。

8.长任务不要被掐断

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

痛点,让 Claude 跑完整测试套件、Docker 构建、批量数据处理,眼看快好了,啪,10 分钟超时被强制掐断。

原因,默认 bash 命令最长允许 600000 毫秒(10 分钟)。这对小项目够用,对真实工程项目完全不够。

解法,把上限放宽到 30 分钟(1800000 毫秒)。大型测试、构建、迁移再也不会半路猝死。

如果你跑的任务平均还要更久(比如训练模型),改成 `3600000`(1 小时)也没问题。

一次粘贴版(任选其一)

两种方式效果完全一样,挑你喜欢的就行。

方式一,写进 shell 配置(推荐)

# Claude Code 性能优化配置(2026 年 5 月)
export CLAUDE_CODE_EFFORT_LEVEL=high
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
export CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-4-5-20251001
export ANTHROPIC_MODEL=claude-sonnet-4-6
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=16384
export CLAUDE_CODE_NO_FLICKER=1
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export BASH_MAX_TIMEOUT_MS=1800000

粘贴到 `~/.zshrc` 末尾(Linux 用户是 `~/.bashrc`),然后跑一下。

source ~/.zshrc

优点,改动可见、好回滚、对所有终端工具都生效。

方式二,写进 `~/.claude/settings.json`

如果你不想动 shell 配置,或者想让配置只对 Claude Code 生效,可以直接写到 Claude 的设置文件里。

{
"env": {
"CLAUDE_CODE_EFFORT_LEVEL": "high",
"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-haiku-4-5-20251001",
"ANTHROPIC_MODEL": "claude-sonnet-4-6",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "16384",
"CLAUDE_CODE_NO_FLICKER": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"BASH_MAX_TIMEOUT_MS": "1800000"
}
}

⚠️ 三个新手最常踩的坑。

1. 必须放在 `"env"` 字段里,不能像第一版那样直接平铺在顶层。

2. 所有值都要用字符串,`"1"` 而不是 `1`,`"high"` 而不是 high,否则 Claude Code 不认。

3. 保留已有内容,如果 `settings.json` 已经有别的配置,把 `"env": {...}` 这一项加进去就行,不要覆盖整个文件。

文件不存在?直接 `mkdir -p ~/.claude && touch ~/.claude/settings.json` 然后把上面 JSON 粘进去即可。

打开下一个 Claude Code 会话,你会发现它突然变聪明、变便宜、变安静了。

几个常见疑问

Q,我不是程序员,看不懂 `~/.zshrc` 怎么打开?

A,在终端里输入 `open ~/.zshrc`(macOS)或 `nano ~/.bashrc`(Linux),文件就出来了。在末尾粘贴上面那段、保存即可。

Q,我用的是 Windows / WSL,配置文件在哪?

A,WSL 跟 Linux 一样,`~/.bashrc`。原生 Windows 用 PowerShell 的话,把 `export VAR=value` 改成 `$env:VAR = "value"`,放进 `$PROFILE`。

Q,两种方式可以同时用吗?

A,可以,但如果同一个变量在两边都设了,**shell 环境变量优先**。建议只选一种,避免之后排查问题时一脸懵。

Q,万一搞坏了想恢复默认?

A,把对应的 `export XXX=YYY` 行删掉,重启终端就回到默认。环境变量改不坏任何东西,放心试。

想看官方完整变量表(100+ 个),[code.claude.com/docs/en/env-vars](https://code.claude.com/docs/en/env-vars)