deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
像 Cursor 一样框选元素:你点哪里,Agent 就改哪里。
PickDOM 是 DSH(DeepSeek Harness)侧边栏的双引擎 Browser 插件。本地 HTML 文件与 http/https Web App 都能在侧边栏直接打开,悬停高亮、点击框选,元素的 selector、文字、outerHTML、尺寸与关键样式即刻进入 Agent 对话。给 Agent "指"一个界面元素,从此只需要一次点击。
打开页面 → 点框选 → 点元素 → Agent 收到引用 → 改完保存
仓库名
dsh-pickdom;npm 包名保持为dsh-html-picker-preview,安装命令以包名为准。

让 Agent 改前端界面,最贵的环节从来不是写代码,而是"指清楚改哪里":
PickDOM 把"指"压缩成一次点击,而且交给 Agent 的是结构化引用(selector、文字、outerHTML、尺寸、关键样式),不是一张需要猜的图片。
点击工具栏中的框选按钮进入 Picker 模式,在本地 HTML 或 Web App 中悬停并点击目标元素。

选中后,元素引用会直接进入 Agent 输入框。你可以继续补充"改下布局"、"调整颜色"等要求,再把带有精确 DOM 上下文的指令发送给 Agent。

进入编辑模式后,点击页面元素即可定位到对应 DOM,并在多行编辑器中修改内容。

选中元素后点击"复制",PickDOM 会创建副本,并自动重写常见 id、ARIA、表单与 SVG 引用,降低引用冲突风险。

复制后的元素仍可继续调整尺寸、编辑文字、删除或发送给 Agent。

在侧边栏打开 .html/.htm 文件,相对路径的 CSS、JS、图片、字体与嵌套 iframe 全部正常解析。除了框选,还能直接改:
file:// 地址栏input、textarea,Cmd/Ctrl+Enter 保存、Esc 取消id、ARIA、表单与 SVG 引用,避免冲突Cmd/Ctrl+Z、Cmd/Ctrl+Shift+Z)Shift 保持比例地址栏输入 http://localhost:5173、localhost:5173 或 https://example.com 即可打开 Web App。它使用 Electron WebContentsView(原生 Chromium),而不是 iframe 或反向代理:
X-Frame-Options / frame-ancestors 限制Overlay.setInspectMode 高亮与选择元素Esc 或再次点击框选按钮退出要求 DSH >=0.1.1-rc.1。
dsh plugin --profile <name> add dsh-html-picker-preview
或手动在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加:
- insert:
- id: html-picker-preview
name: 'dsh-html-picker-preview'
config:
mediaLimit: 33554432
allowOutsideCwd: false
injectBridge: true
更新 Node 宿主路由后需重启 DSH Desktop;仅 client 变化时刷新 GUI 即可。
工具栏上三个互斥模式,覆盖"看、指、改"完整链路:
| 模式 | 用途 | 行为 |
|---|---|---|
| 浏览 | 正常使用页面 | 链接、按钮、表单全部可交互 |
| 框选 | 给 Agent 指元素 | 悬停描边,点击插入引用;保持框选可连续选择,Esc 退出 |
| 编辑 | 直接改本地 HTML | 点击元素出现选择框、面包屑与浮动操作栏 |
本地文件读写走短生命周期 capability,而不是裸路径:
127.0.0.1 时预览使用 localhost,反之亦然force:true 绕过frame-ancestors 只允许当前 preview origin 与对应 DSH GUI origin预览使用 allow-same-origin 以兼容复杂本地原型的 localStorage 与同源嵌套 iframe;安全边界由独立回环主机、作用域 token、GUI authority、HMAC 保存 capability、CSP 与路径围栏共同提供。
诚实比演示重要,这些是当前版本的真实边界:
WebContentsView 位于 DSH renderer DOM 之上,覆盖页面区域的 DSH 全局弹窗可能被原生网页遮挡;切换 File Engine、关闭 Tab 或卸载插件时会立即隐藏并销毁 surfacehtml/head/body/script/style/link/meta/template/noscript;SVG 内部节点只选择完整 SVG,Canvas 只能选择 Canvas 元素;跨域 iframe 只作为 iframe 元素处理,由预览 capability 加载的本地嵌套页面可继续选择和编辑| 键 | 默认值 | 说明 |
|---|---|---|
mediaLimit |
33554432 |
单文件读取与保存上限(字节,默认 32MB) |
allowOutsideCwd |
false |
是否允许访问会话 cwd 外的路径;放开后任何本地文件都可被回环请求读取,属自担选项 |
injectBridge |
true |
是否向 HTML 响应注入 picker/editor 运行时 |
dsh-pickdom/
├── package.json
├── cordis.patch.yml
├── lib/
│ ├── index.js # Node:作用域 token、文件资源、保存 API、Browser API
│ ├── browser-surface.js # Electron WebContentsView + CDP Inspect
│ ├── bridge.js # picker 与嵌套 iframe 消息桥
│ ├── editor-runtime.js # 选择、文字、复制、尺寸、undo/redo、序列化
│ ├── editor-runtime.css # 选择框、浮动工具栏、尺寸手柄
│ └── client.js # Browser UI、三模式、Agent 引用、保存协调
└── README.md
Browser 通过 dsh-better-sidebar 注册 Tab 和 HTML 文件查看器。Agent 引用使用 DSH inputTriggers / reference codec;不可用时回退为结构化草稿文本。
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。