← 返回信息流
AI 资讯Hacker News·3 小时前

Show HN:Visual Studio 原生支持 Claude Code 差异对比与接受拒绝

原标题:Show HN: Claude Code for Visual Studio (native diff with accept/reject)

速览

该工具展示了如何在 Visual Studio 中原生集成 Claude Code。它提供了差异对比功能,并允许用户直接接受或拒绝代码更改。这提升了开发者使用 AI 辅助编程时的交互体验。

AI 深度解读

Show HN: Claude Code for Visual Studio (原生 Diff 与接受/拒绝机制)

背景

尽管 Anthropic 的 Claude Code 已经在 VS Code 和 JetBrains 系列 IDE 中提供了第一流的集成体验,但在微软的 Visual Studio 生态中,这一体验长期缺席。社区用户 anthropics/claude-code#15942 曾指出这一缺口,而本文介绍的开源项目正是为了填补这一空白。

该项目是一个名为 "Claude Code for Visual Studio" 的社区扩展,旨在将 Claude Code 的 CLI(命令行界面)能力原生引入 Visual Studio 2026。它并非对 AI 代理功能的重新实现,而是作为 Claude Code 集成协议在 IDE 端的“另一半”,通过本地 WebSocket 桥接,让 CLI 驱动 Visual Studio 的原生 Diff 窗口、获取编译器诊断信息以及读取用户选中的代码上下文。

重要声明:这是一个社区项目,与 Anthropic 无关。目前仅支持 Visual Studio 2026。

核心内容

该扩展的核心价值在于实现了 Claude Code 与 Visual Studio 之间的原生协议桥接,消除了传统终端交互中繁琐的复制粘贴步骤,提供了更流畅的 IDE 内体验。

1. 原生 Diff 窗口与审批机制

  • 单一审批门控:Claude 生成的代码编辑建议直接在 Visual Studio 的原生 Diff 查看器中打开。用户只需点击“Accept”(接受)或“Reject”(拒绝)即可完成操作,无需在终端中再次输入 y/n 进行确认。
  • 拒绝并反馈:如果用户拒绝某次编辑,可以附带反馈信息告诉 Claude 需要修改的地方,Claude 会根据这些备注重新生成代码。
  • 自动应用(Run Wild):面板提供切换开关,允许用户在不打开 Diff 窗口的情况下直接应用编辑。这适用于用户信任 AI 输出、希望让其“自由发挥”的场景。此设置每次会话启动时重置。

2. 上下文感知能力

  • 诊断信息共享:扩展能够读取 Visual Studio 的编译器错误和警告(支持 C# 和 C++),并将这些上下文传递给 Claude,使其能够针对性地修复代码问题。
  • 选中内容上下文:Claude 自动感知用户当前正在查看的文件及选中的代码行,从而提供更精准的代码建议。

3. 实时状态面板

  • 这是一个可停靠的面板,显示连接状态、编辑决策历史、Token 使用情况以及预估成本(包括最新调用成本和累计会话成本)。

4. 技术架构与工作原理

  • 协议桥接:扩展本身不执行任何 AI 模型调用或代理工作。它启动一个本地 WebSocket 服务器,并在 ~/.claude/ide/<port>.lock 写入锁文件。
  • CLI 驱动:扩展启动 claude CLI,设置 ENABLE_IDE_INTEGRATION 环境变量并传入桥接端口,使 CLI 自动连接并通过 MCP / JSON-RPC 协议通信。
  • 工具实现:扩展实现了 CLI 驱动所需的 IDE 工具,包括 openDiffopenFilegetDiagnostics、选中内容更新以及 Diff 标签页的生命周期管理。
  • 权限钩子:为了让 Visual Studio 的 Diff 成为唯一的审批门控,扩展会在工作区的 .claude/settings.json 中安装一个 PreToolUse 钩子,将提议的编辑路由到 Diff 窗口。
    • vs-permission-hook.ps1:将 Edit/Write/MultiEdit 编辑通过 VS Diff 路由。
    • vs-usage-hook.ps1:报告转录路径,以便面板显示 Token 统计信息。

5. 安装与使用

  • 安装方式
    • 通过 Visual Studio 扩展管理器搜索 "Claude Code for Visual Studio"。
    • 从 Releases 下载 .vsix 文件并双击安装。
  • 前置条件
    • Visual Studio 2026。
    • 已安装并认证 Claude Code CLI(参考 Claude Code 文档)。
    • 已针对 claude 2.1.173 版本进行测试。
  • 操作流程
    1. 在 VS 2026 中打开项目或解决方案。
    2. 通过 View -> Other Windows -> Claude Code 打开面板,点击 "Launch Claude Code"(也可在 Tools 菜单中找到)。
    3. 终端将启动 claude 并自动连接 IDE(无需手动输入 /ide)。面板状态指示灯变为绿色表示“Connected”。
    4. 向 Claude 提出修改请求,其编辑将以 Diff 形式呈现,点击 Accept、Reject 或 Reject with feedback 即可。

6. 安全与隐私

  • 本地通信:桥接仅绑定到 127.0.0.1,并在每次连接时验证来自锁文件的认证令牌。令牌不会被记录。
  • 无外部调用:扩展本身不进行任何网络调用或 LLM 调用。所有 AI 工作均由 claude CLI 在用户自己的认证下完成。
  • 成本估算:Token 成本为基于固定层级价格的估算值,仅在点击 "Show est. cost" 时显示,不作为计费依据。

关键要点

  • 社区驱动,非官方:该项目由 Rishi Gulati 开发,MIT 许可,与 Anthropic 无隶属关系。
  • 仅支持 VS 2026:目前不支持 Visual Studio 2022,但若有需求计划后续支持。
  • 依赖 CLI 版本:IDE 集成协议未公开文档化且版本脆弱,当前已知兼容版本为 claude 2.1.173。升级 CLI 后需运行冒烟测试。
  • 诊断限制:获取编译器诊断信息需要加载完整的项目(而非“打开文件夹”模式下的松散文件),因为 Roslyn 编译器分析器需要项目上下文。
  • Token 统计刷新机制:Token 统计仅在编辑发生时刷新(通过可靠的钩子触发),纯聊天轮次可能不会立即更新统计信息。
  • 工作目录问题:新文件可能出现在错误文件夹,建议通过扩展启动(它会将工作目录固定到工作区)或在仓库内部运行 claude
  • 调试构建:开发者可通过 msbuild 重建项目,并按 F5 在实验实例中调试。架构指南见 CLAUDE.md,未来规划见 ROADMAP.md

意义与影响

1. 完善 AI 编程助手生态

Visual Studio 作为企业级开发的重要平台,此前在 AI 代码助手方面落后于 VS Code 和 JetBrains。该扩展通过协议桥接的方式,以较低成本实现了与 Claude Code 的深度集成,填补了微软旗舰 IDE 在这一领域的空白。

2. 提升开发者体验 (DX)

通过将 Diff 审批、上下文感知和诊断信息整合到 IDE 原生界面中,开发者无需在终端和编辑器之间频繁切换。特别是“原生 Diff 窗口”和“拒绝并反馈”功能,使得 AI 辅助编程更加可控和直观,减少了误操作风险。

3. 开源社区的协作力量

该项目展示了开源社区如何快速响应官方产品的不足。通过逆向工程或社区协作实现未文档化的集成协议,开发者能够迅速获得类似官方支持的功能,同时也为官方后续可能推出的原生支持提供了参考和压力测试。

4. 安全与透明的实践

项目强调“协议桥接”而非“重新实现代理”,确保了所有 AI 调用均在用户本地 CLI 控制下完成,扩展本身不收集数据或进行外部调用。这种设计在提升便利性的同时,最大限度地保障了用户的数据隐私和控制权。

5. 潜在挑战与未来展望

由于集成协议未公开文档化,该扩展的稳定性依赖于 Claude CLI 的版本兼容性。随着 Anthropic 可能推出官方支持的 Visual Studio 集成,此类社区项目可能需要调整策略。然而,其实现的技术细节(如 PreToolUse 钩子、WebSocket 桥接)为

查看原文 →github.com