dsh-editor-link:在 VS Code 里处理 DSH 审批、提问与编辑器上下文

前言

用 DeepSeek Harness(DSH)写智能体时,常见状态是浏览器里的 DSH Web UI 和 VS Code 各开一窗:工具要权限时得切回页面点批准,想让智能体知道你正在看哪份文件、哪段选中,又得自己复制路径或片段。社区里已有选区插入、文件跳转、ACP 桥接等零散能力,但 README 里点名的两个高频动作——在你当前所在的编辑器里回答审批,以及把编辑器上下文交给智能体——往往仍要来回切换。

dsh-editor-link 由维护者 ferrisching 发布,在 DSH 社区目录中归类为客户端插件。它把 DSH 插件与 VS Code 扩展连成一体,经本机回环、带 token 认证的 JSON-RPC 通道通信;简介表述为:在编辑器中处理 approvals、questions 与 editor context,走同一条已认证 loopback bridge。

这是什么

dsh-editor-link 是一个产品、两半实现:DSH 侧 host 插件(npm 包名 dsh-editor-link)与 VS Code 扩展(Marketplace 标识 ferrisching.dsh-link)。浏览器里的 DSH 与 VS Code 可同时在线;审批与提问在任一侧先答即生效,晚到的回答会被明确拒绝(错误码 -32002),不会静默成功。

许可证为 MIT;GitHub 仓库 ferrisching/dsh-editor-link 当前星标为 1。npm 包版本在 package.json 中为 0.1.1。

核心功能

下列能力均来自项目 README,按使用场景归纳。

审批与提问留在编辑器

  • 工具调用需要权限时,VS Code 弹出原生通知,可选 Allow once / Reject,无需为审批单独切窗。
  • ask_user_question 在侧栏以卡片展示:单选用点击,多选勾选后提交,也可输入自定义答案;不在侧栏外弹出 QuickPick。
  • Web UI 侧仍会出现对应卡片;两侧竞态,先答者获胜。

编辑器上下文与选区

  • ide_context 工具可读当前活动文件、诊断信息(file:line:col)以及当前选区。
  • 命令 DSH Link: Send Selection to Composer 将选区以 path:lines 加 fenced 代码块形式送入 DSH composer。
  • 可说「@ 我正在看的文件」,由 ide_context 提供上下文;或选中代码后执行上述命令只交片段。

跳转、侧栏与会话

  • 状态栏项可打开智能体最近一次读写的文件及行号;Web UI 中文件工具卡片带 ↗ 按钮,行为一致(host 路由 POST /editor-link/open,体为 { filePath, line })。
  • 活动栏 DSH 视图:实时 transcript、内联审批、可发送/引导/停止一轮的 composer。
  • 会话按 DSH workspace 分组,并限定到当前 VS Code 文件夹;归档与空白会话隐藏,切换文件夹会重新限定列表。
  • 侧栏可切换会话的 model、reasoning effort、permission preset;composer 在一轮结束后可预测下一条消息(输入取消、Tab 接受、↻ 重 roll、Esc 关闭)。
  • 可在 VS Code 内用已认证 URL 打开完整 DSH Web UI 标签页。

桥接机制(便于排查)

  • Host 插件在回环地址监听端口 7410–7419,并写入发现文件 ~/.dsh/editor-link/<pid>.json(权限 0600),内含端口与 token。
  • 扩展读取发现文件,对每个 DSH 进程维持一条 JSON-RPC 2.0 连接,并处理 approval/request、user-questions/request。
  • 浏览器半部通过 GET /editor-link/events(SSE)订阅事件(如 composer.insert、editor/reveal),与扩展协同。

环境与依赖

组件 要求
DSH 已验证 0.2.0-rc.2、0.2.1-rc.1、0.2.1-rc.2
VS Code 1.85 及以上
Node 20 及以上(插件侧)

安装与启用

安装分 DSH 插件与 VS Code 扩展两步;仅装 npm 包不会自动加载 profile bundle。

1. 安装 DSH 插件

GUI:打开 Plugins → Add plugin → 粘贴 dsh-editor-link → 安装。

CLI(资料原文命令):

dsh plugin --profile desktop add dsh-editor-link

说明:CLI 只安装包,不会注册 profile bundle;需手动把 dsh-editor-link 追加到 ~/.dsh/profiles/<profile>/package.json 的 dsh.profile.bundles。GUI 安装会替你完成注册。

2. 安装 VS Code 扩展

从 Marketplace 安装:

code --install-extension ferrisching.dsh-link

离线可从 Releases 下载 dsh-editor-link-extension-<version>.vsix,再执行:

code --install-extension <file>.vsix --force

重载 VS Code 窗口后,活动栏会出现 DSH 视图。

典型用法

README 给出的最短路径如下。

  1. 启动 DSH。桥接会自动连接;智能体第一次触及文件后,状态栏相关项会出现。
  2. 打开活动栏 DSH 视图。会话会加载「包含当前 VS Code 文件夹」的 DSH workspace。
  3. 在 composer 里提问。工具需要权限时,在 VS Code 通知里回答——Web UI 上对应卡片会同步消失。
  4. 需要文件上下文时提及当前打开的文件(经 ide_context);或选中代码运行 DSH Link: Send Selection to Composer。

常用命令:

命令 作用
DSH Link: Send Selection to Composer 将选区推入 composer
DSH Link: Open Last File Touched by the Agent 跳转到智能体最近读写的文件
DSH Link: Open Active Session in Browser 在系统浏览器打开当前会话的 DSH Web UI

侧栏工具栏还提供 model、effort、permission 选择,以及 + 菜单(/goal、/plan、/feedback、/compact、/export 等)和发送/停止控制。

适用场景与注意

适合已经在用 DSH desktop profile、日常在 VS Code 写代码、又希望减少「浏览器批权限、手贴文件上下文」切换的开发者。

安全与成本(README Security and cost):桥接仅监听 loopback,每次请求需发现文件中的 token,DSH 重启后 token 会轮换;项目声明无遥测、无出站网络调用。使用前仍建议自行阅读源码与 MIT 许可证。

已知限制以仓库 README 的 Known limitations 为准;截断资料未完整收录该节,安装前可在 GitHub 阅读全文。

插件在 DSH 进程权限下运行;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系,不宜当作官方应用商店。

结尾

dsh-editor-link 把 DSH 与 VS Code 收成一条本机认证通道:审批、提问、IDE 上下文、选区进 composer 与文件跳转,可在编辑器侧完成,并与 Web UI 保持同一套会话状态。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜