DSH Hub
dsh-toolbox-web cover

AbcdefgXW/dsh-toolbox-web

dsh-toolbox-web

UIWeb UI3 GitHub stars· updated 2026-08-21

Toolbox plugin for dsh: session/trash/subdir/search/preset/config + scheduled heartbeat & long-message collapse

Install

npx @deepseek-ai/dsh plugin --profile web add github:AbcdefgXW/dsh-toolbox-web

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-toolbox-web DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-toolbox-web.svg)](https://dshhub.dev/plugins/dsh-toolbox-web)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from AbcdefgXW/dsh-toolbox-web, cleaned of badges and images.

dsh-toolbox-web

English | 简体中文

dsh(DeepSeek Harness)增强工具箱插件:会话管理 / 回收站 / 子目录管理 / 全文搜索 / 预设编辑 / 配置编辑 / 归档管理。

✨ 功能

  • 💬 会话管理:删除(进回收站)、复制(官方 fork + 「-副本x」命名)、移动(工作区之间)、重设工作区根、标签分组(点选式编辑器:已有标签点击即选,避免手输错;标签管理:删除/重命名,重命名可合并重复标签)、查看会话内容(只读)、对话管理(截断/编辑,默认关闭需显式开启)、空会话自动标注「(空会话)工作区名」
  • ⏰ 定时心跳:定时唤醒 AI 执行巡检/汇报等任务(类似 OpenClaw 心跳模式)——两种调度:间隔心跳(每 N 分钟)与定点定时(每天几点 / 每周几 / 每月几号),各自独立提示语与目标;目标可选主工作区根(内部巡检)或任意会话,以及 📱 微信 / QQ / 飞书 IM 渠道(唤醒渠道 bot 执行任务并把 AI 回复推送回手机)。调度运行在 dsh 后端进程中——无需保持网页打开,dsh 服务运行即生效。渠道推送为可选集成:依赖自研渠道桥插件 dsh-msg-hub 提供的 dsh-channels-push 服务(见下文「IM 渠道推送(可选)」),未安装时自动回退主工作区心跳
  • 📃 长消息折叠:消息超过阈值行数(默认 15,可调)自动折叠显示,点击「展开全部」查看;用户消息默认开启,AI 回复默认关闭(纯渲染层增强,不修改任何数据)
  • 🗑️ 回收站:删除的会话/子目录进回收站(默认保留 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_HOMEDSH_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.jsondsh.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.jsondsh.profile.bundlescordis.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"(依赖缺失)

Related plugins