dsh-plugin-open-with

DSH PLUGIN浏览器与联网

仓库 hyrinx/dsh-plugin-open-with · npm dsh-plugin-open-with

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

DSH plugin为DeepSeek Harness Web会话头部添加胶囊拆分按钮,一键在当前工作区打开VS Code、终端和文件资源管理器,支持自定义启动器与拖拽排序。

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

安装

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

能做什么

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

dsh-plugin-open-with:DeepSeek Harness 的 Windows 工具启动插件

  • 胶囊拆分按钮
  • 四个内置启动器
  • 自定义启动器
  • 拖拽排序
  • 中英双语UI

适用场景

终端命令文件读写联网搜索

上游标签

dsh-plugin

验证等级与安全审查

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
  • 风险详情 未发现严重或警告级问题。

仓库档案

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

README 全文

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

dsh-plugin-open-with
打开方式 · 胶囊拆分按钮
在 DeepSeek Harness Web 会话头部添加胶囊拆分按钮,一键在当前工作区打开 VS Code、终端(CMD / PowerShell)和文件资源管理器。
🖼 效果图 ·
🧩 功能 ·
🚀 安装 ·
🔒 安全模型 ·
🚧 已知限制 ·
🏗 构建与扩展 ·
🤝 贡献 ·
📜 License

🖼 效果图

🧩 功能

  • 💊 胶囊拆分按钮:左半边执行当前选择的启动器;右半边下拉菜单列出全部启动器,点击即切换并立即启动。
  • 🪧 默认启动器:VS Code、CMD、PowerShell、文件资源管理器。它们只是预置的自定义项——毫无特权,同样可以被改、隐藏、删除。
  • ⚡ 设置即改即生效:设置页每次保存后,host 归一化后的文档通过进程内广播推给胶囊按钮,菜单即时重渲染。无需等点开下拉;展开菜单时仍会补读一次,仅作为兜底(如直接手改 settings.json)。
  • ⚙️ 设置页面:在 DSH 设置面板中注入「Open With」配置区域,支持:
  • 统一的项目管理:所有启动器都是平等的普通项,支持统一的添加 / 编辑 / 删除 / 拖拽排序 / 可见性控制。预设项不过是最初写入的那批,编辑与删除同样开放,下拉菜单与设置页所见即所得。
  • 当前项选择:点击卡片切换当前启动器,胶囊按钮同步更新。
  • 按钮位置可切换:胶囊按钮可注入会话标题旁(actions)或右侧工具区(utilities),保存后立即迁移槽位。
  • 按钮顺序可调:同一槽位内按 order 值升序排列,数值越小越靠前(官方「在应用中打开」为 -10),保存后立即重排。
  • 传递会话目录:每项可选是否把会话工作区目录作为参数传给启动器(默认传递)。
  • 一键恢复默认:把启动项列表还原为内置四项(两步确认;只动列表,不重置按钮位置与顺序)。
  • 接管内置按钮:通过本插件自己的 bundle 补丁,声明式关闭 DSH 内置的 open-in-app(Host 与 Client 两半同进同退),会话头部不会出现两个打开按钮。补丁层随插件加载、也随插件消失 —— 卸载后内置按钮自动恢复,本插件从不改动 profile 的 cordis.patch.yml。
  • 图标自动更新:图标从本地可执行文件按需提取;编辑路径后,带修订号的 URL 主动破除浏览器缓存,图标随之更换。
  • 持久化存储:设置自动保存到 profile//open-with/settings.json,重启后保持。
  • 🌍 中英双语 UI:跟随 DSH 客户端全局 locale 自动切换。

🚀 安装

方式一:从 npm 安装(推荐)

已发布到 npm:dsh-plugin-open-with(当前最新 2.0.0)。在终端执行:

# 安装
dsh --profile web plugin add dsh-plugin-open-with

# 验证安装版本
dsh --profile web plugin list

# 卸载
dsh --profile web plugin remove dsh-plugin-open-with

方式二:从仓库安装(开发 / 调试)

git clone https://github.com/hyrinx/dsh-plugin-open-with.git
cd dsh-plugin-open-with
npm install
npm run build
dsh --profile web plugin add "link:$($PWD.Path)"

重启 dsh web 生效。后续修改源码只需重新 npm run build + 刷新浏览器。


🔒 安全模型

本插件会在 DSH 宿主端启动外部程序,安全措施如下:

  1. WebServer 路由 + 连接信任栅栏:host 端在 ctx.webServer 注册 settings / icon / open / log 四条路由;每条都先经 ctx.connection.requestRejection 校验 Host / Origin,抵御 DNS rebinding 与跨站调用。请求体限 64 KiB 且必须是 JSON。
  2. 开放 item 模型,逐项校验:启动目标为设置文档中的普通项 id,Wire 端校验 id 必须真实存在;路径必须是可执行文件存在的绝对目录路径,杜绝任意可执行文件注入。
  3. 版本化图标寻址:图标路由按 id + 修订号寻址,浏览器无法命中过期字节;取不到图标时返回 404 且前端留空位,不展示误导性兜底图。
  4. 双半一致、可回退的接管:内置 open-in-app 的 Host / Client 是一对,由本插件的 bundle 补丁按 id 一并关闭,避免只留一半的残缺形态;该补丁不属于 profile 配置,卸载即自动恢复。

🚧 已知限制

  • 仅支持 Windows:macOS / Linux 适配需要社区贡献。
  • 必须通过本机浏览器回环访问(localhost / 127.0.0.1)。
  • VS Code 需要先把 code 命令加入 PATH:首次运行时 host 用 PATH 解析预设项为绝对路径并写入配置;若命令不在 PATH,该项会保留裸名,需在设置页改填完整 .exe 路径。
  • 终端使用系统自带 cmd.exe / powershell.exe:自定义启动器支持任意 .exe 绝对路径。
  • 图标从本地可执行文件按需提取:由 host 端用 PowerShell 的 ExtractAssociatedIcon 取图标并缓存;取不到时图标位置留空,不显示占位图。

🏗 构建与扩展

npm install
npm run build       # 先清 lib,再 tsdown 出主/客两端 bundle,tsc 出 lib/types/*.d.ts
npm run clean       # 只删 lib(改过 src 文件结构后 build 会自己调它)
npm run typecheck   # tsc -p tsconfig.json --noEmit
npm pack            # 发布前预览 tarball 内容
npm publish --access public

目录结构(双半包:一个 host 半 + 一个 dsh.client 浏览器半):

dsh-plugin-open-with/
├── src/
│   ├── index.ts          host 半入口:四条 webServer 路由 + connection 信任栅栏
│   ├── shared.ts         两半共享的路由、协议、设置模型与归一化
│   ├── storage.ts        settings.json 原子读写 + profile 路径解析
│   ├── logger.ts         host.log 落盘
│   ├── launch.ts         各启动器的 spawn 配方与可执行文件解析
│   ├── icons.ts          从可执行文件提取图标
│   └── client/           浏览器半
│       ├── index.ts      入口:挂载按钮、注入设置页、注册词典
│       ├── OpenWithButton.tsx    胶囊拆分按钮
│       ├── OpenWithSettings.tsx  设置面板(添加/编辑表单、拖拽排序、可见性)
│       ├── ItemIcon.tsx          两个界面共用的行内图标
│       ├── settings-events.ts    设置变更进程内广播(按钮即时刷新 + 图标破缓存)
│       ├── controller.ts         浏览器 → host 的 RPC 载体
│       └── locales.ts            中英双语词典
├── locale/               插件展示元数据(DSH 插件管理页的标题与描述来源)
├── lib/                  构建产物,勿手改(index.js / client.js / types/)
├── cordis.patch.yml      bundle 补丁:插入本插件,并按 id 关掉内置 open-in-app
├── tsdown.config.ts      双配置:host 出 ESM,client 出 ModuleLoader 闭包工厂
└── tsconfig.json         只出声明(emitDeclarationOnly → lib/types/)

模型核心:所有启动器都是同一个 OpenWithItem(id / name / path / passCwd),没有预设与自定义的区分。默认项(DEFAULT_ITEMS)仅在设置文档不存在时作为种子写入,host 逐项把裸命令解析为绝对路径后落盘;此后每项就是普通项,可改名、改路径、隐藏、删除。要使一项不可被删除,并不存在这种情况——设计上所有项一律平等。

lib/ 与 package.json#exports 的子路径一一对应:. → lib/index.js、./client → lib/client.js、./locale/*.json → locale/*.json。展示名与描述只来自 locale/*.json 的 meta(package.json 的 name / description 仅作 fallback),locale/en.json 是 DSH 的发现基线,缺了整包元数据就不生效。

如何新增一个启动器:

  1. UI 方式(推荐,无需改代码):设置页 → Open With → 「+ Add」,填写名称与可执行文件绝对路径;支持拖拽排序与可见性控制。
  2. 代码方式(想作为默认项内置):修改 src/shared.ts 的 DEFAULT_ITEMS 数组即可——因为所有项本就统一,新增默认项只需补一条 { id, name, path, passCwd },无需改动类型或启动分发。首次写入时 host 会解析并落盘。

🤝 贡献

欢迎以下方向的 PR:

  • 🍎🐧 macOS / Linux 平台适配:实现各平台的 shell、文件管理器启动与图标提取。
  • 🖥 更多 IDE 启动器:JetBrains 全家桶、Sublime Text、Neovide、Cursor、Windsurf……
  • 💻 更多终端候选:Windows Terminal (wt)、PowerShell 7 (pwsh)、Git Bash、Alacritty、WezTerm……
  • ⚙️ 设置页增强:导入/导出配置、批量操作
  • 🎨 UI 反馈:为启动过程加入进行中 / 成功 / 失败的可视状态

提 PR 前请确保:

npm run typecheck   # 通过
npm run build       # 通过
npm pack            # 无 WARN / error

📜 License

MIT © hyrinx。详见 LICENSE。

常见问题

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

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

dsh-plugin-open-with 的验证等级是什么意思?

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

dsh-plugin-open-with 安全吗?

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

dsh-plugin-open-with 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、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、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-plugin-open-with 需要什么运行环境?

Node.js ^22.11 || >=24;需要同时安装 @deepseek-ai/cordis@^4.0.1-rc.1、@deepseek-ai/dsh-client-locale@^0.2.0-rc.1、@deepseek-ai/dsh-client-runtime@^0.2.0-rc.1、@deepseek-ai/dsh-client-ui-conversation@^0.2.0-rc.1、@deepseek-ai/dsh-client-ui-primitives@^0.2.0-rc.1。环境不满足时安装会失败,建议先确认本机版本。

dsh-plugin-open-with 用的是什么许可证?

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

dsh-plugin-open-with 有哪些功能?

胶囊拆分按钮、四个内置启动器、自定义启动器、拖拽排序、中英双语UI。

这条记录的数据可靠吗?

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

浏览器与联网
按星标排序,可作替代方案

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 星

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