dsh-todo:DSH 侧栏待办清单(列表 / Markdown 双视图)

前言

在 DeepSeek Harness(DSH)里长时间跑会话时,任务往往散落在对话、终端和脑子里:模型能帮你写代码,却未必替你记住「下午要改配置」「这条需求明天截止」。外部待办 App 可以记,但和当前 workspace、Agent 上下文是两套系统,来回切换成本高。

社区插件 dsh-todo(维护者 Mappedinfo,npm 包名 @mappedinfo/dsh-todo)把待办清单嵌进 DSH 客户端:侧栏多一个面板,支持列表与 Markdown 两种视图;新建条目时自动补齐创建时间、提醒时间与提醒模式。面板、浏览器 RPC 与 Agent 工具 todo_board 共用同一份 Host 端数据,没有两套业务逻辑。本项目为非官方社区插件,独立维护,未经 DeepSeek 官方审核;生态目录见 SkillHub 插件页,讨论可参考 DSH Show Your Plugins!。

这是什么

dsh-todo 是 DSH 客户端类插件:在 Harness 里提供待办清单 UI,并把同一份状态暴露给模型通过 todo_board 读写。数据默认落在 ~/.dsh/dsh-todo/state.json,可用配置项 stateFile 改路径。运行期依赖 @deepseek-ai/dsh-tools(用于注册 todo_board);若该包解析失败,插件仍提供面板与 RPC,仅记一条 warn 日志,Agent 侧工具不可用。

核心功能

双视图与同一份数据

  • 列表视图:顶部输入框回车新建;支持筛选(全部 / 待办 / 今天 / 已完成);每行可展开编辑标题、备注(Markdown)、提醒模式、提醒时间、提前分钟、截止时间、优先级、标签等。
  • Markdown 视图:预览模式下任务复选框可直接勾选并写回列表;源码模式下编辑 Markdown 文本后解析回条目;支持复制当前 Markdown 到剪贴板。

两个视图切换的是同一份数据:列表新建的条目立刻出现在 Markdown 里,Markdown 里改的标题与勾选状态保存后也立刻反映到列表。

自动时间字段与提醒模式

新建条目时插件会自动写入:

字段 说明
createdAt 创建时刻,永远存在
提醒时间 按提醒模式计算;默认向上取整到最近 5 分钟刻度(可配置)
提醒模式 默认来自 defaultReminderMode(默认 once)

提醒模式含义:

模式 含义
none 不提醒
once 一次性提醒(默认提醒时间常为「现在 + 提前量」)
daily 每日在指定 HH:mm 提醒
lead 在截止时间前按「提前分钟」提醒

到点后插件在 Host 记账(remindedAt),面板上出现「待提醒」标记与顶部提示;不注入会话、不打断正在跑的 turn,也不自动勾选或延后条目。

多处入口(可配置)

装好后侧栏出现待办图标。此外还有:

  • 面板左上角「← 返回对话」:从待办面板回到当前对话。
  • New Session 行右侧紧凑按钮(默认开):显示 待办 N · 今日 M,点开完整面板。
  • 侧栏底部 Settings 旁入口(默认开):展开侧栏时显示未完成计数。
  • 输入框下方待办摘要条(默认关):与 activity、用量、上下文指示器同一行,窄屏易拥挤,需在设置中打开。

Settings → 插件 → 待办清单 可分别开关上述三处入口,偏好保存在 prefs.surfaces,与 state.json 一起持久化。

Agent 工具 todo_board

模型通过同一 Host 方法操作清单:

action: list | add | update | toggle | remove | clear_done | markdown
title / id / done / note / mode / remind_at / remind_time / lead_minutes / due / priority / tags

add 不带 mode / remind_at 时,与面板新建一样走「自动创建时间 + 提醒时间 + 提醒模式」路径。

安装与启用

将 <你的 profile> 换成实际 profile 名(例如 web);Electron 桌面版的 desktop profile 由应用自身管理。

# npm(推荐,支持版本解析与更新)
dsh plugin --profile <你的 profile> add @mappedinfo/dsh-todo

# 或直接从仓库装最新 main
dsh plugin --profile <你的 profile> add github:Mappedinfo/dsh-todo

也可在 DSH 插件页用 Add 填入上述地址之一。装完侧栏应出现待办图标;若未出现,刷新一次页面即可。

package.json 要求 Node ^22.19.0 || >=24,DSH >=0.1.5-rc.2;当前发布版本为 0.1.4,许可证 MIT。

典型用法

在面板里记一条待办

  1. 点击侧栏待办图标,或 New Session 行右侧的 待办 N · 今日 M。
  2. 在列表视图顶部输入框输入标题,回车新建(创建时间、提醒时间、提醒模式按配置自动补齐)。
  3. 点击该行展开编辑器,按需改备注、截止时间、优先级、标签或提醒模式。

用 Markdown 批量整理

  1. 切换到 Markdown 视图,在「源码」里编辑整份清单文本。
  2. 点「已写回清单」,解析回列表条目(保留 id、备注与提醒设置)。
  3. 或在「预览」里直接点复选框切换完成状态。

让 Agent 读写清单

在支持 todo_board 的会话中,模型可 list / add / update / toggle 等同面板操作;状态变化与失败原因与 UI 一致。

配置

写在 cordis.patch.yml 的 config 里:

键 默认 含义
stateFile null 状态文件路径;null 表示 ~/.dsh/dsh-todo/state.json
defaultReminderMode once 新建条目的默认提醒模式
defaultReminderDelayMinutes 60 once / lead 模式默认提前多少分钟
defaultReminderTime '09:00' daily 模式的默认每日时刻(本地 HH:mm)
reminderGranularityMinutes 5 默认提醒时间向上取整的刻度,0 表示不取整
defaultLeadMinutes 10 lead 模式的默认提前分钟
reminderScanSeconds 30 提醒扫描间隔(秒)

持久化使用「临时文件 + rename」原子替换;文件缺失或损坏时回落到空清单,不阻塞宿主启动。

适用场景与注意

适合:在 DSH 内长期开发、希望待办与 Agent 共用一份 JSON 状态;需要列表精细编辑与 Markdown 互导;希望模型通过 todo_board 同步任务而不另开笔记软件。

注意:

  • 插件以当前 dsh 进程权限运行,状态文件在本地磁盘;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全与合规要求。
  • 提醒仅做 Host 内标记与面板提示,不替代你的操作习惯或外部日历系统。
  • @deepseek-ai/dsh-tools 不可用时失去 Agent 工具,面板与 RPC 仍可用。

结尾

dsh-todo 把待办、提醒与双视图编辑收进 DSH 客户端,并与 todo_board 共用 Host 存储,适合把「会话里产生的任务」留在 Harness 里闭环管理。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye