前言¶
在 DeepSeek Harness(DSH)里同时开多个工作区会话时,任务往往散落在聊天记录或临时笔记里,重启 Web 界面或换端口后也不易找回。官方侧边栏侧重上下文与会话导航,并不自带可持久化的任务视图。下面介绍社区维护的客户端插件 dsh-todolist(GitHub:stitchmaps/dsh-todolist):在左侧导航增加「To-do List」面板,用可折叠任务卡片管理截止时间,并把单条任务绑定到具体会话,便于一键跳回继续对话。
这是什么¶
dsh-todolist 由 stitchmaps 维护,分类为 客户端 UI 插件。它在 DSH 桌面/Web 侧栏挂载待办面板,数据落在宿主目录 <DSH_HOME>/todolist/todos.json,与随机 Web 端口无关;当前 package 版本为 0.2.1,许可证 MIT。插件不注册面向模型的 tool 或 prompt,只扩展界面与本地持久化 API。
核心功能¶
侧栏入口与任务卡片¶
- 侧栏新增一行 To-do List,位置在「Context Insights」旁。
- 任务以大卡片展示(两行布局),未完成/已完成分区可折叠并显示数量;卡片带状态色条(逾期红、当天到期琥珀)、圆角渐变与悬停效果,以及完成进度条。
任务生命周期¶
支持新增、编辑(双击标题或点「Edit」)、勾选完成、删除,以及一键清除已完成项。输入框旁日期选择器可在创建时设置可选截止时间。
截止时间(精确到小时)¶
截止格式为 YYYY-MM-DD HH:00。任务卡片上通过 Due / Reschedule 可改期,并提供快捷项:Today 18:00、Tomorrow 09:00、In 1 hour,或清除截止。逾期任务高亮为红色,当天到期为琥珀色;未完成任务按截止时间排序。
工作区会话绑定¶
每条任务可绑定到按工作区分组的任意会话;绑定后显示可点击的 chip,点击后通过 UI 工作区能力打开对应 sessionId,从待办直接回到当时对话。
钉钉提醒¶
全局默认「提前 N 小时提醒」,单条任务可覆盖(0 表示关闭)。到期前 N 小时由宿主侧调度器(约 60 秒一轮)推送,模式二选一:
- 群机器人:自定义机器人 webhook,可选填加签 secret 与
@手机号。 - 工作通知:填写钉钉开放平台企业内部应用的 AppKey、AppSecret、AgentId 与接收人 userIds。
DSH 托盘进程需保持运行,调度才会执行。凭据与任务数据一并保存在 <DSH_HOME>/todolist/todos.json(使用前请自行评估本地存储风险)。
持久化与备份¶
每次写入会更新 todos.json.bak,并在 todolist/backups/ 下保留最近 20 次带时间戳的快照;主文件缺失或损坏时,宿主读取会回退到最新备份。
界面语言¶
内置中英文 UI 文案切换。
环境与依赖¶
- DSH:NEXT 2.0.20 或兼容的 0.2.x 发行版(
package.json中engines.dsh为>=0.2.0-rc.2 || >=0.2.1-rc.2)。 - 官方安装脚本依赖 Windows + PowerShell;也可按文档手动复制文件并改
cordis.patch.yml。 - Node:
^22.19.0 || >=24.0.0(与 DSH 宿主环境一致即可)。
安装与启用¶
官方 README 给出的安装方式为克隆仓库后执行 PowerShell 脚本(脚本会备份被改动的 profile 文件):
git clone https://github.com/stitchmaps/dsh-todolist.git
cd dsh-todolist
pwsh -File .\install.ps1
脚本会:
- 将插件文件复制到
%DSH_HOME%\profiles\desktop\node_modules\todolist; - 在 profile 的
package.json中记录file:依赖; - 向 profile 的
cordis.patch.yml追加 loader 行。
若侧栏未立刻出现 To-do List,在 Web GUI 中刷新(Ctrl+R)。
手动安装时,将包复制到 profile 的 node_modules,并在 ~/.dsh/profiles/desktop/cordis.patch.yml 中追加:
- insert:
- id: todolist
name: todolist
典型用法¶
- 点击侧栏 To-do List。
- 输入任务标题并回车(或点 Add);需要截止时在输入框旁选日期。
- 在卡片上:
- Due / Reschedule:设日期与小时、快捷改期、设置单条提醒提前量,或清除截止;
- Bind session:选择工作区下的会话,之后点 chip 跳转;
- Edit / 双击标题改名;勾选完成;Delete 删除。
配置钉钉推送¶
- 面板右上角 Push settings。
- 选择群机器人或工作通知,按 README 填写 webhook 或应用凭据;设置默认提前小时数(0 为不提醒),Save settings 后 Send test 验证。
- 单条任务可在截止对话框里覆盖提醒(默认 / 关闭 / 1–48 小时)。
实现要点(便于排查)¶
DSH 插件分两半:浏览器半 lib/client.js 注册 sidebar.panellist(id: todolist)与主面板槽位,通过 useWorkspaces() / useSessions() 取会话,跳转调用 ctx.get('uiWorkspace').openSession(sessionId);宿主半 lib/index.js 注册 POST /api/todolist/state,原子读写 todos.json 并运行提醒调度。前端 bundle 为手写 lazy-CJS 工厂格式,无需单独 build。
适用场景与注意¶
- 适合:长期在 DSH 里做多会话开发、希望待办与具体会话绑定的个人或小团队;需要截止前钉钉 nudge 且能接受本地保存 webhook/应用密钥的场景。
- 注意:插件以当前 DSH 宿主进程权限运行,安装前请阅读仓库源码与 MIT 许可证;钉钉相关字段写入本地 JSON,勿在不可信环境泄露 profile 与
todolist目录。 - 生态说明:DSH 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文事实以仓库 README 与
package.json为准。
结尾¶
dsh-todolist 把可折叠待办、小时级截止、会话绑定和钉钉提醒收进 DSH 侧栏,任务数据落在 <DSH_HOME>/todolist/,适合作为客户端能力补全日常调度。目录页:https://www.skillhub.cn/plugins/stitchmaps/dsh-todolist;源码与详细截图:https://github.com/stitchmaps/dsh-todolist。