dsh-workspace-pin

DSH PLUGIN浏览器与联网

仓库 Richard2091/dsh-workspace-pin · npm dsh-workspace-pin

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

为 DeepSeek Harness Web 侧栏的工作区行补上与官方会话置顶同款的图钉按钮,置顶集合由宿主持久化,跨浏览器不丢。

一句话选型结论

按资料字段整理

dsh-workspace-pin 是浏览器与联网类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-05 创建于 2026-11-04
README 9.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:Richard2091/dsh-workspace-pin#v0.3.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 ^22.19.0 || >=24.0.0;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24.0.0来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-workspace-pin可用 npm view 查看包信息

能做什么

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

dsh-workspace-pin:给 DeepSeek Harness 侧栏工作区行补上官方同款置顶图钉

  • 工作区行官方同款图钉
  • 置顶集合宿主持久化
  • 跨浏览器与清缓存不丢
  • 复用官方 Tooltip 与图标
  • 不改 dsh 源码,升级不覆盖

适用场景

存储文件读写联网搜索

上游标签

deepseekdeepseek-harnessdshdsh-pluginjavascriptpinsidebaruiweb-uiworkspace

验证等级与安全审查

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

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

逐项检查结果

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 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-workspace-pin当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 有
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

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

README 全文

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

dsh-workspace-pin

English | 中文




给 DeepSeek Harness(DSH)Web 侧栏的工作区(文件夹)行补上一个和会话置顶完全同款的图钉:hover 出现 16×16 的官方同款按钮,置顶后无 hover 时留一枚灰色实心 pin,悬浮提示用官方 Tooltip;点一下把该工作区钉到列表最前。

置顶集合由宿主半边持久化(和会话置顶一样),所以跨浏览器、清缓存、无痕窗口、换设备都不丢;视觉与交互直接复用官方实现,不改 dsh 自身任何文件(dsh 升级不会覆盖)。

为什么做这个

dsh 的侧栏里,会话行自带置顶按钮:hover 出现,点一下把会话钉到最前;置顶后面板不再 hover 时,行尾留一枚灰色实心图钉作为状态提示。

工作区(文件夹)行没有这个入口——只能靠拖拽排序,而新建工作区又会被宿主前插到列表最前。本插件把「会话置顶」那套图钉原样补到工作区行上:

  • 同一个官方按钮类名(Rows.module.css 的 *_iconButton)与同一套 IconPinOutline/IconPinFill 图形;
  • 同样的 16×16 尺寸、--dsw-radius-xs 圆角、label-tertiary 静止色、hover 时只变 label-primary、无 hover 背景;
  • 同样的官方 Tooltip(side: bottom、align: end、delayMs: 500、portal: true);
  • 置顶后无 hover 时,行尾出现与官方 *_pinIndicator 同度量、同配色的灰色实心图钉,行一 hover 就让位给悬浮按钮;
  • 置顶数据落在宿主侧,与会话置顶同一套“宿主持久化、浏览器共享”的模型。

效果

置顶后(无 hover) hover 未置顶的工作区
hover 已置顶的工作区(取消置顶) 侧栏总览

与会话置顶的一致性

项 官方「会话置顶」 本插件「工作区置顶」
按钮类名 Rows.module.css 的 *_iconButton 复用同行官方按钮的同一个类名
尺寸 / 圆角 16×16 / --dsw-radius-xs 相同
静止色 / hover 色 label-tertiary / label-primary 相同
hover 背景 透明(无) 相同
图标 14px IconPinOutline / IconPinFill 相同(官方组件)
悬浮提示 官方 Tooltip(bottom / end / portal / 500ms) 相同(官方组件)
置顶静止标记 *_pinIndicator:16×20、label-caption、14px 实心 同度量同配色
行 hover 时标记隐藏 是 是
置顶数据存放 宿主 workspace registry(workspace.json 的 pinnedSessionIds) 宿主状态文件(/storages/dsh-workspace-pin/state.json)
跨浏览器 / 清缓存 一致,不丢 一致,不丢

> 唯一实现差异:官方静止标记用 margin-left: 6px(会话行 gap: 0),工作区行本身
> gap: 6px,所以插件把 margin-left 取 0,由行间距承担同样的 6px。实测两者
> 「标记到前一元素」的间距和「标记/按钮到行右内边距」的距离完全一致。

安装

Windows(PowerShell)

git clone https://github.com/Richard2091/dsh-workspace-pin.git
cd dsh-workspace-pin
pwsh -File .\install.ps1

> 只有 Windows PowerShell 5.1 也可以:powershell -ExecutionPolicy Bypass -File .\install.ps1
> (脚本按 UTF-8 BOM 保存,5.1 不会把中文注释按 ANSI 解析成乱码)。

macOS / Linux

git clone https://github.com/Richard2091/dsh-workspace-pin.git
cd dsh-workspace-pin
sh install.sh

手动安装

安装脚本只动三处(前两处会先备份到 ~/.dsh-backup-<时间戳>/):

  1. 把插件包复制到 /plugins/dsh-workspace-pin(` 一般是~/.dsh/profiles/web`);
  2. 在 /node_modules/dsh-workspace-pin 建一个指向它的 junction / 软链;
  3. 把本仓库 cordis.patch.yml 里的 insert 块追加进 /cordis.patch.yml。

刷新浏览器里的 DSH Web 页面即生效(profile 配置与插件文件由宿主 HMR 重组,本插件
宿主半边只注册一条状态路由,通常不需要重启 dsh web;如果宿主没有热加载新文件,
重启一次即可)。控制台执行 window.__dshWorkspacePinVersion,期望 "0.3.0";
window.__dshWorkspacePinStorageMode 为 "host" 表示已连上宿主状态。

已知坑:以后在 profile 里跑 pnpm install 会清掉第 2 步的软链,重跑一次安装脚本
即可(脚本幂等)。

使用

  • hover 任一工作区行 → 行尾出现图钉按钮(在官方「…」和「+」旁边,最右);
  • 点一下 → 该工作区钉到列表最前;再点一下取消置顶(取消不会把工作区挪回原位);
  • 置顶集合存在宿主,所有连到同一台 DSH 的浏览器/设备看到同一份置顶:
    换浏览器、无痕窗口、清站点数据都不会丢;
  • 工作区顺序通过官方客户端服务 ctx.workspaces.insertBefore() 写入宿主 registry,刷新/重启后仍在;
  • 页面加载、工作区列表变化、页面重新可见时会把已置顶的工作区重新排到最前——新建工作区被宿主前插时,置顶项仍回到顶部。

数据位置与重置

数据 位置
工作区置顶集合 /storages/dsh-workspace-pin/state.json(默认 ~/.dsh/storages/dsh-workspace-pin/state.json)
工作区显示顺序 宿主 workspace registry(~/.dsh/storages/workspace.json 的 global.workspaceIds,与官方拖拽排序同一份)
浏览器 localStorage 仅作本地缓存/旧数据迁移源(键 dsh.workspace-pin.v1),不是数据源

重置置顶:删掉 state.json 后刷新页面即可(或 POST {"op":"set","pinned":[]})。
也可以用条目 config 的 stateFile 把状态文件指到别处:

- insert:
- id: workspace-pin
name: 'dsh-workspace-pin'
config:
stateFile: 'D:\dsh-data\workspace-pin.json'

实现原理

宿主半边(lib/index.js):

  • 用官方 ctx.webServer.register() 注册一条精确路由
    GET|POST /plugins/dsh-workspace-pin/state;
  • 请求准入复用官方 ctx.connection.requestRejection()(Host/Origin 围栏 + 浏览器会话
    鉴权),未认证请求 401、跨源写请求 403;
  • 状态文件默认 /storages/dsh-workspace-pin/state.json,写入走「临时文件 +
    rename」原子替换;pin/unpin 是增量操作,宿主串行化读改写,多浏览器并发置顶
    不会互相覆盖(set 仅用于旧数据迁移);
  • 不新增任何依赖(只用 Node 内置模块)。

浏览器半边(lib/client.js):

  • 首帧先用 localStorage 缓存把图钉画出来,随后 GET 宿主状态对齐;宿主是数据源;
  • 点击时本地立即生效(乐观更新),再 POST {op:"pin"|"unpin"},用宿主返回的权威集合
    校正 UI;失败只告警并退回本地缓存模式,不影响已生效的操作;
  • 页面重新可见时再向宿主对齐一次(别的浏览器/标签页可能刚改过);
  • 悬浮按钮复用官方类名,并通过平台模块表用官方 React / Tooltip / IconPinFill /
    IconPinOutline 渲染;官方 UI 原语不可用时退回等价兜底样式与原生 title;
  • 旧版本升级:若宿主为空而本机 localStorage 有旧置顶集合,会一次性 set 迁移到宿主。

兼容性

  • 在 DSH 0.2.1-rc.2(Web GUI)上实测;依赖官方工作区行 DOM、ctx.workspaces.insertBefore
    客户端服务、ctx.webServer / ctx.connection 宿主服务,以及平台模块表里的
    react / react-dom/client / @deepseek-ai/dsh-client-ui-primitives;
  • dsh 大版本升级后如果官方行结构 / 类名 / 模块表 / 宿主服务变化,需要跟着适配;
  • 不修改 dsh 源码,也不 fork dsh;卸载即恢复原生侧栏。

已知限制

  • 依赖官方工作区行的 DOM 结构([data-row-key^="workspace:"]、行尾 actions 容器)与
    Rows.module.css 的类名/度量;官方调整时需要同步更新插件。
  • 页面加载时会把已置顶工作区排到最前,这是一次真实的顺序写入(不是纯视觉排序)。
  • 宿主状态文件与宿主 workspace registry 是两份独立数据:置顶集合在
    storages/dsh-workspace-pin/state.json,显示顺序在 storages/workspace.json;
    不要在 dsh web 运行时手改这两个文件(会被内存状态覆盖),备份/迁移整目录拷贝即可。
  • 若宿主半边没有加载(例如插件只装了浏览器半边、或宿主尚未热加载),插件会退回
    localStorage 缓存模式(window.__dshWorkspacePinStorageMode === "cache"),此时不跨浏览器;
    重启 dsh web 后恢复正常。

卸载

pwsh -File .\uninstall.ps1   # Windows
sh uninstall.sh             # macOS / Linux

或手动删掉三处:cordis.patch.yml 里的安装块、node_modules 里的软链、plugins 里的
插件目录,然后刷新页面。已写入宿主的工作区顺序会保留(拖回去即可);置顶集合文件
storages/dsh-workspace-pin/state.json 不会被自动删除,需要的话手动删。

License

MIT

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:Richard2091/dsh-workspace-pin#v0.3.0` 即可。对应的 npm 包名是 `dsh-workspace-pin`。

dsh-workspace-pin 的验证等级是什么意思?

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

dsh-workspace-pin 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-workspace-pin 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-workspace-pin 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-workspace-pin 需要什么运行环境?

Node.js ^22.19.0 || >=24.0.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-workspace-pin 用的是什么许可证?

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

dsh-workspace-pin 有哪些功能?

工作区行官方同款图钉、置顶集合宿主持久化、跨浏览器与清缓存不丢、复用官方 Tooltip 与图标、不改 dsh 源码,升级不覆盖。

这条记录的数据可靠吗?

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

同名或近似条目

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

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 星

Richard2091 的其它插件

1 个

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