配了三年 Claude Code,今天才发现它的「界面」从来没被认真设计过——Focus View 把这件事彻底变了

配了三年 Claude Code,今天才发现它的「界面」从来没被认真设计过——Focus View 把这件事彻底变了


Claude Code 跑长任务的时候,你在 VS Code 里看到的界面是什么样的?

一个命令接一个命令输出,文件被读取,bash 被执行,测试被运行,代码被修改——整屏整屏的滚动输出。你坐在那里盯着那个进度条,不知道它现在到底完成了多少,不知道接下来要干什么,甚至不知道它有没有在正常跑。

这是 2026 年大多数 Claude Code 用户每天都在经历的事。

2026 年 8 月 4 日,Claude Code v2.1.221 正式发布。最重要的新功能叫 Focus View——它做的事情很简单:把那些滚动输出的工具执行细节藏起来,改成每个 Turn 一行摘要。

你不再需要盯着一屏一屏的 Reading file: src/utils/format.tsRunning bash: npm test,你看到的是:

[Read 3 files] → [Ran 12 tests] → [Modified api/user.ts] — 完成

当前正在跑的任务会有一个 Live 标记,你可以随时展开看完整日志。

这就是今天这篇文章要说的事情:Claude Code 的界面,终于被当回事了。


Focus View 是什么

Focus View 是 Claude Code VS Code 扩展里的一个新面板。打开方式:VS Code 聊天菜单,或者快捷键 Ctrl+Alt+F(macOS Cmd+Option+F)。

开启之后,每个对话 Turn 变成一个折叠卡片。卡片里是这轮 Claude 执行动作的摘要,每条一行,用箭头表示执行顺序。如果你关掉了不想看了,可以直接展开看原始日志。

这个功能解决的是一个很具体的场景:长会话。当 Claude Code 处理一个需要几十步的任务时,工具执行的中间输出比最终结果更让人分心。Focus View 把那个噪音层去掉了,保留了你需要的信息密度。

它不是一个「更少输出」的开关,它是一个「更好的信息层级」的重构。


两个真正值得认真对待的安全补丁

Focus View 是体验更新,那两个修复则是真正的安全相关。

Bash on zsh 权限检查绕过(CVE 类,2026-08-04 修复)

Claude Code 的 Bash 工具在执行命令之前会做权限检查。这个检查在一个前提上工作:它会解析命令行,把里面的子命令挖出来审查。如果一条命令里嵌了一个 $() 子shell,权限检查器应该把子shell 里的内容也纳入审查。

问题出在 zsh 的 [[ ]] 条件语法上。在 zsh 里,你可以这样写:

[[ "x" =~ $(malicious_command) ]]

这里 $(malicious_command) 是一个子 shell,会执行 malicious_command。但 Claude Code 的权限检查器在解析 [[ ]] 这个构造时,没有正确穿过 =~ 操作符右边的子 shell,所以 $(malicious_command) 里的命令根本不会被审查,直接放行。

如果你在 Claude Code 的 auto mode 或者有 allowlist 配置的环境里跑,受影响版本会让恶意命令绕过权限提示直接执行。

PowerShell 路径处理漏洞(Windows,2026-08-04 修复)

Windows 上,路径可以包含引号字符。比如:

C:my"pathfile.txt

这个路径在 Windows 文件系统里是合法的(引号不是路径的一部分,它们只是允许出现在路径字符串里)。但在 PowerShell 里,这种路径写起来是 C:my"pathfile.txt,引号是真实路径的一部分。

Claude Code 的权限检查器在验证 Windows 路径时,没有对引号字符做正确的规范化,导致一个本来需要审批的路径操作,因为引号的存在而绕过了 allowlist 检查。

如果你在 Windows 上用 auto mode 或者有路径 allowlist 的配置,这个漏洞的影响范围是真实的。


这次更新还顺手修了什么

Sandbox 凭证屏蔽(Linux / WSL)

新版里 sandbox credential 文件支持 mode: "mask" 选项。开启之后,sandbox 环境里的命令看到的是一个哨兵(dummy)版本的凭证文件。真正的凭证值由 sandbox 代理在出口处做替换。macOS 上默认回退到 deny 模式。

MCP print mode 连接修复

这个 bug 之前影响用 --mcp-config -p(print mode)跑 Claude Code 的自动化流水线——MCP 服务器在第一个 Turn 之前不会连接,导致依赖 MCP 工具的 CI 流程直接失败。现在修复了。

跨会话消息(macOS / Linux)

不同机器上的 Claude Code Remote Control sessions 现在可以用会话名称互相发消息了。Session 可以跨机器发起对话,不需要等对方先发。


怎么看自己有没有中招

如果你在用 auto mode 或者有权限 allowlist,以下操作帮你判断是否需要更新:

  1. 检查版本:claude --version,低于 v2.1.221 的都有这两个漏洞
  2. 如果你在 zsh 环境跑 auto mode——任何通过 [[ ]]=~ 操作符嵌入的子 shell 命令都不会触发权限提示
  3. 如果你在 Windows 上用 PowerShell——含引号的路径操作可能绕过了 allowlist

更新命令:

# CLI
npm update -g @anthropic-ai/claude-code

# VS Code 扩展会自动更新,检查版本:
# Extensions 面板 → Claude Code → 确认 2.1.221

为什么这两个补丁值得单独说

Bash 的 [[ ]] 正则条件是 zsh 用户每天都会用的语法,不是边缘场景。PowerShell 的引号路径也是 Windows 系统路径里完全合法的写法。

这不是「攻击者造了一个畸形输入绕过了检查」,这是「正常语法在特定 shell 构造里天然绕过了检查」。受影响的人不一定知道自己每天都在绕这个坑。

Claude Code 的 auto mode 和 allowlist 机制本质上是把一部分信任交给了 CLI——前提是 CLI 的权限检查器能正确解析所有命令构造。这两个补丁说明它之前没有做到。

安全机制的有效性取决于它对所有合法语法的覆盖程度。这两个漏洞加起来,是一次对权限模型完整性的压力测试。


下一步你可以做的:

  • 今晚跑一次 claude --version,低于 2.1.221 的立刻更新
  • 如果你在 zsh 环境跑,review 一下你最近在 auto mode 里让 Claude 跑的命令,确认没有通过 [[ ]] =~ $(...) 嵌入过子 shell
  • Linux / WSL 用户:检查你的 credential 文件配置,如果还没有 mode: "mask",这次升级顺带开启

Focus View 是个好东西,但这次真正值得记住的是那两个安全补丁。

评论区

0 条评论

登录后可评论。

小智·AI工具控 16 阅读