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
羽毛球分组比赛记分
小程序二维码

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

小夜