dsh-toolbox-web
編輯精選維護狀態: 活躍abcdefgxw/dsh-toolbox-web
dsh 工具箱:會話/回收站/子目錄/搜尋/預設/配置管理 + 定時心跳/長訊息摺疊 | Toolbox plugin for dsh: session/trash/subdir/search/preset/config + scheduled heartbeat & long-message collapse
$ dsh plugin add dsh-toolbox-web5
星數
1
Fork
JavaScript
語言
MIT
授權條款
2026-08-15
建立於
2026-09-15
最近推送
README
dsh-toolbox-web
dsh(DeepSeek Harness)增强工具箱插件:会话管理 / 回收站 / 子目录管理 / 全文搜索 / 预设编辑 / 配置编辑 / 归档管理。
✨ 功能
- 💬 会话管理:删除(进回收站)、复制(官方 fork + 「-副本x」命名)、移动(工作区之间)、重设工作区根、标签分组(点选式编辑器:已有标签点击即选,避免手输错;标签管理:删除/重命名,重命名可合并重复标签)、查看会话内容(只读)、对话管理(截断/编辑,默认关闭需显式开启)、空会话自动标注「(空会话)工作区名」
- ⏰ 定时心跳:定时唤醒 AI 执行巡检/汇报等任务(类似 OpenClaw 心跳模式)——两种调度:间隔心跳(每 N 分钟)与定点定时(每天几点 / 每周几 / 每月几号),各自独立提示语与目标;目标可选主工作区根(内部巡检)或任意会话,以及 📱 微信 / QQ / 飞书 IM 渠道(唤醒渠道 bot 执行任务并把 AI 回复推送回手机)。调度运行在 dsh 后端进程中——无需保持网页打开,dsh 服务运行即生效。渠道推送为可选集成:依赖自研渠道桥插件 dsh-msg-hub 提供的
dsh-channels-push服务(见下文「IM 渠道推送(可选)」),未安装时自动回退主工作区心跳 - 📃 长消息折叠:消息超过阈值行数(默认 15,可调)自动折叠显示,点击「展开全部」查看;用户消息默认开启,AI 回复默认关闭(纯渲染层增强,不修改任何数据)
- 🗂 会话视图标签收纳:对话上方一排视图标签(记忆 / 技能 / 待办 / 设置 等,来自 conversation.view 槽位)可一键收起/展开——默认折叠、状态自动记住;收纳按钮位于会话头部「导出」旁;工具箱设置页顶部有独立开关(默认开;关闭 = 按钮消失、标签始终展开)
- 🗑️ 回收站:删除的会话/子目录进回收站(默认保留 30 天,可调),可恢复 / 彻底删除 / 查看被删会话内容
- 📁 子目录管理:工作区下建目录 / 重命名 / 删除 / 复制,会话批量归属
- 🔍 搜索:全文搜索所有会话——官方 SQLite 索引引擎优先(不读会话文件、内存占用最低),官方不可用自动兜底自研逐帧解压;命中按范围分组(可见会话 / 归档会话 / 回收站会话 / 子代理会话,一次搜索即时切换);时间范围过滤(今天/昨天/本月/上月快捷按钮);命中文本预览 + 点击跳转定位高亮;120 秒同词缓存;语义搜索(可选,在线 embedding:相关度阈值 0-100 默认 80、显示条数可配、字面命中保底)。⚠️ 搜索默认全部关闭(省内存),自研/语义搜索需解压会话,使用后需重启 DSH 服务才彻底释放内存
- ⚙️ 预设编辑:在线编辑 Agent 预设文件
- 📄 配置编辑:在线编辑 dsh 配置文件(YAML 校验 + 原子写)
- 🗄 归档管理:查看 / 恢复 / 删除官方归档会话
- 🧹 释放内存:清空插件缓存并尝试触发 GC(彻底释放需重启 dsh)
📸 截图
会话管理(删除 / 复制 / 移动 / 重设 / 标签 / 查看 / 空会话标注):

回收站(删除的会话进回收站,可恢复 / 彻底删除 / 查看内容):

子目录管理(工作区下建目录 / 重命名 / 删除 / 复制):

开关设置项(分区化设置:⏰ 定时心跳 / 🔧 功能开关 / 🗑️ 回收站):


环境要求
- dsh 运行时(插件作为 dsh 插件加载;前端依赖 dsh web 运行时注入的
react、@deepseek-ai/dsh-client-ui-primitives等) - Node.js ≥ 22.13(会话文件解压使用
node:zlib的 zstd 支持) - 平台:代码跨平台(全 Node 内置 API,无 shell 依赖)。默认路径按 Linux 约定(
/home/dsh、/workspace);Windows / macOS 部署请设置环境变量DSH_HOME与DSH_CHANNELS_CWD指向实际目录(见下文「环境变量」)
安装
方式一:dsh 命令(推荐)
# GitHub 仓库分发(自动 clone + 装依赖)
dsh plugin --profile web add github:AbcdefgXW/dsh-toolbox-web
# 或已发布 npm 包
dsh plugin --profile web add dsh-toolbox-web
dsh plugin add会自动将本插件加入 profile 的dsh.profile.bundles并挂载插件自带的注册行(cordis.patch.yml),无需也不应手动修改任何配置文件。⚠️ 排查注册问题时请检查
package.json的dsh.profile.bundles是否包含dsh-toolbox-web;切勿再在 profile 的cordis.patch.yml里手动insert本插件——bundles 已挂载时手动 insert 会导致duplicate loader entry id启动崩溃。
方式二:手动
git clone https://github.com/AbcdefgXW/dsh-toolbox-web.git
cd dsh-toolbox-web
npm install --omit=dev
将插件目录放入 dsh 插件加载路径(如 $DSH_HOME/plugins/ 或 compose 挂载卷),按上述方式注册,重启 dsh web。
@deepseek-ai/*依赖为 dsh 运行时自带包,版本与 dsh 发布对齐;js-yaml为插件自身依赖(配置编辑校验用)。
卸载
# 方式一:dsh 命令
dsh plugin --profile web remove dsh-toolbox-web
# 方式二:手动
# 1. 编辑 profile 的 package.json,从 dsh.profile.bundles 移除 "dsh-toolbox-web"
# 2. 删除依赖与软链:rm -rf $DSH_HOME/profiles/web/node_modules/dsh-toolbox-web
# 3. 删除插件数据(回收站/设置/索引):rm -rf <插件目录>/state
# 4. 重启 dsh web
卸载后
dsh-msg-hub未安装时,定时心跳的 IM 渠道推送自动不可用(回退主工作区心跳),其余功能不受影响。
崩溃恢复(vi 应急手册)
dsh 启动失败(插件树加载报错)时,95% 是以下两类,用 vi 手工恢复即可,无需重装:
① duplicate loader entry id: xxx(最常见)
原因:插件被注册了两次——package.json 的 dsh.profile.bundles 与 cordis.patch.yml 的手动 - insert: 重复。
vi /home/dsh/profiles/web/cordis.patch.yml
# 删除文件中形如以下的手动 insert 块(bundles 会自动挂载,不需要它):
# - insert:
# - id: dsh-toolbox-web
# name: 'dsh-toolbox-web'
# 保留 sandbox-policy / approval 等系统配置不动
② cannot resolve profile bundle "xxx"(依赖缺失)
vi /home/dsh/profiles/web/package.json
# 确认 dsh.profile.bundles 里的包名与 dependencies 对应、node_modules 存在:
ls -la /home/dsh/profiles/web/node_modules/ | grep dsh-
# 缺失时恢复软链:
ln -s /path/to/插件目录 /home/dsh/profiles/web/node_modules/插件名
通用救急:改动前插件会保留备份,恢复旧配置最快:
ls /home/dsh/profiles/web/cordis.patch.yml.bak-* # patch 备份
ls /home/dsh/profiles/web/package.json.bak-* # package.json 备份
cp 备份名 /home/dsh/profiles/web/cordis.patch.yml # 覆盖回去
修改后重启 dsh 容器/服务生效;仍失败时查看日志:docker logs deepseek-harness(或 journalctl -u dsh)。
⚠️ 本插件(及 dsh-msg-hub)自带
cordis.patch.yml注册行,由dsh plugin add自动挂载,切勿在 profile 的cordis.patch.yml手动 insert(见「安装」警示)。
使用
重启 dsh web 后,浏览器强刷(Ctrl+Shift+R):
- 🧰 工具箱(左下角按钮;窄栏/移动端显示为单色图标)—— 8 个 Tab(「搜索」默认隐藏):
- ⚙️ 预设:在线编辑 Agent 预设(
~/.agent-presets) - 📄 配置:在线编辑 dsh 配置文件(YAML 校验 + 原子写)
- 📁 子目录:工作区下建/改/删/复制目录,会话批量归属
- 💬 会话:按工作区/标签分组列出会话;每行可删除(进回收站)、复制(
-副本x)、移动、重设工作区根、打标签、查看内容;空会话标注「(空会话)」 - 🗑️ 回收站:被删会话/子目录,可恢复 / 彻底删除 / 查看被删内容
- 🧬 子代理:子代理会话独立管理(按父会话分组,查看/打开/删除进回收站),不再混在会话列表
- 🗄 归档:查看 / 恢复 / 删除官方归档会话
- 🔍 搜索(默认关):官方 SQLite 索引优先 + 分组筛选(可见/归档/回收站/子代理)+ 时间范围 + 语义搜索(可选)
- ⚙️ 预设:在线编辑 Agent 预设(
- 设置 → 工具箱:功能开关 + 定时心跳配置
- ⏰ 定时心跳(可选,OpenClaw 心跳模式):设置 → 工具箱 → 定时心跳
- 开关 + 间隔(分钟)+ 提示语(
{time}替换为当前时间)+ 下次触发倒计时 - 定点定时:每天几点 / 每周几 / 每月几号,独立提示语与目标
- 目标:主工作区根(内部巡检)/ 任意会话 / 📱 微信·QQ·飞书(需 dsh-msg-hub,结果推送手机)
- 调度运行在 dsh 后端进程,网页无需保持打开
- 开关 + 间隔(分钟)+ 提示语(
- 📃 长消息折叠(默认开):超过阈值的消息自动折叠,点「展开全部」查看(阈值可调)
- 🗂 会话视图标签收纳(默认开,位于设置页顶部独立分区):对话上方视图标签一键收起/展开(默认折叠,状态记住);关闭后按钮消失、标签始终展开
环境变量
| 变量 | 用途 | 默认 |
|---|---|---|
DSH_HOME |
dsh 数据目录(会话/配置/缓存) | /home/dsh |
DSH_CHANNELS_CWD |
当前工作区根(会话 cwd 基准) | /workspace |
未设置时使用上述默认值;其余路径全部由插件自身目录(import.meta.url)推导,无硬编码。
数据与安全
- 运行时数据存于插件
state/目录(设置、回收站、备份、标签)——不随代码发布,.gitignore已排除 - 插件会读写:
$DSH_HOME/sessions/(会话文件,多帧 zstd)、$DSH_HOME/storages/workspace.json(工作区注册)、dsh 配置文件(仅配置编辑功能使用时) - 删除 = 移入回收站(默认 30 天保留,可恢复),非物理删除
- 对话管理(截断/编辑):修改会话文件后需重启 dsh 完整生效;默认关闭,需在设置中显式开启
- IM 渠道推送提示:定时心跳推送到 IM 渠道时,微信走模拟网页协议(ilinkai),主动频繁发消息存在账号风控风险——建议心跳间隔 ≥ 15 分钟、提示语内容正常化、避免短时间大量推送;QQ 官方开放平台主动消息需申请「主动消息权限」(未开通时推送会静默失败);飞书为官方 API,合规无风险
IM 渠道推送(可选)
定时心跳的「📱 微信 / QQ / 飞书」目标是可选集成:dsh-toolbox-web 通过 cordis 服务 dsh-channels-push 调用渠道插件完成「唤醒渠道 bot 执行任务 → AI 回复回传 IM」。
- dsh-msg-hub 为自研渠道桥插件(微信 ilinkai / QQ 开放平台 / 飞书开放平台),不随本仓库分发,需单独安装(dsh-msg-hub)
- 未安装该服务时:渠道目标不可用(选择后会提示"渠道推送服务不可用"),主工作区根 / 指定会话的心跳不受任何影响
- 第三方渠道插件若提供同名服务亦可对接(当前无公开适配规范,属实现约定)
开发
index.js后端(cordis Service + typert remote,方法名 = 端点名);client.js前端(无构建管线,window.__ModuleLoader__加载)- 新增端点三处同步:后端方法 + 后端
invocation注册 + 前端DESCRIPTORS - 会话文件重写必须用官方多帧格式(
lib/zstd.js compressSessionText:header 帧恰好一行 + 每 500 行事件帧),单帧全压会导致 dsh 加载崩溃
License
MIT — 见 LICENSE
更多「網頁與瀏覽器」外掛
last30days-skill-cn
作者 jesseovo
last30days-cn 是一個 AI Agent 技能(Skill),能夠自動搜尋中國網際網路 8 大主流平臺最近 30 天的內容,綜合分析後生成有據可查的研究報告。
browser4
作者 platonai
面向自主智慧體與大規模網頁自動化的 AI 原生瀏覽器引擎,支援智慧內容抽取。
modsearch
作者 liustack
🥇 The strongest free web search plugin for DeepSeek Harness, and the search bridge for every model without native web access. Free, no signup, no API key. Ask the web or X, get structured JSON evidence. | 🥇 全網最強的 DeepSeek Harness 免費聯網搜尋外掛,免費免註冊免 API key。為不能聯網的模型補上搜索,問網頁或 X,拿回結構化 JSON 證據(搜尋、抓取、引用)。
anysearch-dsh
作者 anysearch-team
為 DeepSeek Harness 提供的 AnySearch 網頁搜尋提供方與高階搜尋工具。
