dsh-redline:在 Harness 浏览器里点选元素,把结构化视觉反馈交给 Agent

前言

用 DeepSeek Harness(DSH)改前端时,常见问题是用文字描述 UI:「中间那块按钮看着不对」——Agent 得猜是哪个节点、要改成什么样。纯截图能定位区域,却难带上可执行的 selector、你在页面上试过的样式差分,以及裁剪后的上下文图。

dsh-redline 是面向 web profile 的客户端插件:在 Harness 内置浏览器打开的页面上,点选元素、写评论或现场调样式,确认后把标注收进输入框上方的卡片;发送下一条消息时,这些内容会以结构化快照附在对话里,供 Agent 直接据此改代码。

这是什么

  • 名称:dsh-redline(npm 包名与仓库名一致)
  • 维护者:klaus-2
  • 分类:客户端(注入 Harness 浏览器页面)
  • 许可证:MIT(见仓库与 npm 元数据)
  • 定位:在 Harness 浏览器内做可视化评审——选中元素、评论、实时样式预览,并把 selector、无障碍信息、裁剪截图、样式 before→after、文本修改等一并交给 Agent。

插件以 DSH 的「一切皆插件」方式安装;社区目录在 SkillHub 插件页,与 DeepSeek / 幻方无官方应用商店从属关系,使用前请自行核对源码与许可证。

核心功能

以下能力均来自项目 README 与 package.json 说明。

元素标注与两种 Pin 模式

  1. 在 Harness 浏览器渲染的任意页面上,悬停高亮,点选目标元素。
  2. 评论模式(C):选中后写「希望怎么改」;Popover 锚定在元素上。
  3. 调整模式(V):打开实时样式检查器,改文字、颜色、排版、尺寸、间距、边框与效果等,页面即时预览;可逐行重置、回滚。
  4. 确认:Pin 汇总到输入区上方的卡片;可就地编辑、resolve/reopen/delete。发送消息时附带;从卡片移除 Pin 时,页面对应 overlay 也会同步去掉(reconciliation)。

自由标注画布(D)

全页画布:笔刷、线、箭头、矩形、椭圆、 numbered step 标记、文字等。可将整页截图与绘制内容合成后送入对话。

Agent 收到的结构化块

每个 Pin 在单次快照里占一块,典型字段包括:

  • Target:标签、role、无障碍标签
  • Target selector:回到该元素的 CSS 路径
  • Target text / Component:内容与框架提示
  • Screenshot (cropped around the target):围绕标记区域的 JPEG,非整屏
  • Comment:你的说明
  • Requested visual changes:现场调整记录为 prop: before -> after
  • Requested text change:若在检查器里改过元素文本

快照作为 producer-owned 的 context 挂在你的下一条消息上,聊天里以原生可折叠卡片展示。

国际化与运行范围

Overlay UI 支持 English、Português (Brasil)、简体中文,随浏览器 locale 选择。

当前范围:单 Harness 实例、内置浏览器渲染的页面、基于视口的裁剪截图。远程浏览器与整页捕获 README 标明暂不在范围内。

本地服务(默认无需配置)

插件启动 loopback 服务,默认 127.0.0.1:47477,占用则依次尝试后续 20 个端口;提供 overlay、截图附件与标注 intake。实例密钥存放在 ~/.dsh/profiles/<profile>/dsh-redline/instance.secret(模式 0600),不注入页面。

安装与启用

官方安装命令(须使用 web profile):

dsh plugin --profile web add dsh-redline
dsh web

私有或未发布构建可从 git 或本地路径安装:

dsh plugin --profile web add git+https://github.com/klaus-2/dsh-redline.git
dsh plugin --profile web add ./dsh-redline

package.json 要求 Node >=20。npm 上包版本以发布为准(仓库内开发版本见 tag/release,安装时以 dsh plugin 拉取的包为准)。

典型用法

在 dsh web 打开的目标页中,用快捷键进入模式并完成标注后发送。

按键 作用
C 评论模式:点元素并描述应如何修改
V 调整模式:点元素并打开实时样式检查器
D 自由标注画布
Esc 取消当前模式、Popover 或预览
Enter 在 Popover 中保存标注

推荐流程:

  1. 启动 web 会话并在 Harness 浏览器中打开待改页面。
  2. 按 C 或 V 点选问题元素;写评论或在检查器里试样式,确认后 Pin 进入卡片。
  3. 需要流程说明或跨区块示意时,按 D 在整页上绘制再发送。
  4. 在输入框附带卡片中的快照,发送下一条消息,由 Agent 根据结构化上下文改仓库代码。

未发送前,绘制内容仅在内存中,刷新不保留;Pin 与标签页作用域相关。

适用场景与注意

适合:在 DSH web 工作流里做 UI 评审、把「指哪打哪」的反馈交给编码 Agent,而不是反复用文字猜 selector。

安全与信任(摘自 README Security notes,摘要):

  • Loopback 仅绑定 127.0.0.1,校验 Host;私有路由需实例密钥,页面通过受限 message bridge 通信,overlay 不持有密钥。
  • 经 Redline 提交的评论视作用户输入;代理不转发 cookie。
  • 插件按当前 DSH 进程权限运行,安装前请阅读 GitHub 仓库 源码与 THIRD-PARTY-NOTICES.md(含 tencil、html2canvas 等归属说明)。

第三方与启发:overlay 样式体系部分源自 tencil;交付环路受 dsh-web-review、dsh-annotate 等社区项目启发(见 README Credits)。

结尾

dsh-redline 把「点元素、试样式、留评论」收成 Agent 可消费的一条结构化上下文,减少 UI 反馈中的歧义。若要安装或查看版本信息,可从社区目录进入,也可直接查阅 GitHub:

  • 目录页:https://www.skillhub.cn/plugins/klaus-2/dsh-redline
  • 仓库:https://github.com/klaus-2/dsh-redline
羽毛球分组比赛记分
小程序二维码

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

Xiaoye