dsh-session-manager

DSH PLUGIN浏览器与联网

仓库 minhaoli/dsh-session-manager

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

dsh-session-manager 是 minhaoli 维护的 浏览器与联网 类 DSH 可安装插件, 仓库为 minhaoli/dsh-session-manager,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

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

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

安装

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

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

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

  3. 3
    确认已挂载

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

  4. 4
    试跑并检查权限

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

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

存储

上游标签

deepseek-harnessdshdsh-pluginsession-managementtags

验证等级与安全审查

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

选择建议

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

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-session-manager当前 L5 · 运行验证通过 低风险 0 未标注 有
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 未标注 有

仓库档案

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

README 全文

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

dsh-session-manager

给 DSH 会话做日常维护的 agent 工具 + 本机回环 REST API —— 列出、跨工作区移动、带备份删除、打标签、归档与反归档。

DSH 自带的 GUI 只覆盖了其中一部分(能归档,但没有反归档;没有标签;跨工作区移动要重启)。这个插件把整套能力放到两条共用同一份实现的通道上:

  • Agent 工具 —— 模型可以直接调的六个工具。
  • 本机回环 REST API —— 同样的六个操作走 HTTP,浏览器端插件不必再走 IPC 桥。dsh-session-tree 就靠它渲染侧栏的标签、拖拽移动和归档菜单。

适用版本

DSH 0.2.1-rc.2(开发与验证所用版本)
@deepseek-ai/cordis ~4.0.5
运行时 Node.js 22+(DSH 桌面运行时自带)

更早的 DSH 版本未验证。插件读取 workspaceRegistry、sessionPersistence、storageDomain、webServer 四个服务;如果某个版本改名或删掉了其中之一,对应功能会 fail-soft(打一条 warning)而不是把宿主拖崩。

安装

# 从 git 装(推荐)
dsh plugin --profile <你的 profile> add github:minhaoli/dsh-session-manager

# 或者从本地目录装
dsh plugin --profile <你的 profile> add /path/to/dsh-session-manager

<你的 profile> 填你实际启动的那个 —— Electron 应用是 desktop,CLI 模式是 web / headless / node。desktop profile 由 Electron 应用独占管理,应用运行时拒绝 dsh CLI 写入;请从应用自己的插件管理器安装,或先关掉应用。

包里声明了 dsh.bundle.patch,所以 dsh plugin add 会顺带把它写进 dsh.profile.bundles,下次启动即挂载。如果你是手工拷贝安装,自己补这一行:

# ~/.dsh/profiles//cordis.patch.yml
- insert:
- id: session-manager
name: 'dsh-session-manager'

Agent 工具

六个工具都接收 JSON 参数,返回 { ok: true, ... } 或 { ok: false, error }。

工具 作用
session_list 列出持久化会话及其工作区、归档状态、标签、标题。过滤参数:workspaceId、path、archived、tag。
session_move 跨工作区移动会话。重写日志头 cwd 并在磁盘上重命名目录,然后实时更新 registry —— GUI 不用重启就能看到。
session_delete 永久删除会话及其日志目录。传 backupDir 会先把每个目录拷一份。
session_tag set / add / remove / clear / drop / list 标签。数据存在 ~/.dsh/session-tags.json。
session_archive 把会话从所有分组界面隐藏;日志和工作区槽位保留。幂等。
session_unarchive 把归档会话恢复到原位置 —— GUI 缺的就是这个方向。

session_move 和 session_delete 会拒绝「活会话」(模型当前正在跑的那个对话)。

REST API

只在 webServer 服务存在时注册(web 和 desktop 两种模式)。每个 handler 都转调对应工具的 execute,因此两条通道行为完全一致。

所有请求都过 isLoopbackRequest(req) 这道闸 —— 非回环来源直接 403 {"error":"forbidden: loopback-only"}。没有 token,闸是传输层而不是凭据。挂了本插件就别把 DSH web 服务暴露到 localhost 之外。

方法 路径 Body / 说明
GET /api/dsh-session-manager/sessions —
GET /api/dsh-session-manager/tags —
PUT /api/dsh-session-manager/tags { "sessionId": "...", "tags": ["a","b"] }
DELETE /api/dsh-session-manager/tags { "tags": ["a"] } —— 从所有会话上摘掉这些标签
POST /api/dsh-session-manager/sessions/move { "sessionIds": [...], "targetWorkspaceId": "..." } 或 { ..., "targetPath": "...", "createIfMissing": true }
POST /api/dsh-session-manager/sessions/delete { "sessionIds": [...], "backupDir": "..." }(backupDir 可选)
POST /api/dsh-session-manager/sessions/archive { "sessionId": "..." }
POST /api/dsh-session-manager/sessions/unarchive { "sessionId": "..." }
POST /api/dsh-session-manager/projcache/warm —(诊断用:返回标题预热报告)

状态码:工具返回 ok: true 时 200;业务失败或 body 格式错 400;非回环 403;方法不对 405;意外抛错 500。

请求体上限 1 MB,且必须是 JSON 对象。

curl -s http://127.0.0.1:3080/api/dsh-session-manager/tags
curl -s -X PUT http://127.0.0.1:3080/api/dsh-session-manager/tags \
-H 'content-type: application/json' \
-d '{"sessionId":"abc123","tags":["research","todo"]}'

几个实现细节

移动要同步三处。 物理移动(重写 zstd 头 + 目录改名)之后,还要重新索引 registry 头、调公开的 attachSession / detachSession,再通过 storage-domain 的表句柄更新投影缓存里的 identity.cwd。少任何一步,GUI 都会显示旧路径。

启动时预热标题。 冷会话在 session.list 里没有标题 —— 持久标题在投影缓存的 checkpoint 里,而 checkpoint 只有该会话在某个进程里被 attach 过才会写。重启后所有没打开过的会话都是冷的,侧栏于是退化成显示目录名。插件在挂载 800 ms 后扫一遍缺标题行的会话,调官方 coldSnapshot(meta, inheritedEventCount, events) 把 checkpoint 写回去。

校验既有标题行的「日志尾巴探测」是关的(lib/index.js 里的 WARM_TAIL_PROBE = false)。开着的话每次启动都要把全部会话的日志尾巴读一遍 —— 这是重启后侧栏慢的主因,实测约 620 个会话。代价是:投影缓存写入失败窗口内发生的改名,启动时不再被自动纠正;打开该会话时官方冷读阶梯仍会自愈。要恢复旧行为就把这个常量改成 true。

归档走 registry。 归档走 archiveSession() —— 和 GUI 用的同一个 add-only API。除了显式删除或反归档,插件从不重写归档集合;即便是那两种情况,也走 registry 公开的 enqueueOperation / setState 写链,保证 registry 的缓存状态一致。

刻意零 import。 lib/index.js 只用 node: 内置模块。这个文件插件是通过原生动态 import 加载的,裸模块名只能从 profile 的 node_modules 解析;只用内置模块让它可以作为一个独立文件插件被加载(和 zen-useragent.js 同样的形态)。

配套插件

  • dsh-session-tree —— 消费本 REST API 的侧栏 UI(标签、分组、拖拽移动、删除)。它替换官方 ui-workspace bundle,同时安装时要把那一行 disable 掉。
  • dsh-session-query-vector —— 会话语义搜索后端。
  • dsh-session-search —— 对话内查找栏。
  • dsh-ui-reload —— 一键重载前端按钮。

许可

MIT —— 见 LICENSE。

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:minhaoli/dsh-session-manager` 即可。

dsh-session-manager 的验证等级是什么意思?

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

dsh-session-manager 安全吗?

低风险。

dsh-session-manager 装之前要先确认什么?

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

dsh-session-manager 用的是什么许可证?

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

这条记录的数据可靠吗?

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

同名或近似条目

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

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 星

minhaoli 的其它插件

4 个

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