配了三年 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.ts 和 Running 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,以下操作帮你判断是否需要更新:
- 检查版本:
claude --version,低于 v2.1.221 的都有这两个漏洞 - 如果你在 zsh 环境跑 auto mode——任何通过
[[ ]]里=~操作符嵌入的子 shell 命令都不会触发权限提示 - 如果你在 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 是个好东西,但这次真正值得记住的是那两个安全补丁。
评论区
登录后可评论。