dsh-selection-ask

DSH PLUGIN浏览器与联网

仓库 lzbaclz/dsh-selection-ask · npm dsh-selection-ask

浏览器与联网 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness Web 界面提供 ChatGPT 式选择提问:选中对话文本即浮现「询问 DeepSeek」按钮,一键将所选内容以引用块写入输入框,无需复制粘贴。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 5 复刻 1 · 未关闭 issue 1
最近更新 2026-09-17 创建于 2026-08-16
README 11.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-ui-conversation@^0.1.0-rc.6 等 4 个需要同时安装的同级依赖
npm 包名dsh-selection-ask可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-selection-ask:DeepSeek Harness 的 ChatGPT 风格划词引用插件

  • 选中文本即现按钮
  • 一键引用到输入框
  • 仅引用对话内容
  • 会话切换自动重置

适用场景

联网搜索

上游标签

composerdeepseek-harnessdshdsh-pluginquoteselection

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方lzbaclz仓库 dsh-selection-ask · 默认分支 main
分类浏览器与联网search
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue5 / 1 / 1收录时的数值,非实时
创建 / 更新2026-08-16 · 2026-09-17最后推送 2026-09-17
本站收录2026-08-27首次进入本站目录的时间

README 全文

11.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-selection-ask






English · 安装 · 使用方法 · 开发 · 故障排查 · 许可证

选中即引用,一键问 DeepSeek。

DeepSeek Harness 是一个以文本为先的终端 / agent 工作台,但「把上下文引用回对话」本该是一个手势,而不是复制粘贴的苦工。dsh-selection-ask 给 Web GUI 加上 ChatGPT 式的选区助手:在会话聊天流里选中一段文字,选区旁边就会浮出 「询问 DeepSeek」 按钮。点击它——选中文字即以 Markdown 引用(> 前缀)写入输入框,输入框自动聚焦、光标停在末尾,直接打字追问即可。

为什么选它

  • 零摩擦引用 —— 你在 ChatGPT 里熟悉的那套手势,在 DeepSeek Harness 里原样拥有。
  • 官方集成,不打补丁 —— 通过 harness 的 inputActions.setDraft 输入机 API 写入,撤销历史、草稿持久化全部照常;不碰 DSH 内部实现,不直接改 DOM 状态。
  • 一条命令安装 —— 编译好的 lib/ 已提交进仓库,从 GitHub 安装无需任何构建步骤。

特性

  • 按钮跟随选区 —— 用 position: fixed 定位到选区的屏幕坐标,自动贴边钳制,选区完全滚出视口后隐藏。
  • 只引用聊天流里的文字 —— 选区必须落在聊天流容器([data-conversation-scroll])内;在输入框(composer)里选中文字不会触发(把草稿引用回草稿没有意义)。
  • 引用感知的拼接 —— 多行选区逐行加 > 前缀;草稿为空时直接替换,草稿非空时以空行隔开追加成独立段落。
  • 会话级作用域 —— 切换会话自动重置按钮状态;提问 / 审批 composer 接管输入区时按钮随默认输入条一起隐藏。

环境要求

  • 带 web profile 的 DeepSeek Harness(dsh web),DSH 包版本为 0.1.0-rc.6 一代。
  • 浏览器打开 harness GUI(默认 http://127.0.0.1:3080)。
  • 从源码构建需要 Node ^22.19.0 || >=24 和 pnpm;直接安装不需要(编译好的 lib/ 已提交)。

安装

> 环境要求:DSH ≥ 0.1.5-rc.2(next 通道 / DSH Desktop 桌面版)。
>
> | 插件版本 | 适配的 DSH |
> |---|---|
> | 0.1.1 | DSH ≥ 0.1.5-rc.2 |
> | 0.1.0 | DSH 0.1.0-rc.x(dsh-client-runtime 时代) |

> 用 DSH Desktop 桌面版? 在应用内终端执行同样的命令、不用写 --profile
> (会自动指向 desktop profile)。首次安装需要重启一次;以后升级走热更新,无需重启。

第 1 步:安装包

从 npm 安装(推荐,一条命令)

dsh plugin --profile web add dsh-selection-ask

从 GitHub 安装(最新提交,无需构建)

dsh plugin --profile web add github:lzbaclz/dsh-selection-ask

想固定版本可指定 tag:dsh plugin --profile web add github:lzbaclz/dsh-selection-ask#v0.1.1

从本地克隆安装

git clone https://github.com/lzbaclz/dsh-selection-ask.git
dsh plugin --profile web add link:/绝对路径/dsh-selection-ask

第 2 步:激活

dsh plugin add 会把包自动登记进 profile 的 dsh.profile.bundles 列表,而本包自带 cordis.patch.yml,因此条目行会在启动时自动插入。下面两种激活路径二选一,绝不要同时用。

路径 A —— 重启(零 YAML 编辑;新安装推荐)

重启 dsh web(如果还没启动就正常启动)。完成——不需要改任何配置文件。

# 停掉你的 dsh web 进程,然后:
dsh web

路径 B —— 运行中的服务器热激活(不重启)

直接用 pnpm(不要用 dsh plugin,因为它会把包登记进 bundles),保持 bundles 列表不动,然后改 profile 的 patch 层——DSH 实时监听该文件并热应用:

cd ~/.dsh/profiles/web
pnpm add github:lzbaclz/dsh-selection-ask

然后打开 ~/.dsh/profiles/web/cordis.patch.yml,把 [] 替换成 insert 块——文件必须保持合法的 YAML 列表:

# 改之前:
# Your patch layer for this dsh profile, applied after every bundle layer:
# a top-level YAML array of loader patch entries (id-targeted config
# overrides, disables, and insert lists; `!!js` expressions allowed).
[]

# 改之后:
# Your patch layer for this dsh profile, applied after every bundle layer:
# a top-level YAML array of loader patch entries (id-targeted config
# overrides, disables, and insert lists; `!!js` expressions allowed).
- insert:
- id: dsh-selection-ask
name: dsh-selection-ask
config: {}

保存文件并刷新浏览器页面——插件已加载。

> ⚠️ 不要把路径 A 和路径 B 混用(比如 dsh plugin add 之后又手动加 patch 行):条目会被注册两次,dsh web 启动失败,报 duplicate loader entry id: dsh-selection-ask。
>
> ⚠️ 不要"追加" YAML 块到已有的 [] 后面——那会变成非法文件,dsh web 启动失败,报 failed to parse patches。请按上面示范把 [] 替换掉。
>
> 如果你的 profile 不叫 web,换成你的 profile 名;自定义了 harness 主目录的话,把 ~/.dsh 换成你的 $DSH_HOME。

旧版 profile(由较早版本的 dsh 创建)可能缺少 pnpm-workspace.yaml 里的 autoInstallPeers: false。补上它,pnpm 就永远不会尝试自动安装预发布版本的 peer:

packages:
- .

nodeLinker: hoisted
autoInstallPeers: false

第 3 步:验证

刷新 GUI 页面,在聊天流里选中一句话——选区旁边应浮出 「询问 DeepSeek」 按钮。点击它,文字会以引用形式进入输入框。

升级与热更新

dsh plugin --profile web add dsh-selection-ask@latest   # 拉取新版本(桌面版:用应用内终端)

DSH 组合里常驻 dsh-client-hmr 链(会话实测:桌面版组合 - id: client-hmr,未禁用),
它监听已安装插件 bundle 的变化并自动重载——所以:

  • 升级已装插件(同一条目、文件内容变化)→ 热更新,无需重启应用,页面通常自动生效
  • 首次新增插件(名册增加条目)→ 需要重启一次 DSH 服务

插件的样式、词典、组件注册都随 fiber 生命周期清理,热重载不会残留旧代码。

使用方法

  1. 在会话聊天流里选中任意文字。
  2. 点击选区旁浮出的 「询问 DeepSeek」 按钮。
  3. 选中文字被引用进输入框(形如 > 选中的文字),输入框已聚焦、光标在末尾——直接输入追问并发送。

卸载

dsh plugin --profile web remove dsh-selection-ask

如果你用的是路径 B,还要把 cordis.patch.yml 里的 insert 块删掉(还原成 []),然后刷新 / 重启。

故障排查

症状 原因与解法
dsh plugin add 失败:ERR_PNPM_NO_MATCHING_VERSION,包名是 @deepseek-ai/... 你的 profile 缺少 pnpm-workspace.yaml 里的 autoInstallPeers: false(旧版 profile),pnpm 尝试自动安装预发布版本(rc)的 peer 依赖而失败。补上这一行(见下文示例)、删掉 profile package.json dependencies 里多余的 @deepseek-ai/* 条目、删除 profile 的 pnpm-lock.yaml,然后重跑。本插件已把所有 peer 标记为 optional,因此永远不会触发自动安装。
dsh web 启动失败:failed to parse patches insert 块被追加到了文件原有的 [] 后面,YAML 变成非法。把 [] 替换成 insert 块(见路径 B)。
dsh web 启动失败:duplicate loader entry id: dsh-selection-ask 插件被注册了两次——你既用了 dsh plugin add(会加 bundle)又手动加了 patch 行。删掉其中一个。
用 dsh plugin add 装好后刷新页面没反应 bundles 列表的变更在启动时才生效——重启 dsh web(路径 A),或改用热激活的路径 B。
选中文字后按钮始终不出现 选区不在聊天流内(试试选一条聊天消息的文字);或激活后没刷新页面;或 insert 行缺失。
按钮出现但点击无效 浏览器缓存了旧 bundle——强制刷新页面(Cmd/Ctrl+Shift+R)。若本地重新构建过,先 pnpm build 再重新 link:。
出现提问卡片时按钮消失 属预期行为:overlay 随默认输入条在接管状态下一起隐藏,接管结束后恢复。
dsh plugin add 失败 任何 pnpm 写法都支持(link:、github:、tarball URL)。检查 profile 路径是否在 ~/.dsh/profiles/ 下,以及 Node 版本。

开发

编译好的 lib/ 已提交,正常安装永远不需要构建。想改代码:

git clone https://github.com/lzbaclz/dsh-selection-ask.git
cd dsh-selection-ask
pnpm install
pnpm typecheck   # host + client 两段 tsc,零错误
pnpm build       # tsc(host) + tsc(client) + tsdown 打包
pnpm verify      # 离线冒烟:manifest/exports/patch/产物形状
pnpm test:dom    # 无头 DOM 测试:jsdom 里挂载真实组件,断言选区→引用→写入草稿      # 对构建产物做离线冒烟校验
  • src/index.ts —— host 半(空 apply;它的存在是为了让服务器插件名册扫描到本包)。
  • src/client/index.tsx —— 浏览器半:注入样式,注册进 conversation.input.overlay 插槽。
  • src/client/SelectionAskButton.tsx —— 悬浮按钮组件:选区检测 / 定位 / 引用写入。
  • src/client/quote.ts —— 纯逻辑 buildQuote / appendQuote(verify 离线测试的对象)。
  • src/client/styles.ts —— 按钮样式 + HMR 安全的 `` 注入。

改完 src/ 后重新构建、重新安装(或重新 link:)包,再刷新页面即可。

原理

插件把一个组件注册进会话级插槽 conversation.input.overlay,从而获得会话输入套件(useInput、inputActions)。组件在文档层监听 selectionchange / mouseup,检测到聊天流内的有效选区后,在选区包围盒处渲染一个 position: fixed 按钮。点击时把选区转成 Markdown 引用、与当前草稿拼接,通过输入机官方写入口 inputActions.setDraft 全文写入,最后聚焦输入框 textarea。

路线图

  • [x] 发布到 npm(dsh plugin --profile web add dsh-selection-ask)—— 0.1.1 已上架。
  • [ ] 可选快捷键(如 ⌘⇧Q)一键引用当前选区。
  • [ ] 按钮文案 / 语言可配置。

许可证

MIT © lzbaclz


随时欢迎提 Issue 和 PR——开一个 issue 告诉我们你用这个插件做了什么。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-selection-ask 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-selection-ask`。

dsh-selection-ask 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-selection-ask 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-selection-ask 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2。版本较多,只列出前 8 个。

dsh-selection-ask 需要什么运行环境?

Node.js ^22.19.0 || >=24;需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-ui-conversation@^0.1.0-rc.6、react@^18.2.0、react-dom@^18.2.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-selection-ask 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-selection-ask 有哪些功能?

选中文本即现按钮、一键引用到输入框、仅引用对话内容、会话切换自动重置。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

lzbaclz 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。