dsh-todo

DSH PLUGIN记忆与知识

仓库 Mappedinfo/dsh-todo

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DeepSeek Harness 待办清单插件:列表 / Markdown 双视图,自动补齐创建时间、提醒时间与提醒模式

一句话选型结论

按资料字段整理

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

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

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @mappedinfo/dsh-todo@0.1.4
  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-harnessdsh-pluginmarkdownremindertodo

验证等级与安全审查

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

选择建议

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

值得选的地方

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

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-todo当前 L5 · 运行验证通过 低风险 0 未标注 有
ruflo L3 · 安装规范通过 低风险 7.4 万 未标注 无
OpenViking L3 · 安装规范通过 低风险 3.9 万 未标注 无
WeKnora L4 · 沙盒安装通过 低风险 3.3 万 未标注 有
distilly L4 · 沙盒安装通过 低风险 2.5 万 未标注 有
EverOS L4 · 沙盒安装通过 低风险 1.3 万 未标注 有

仓库档案

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

README 全文

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

dsh-todo

DeepSeek Harness 插件:在侧栏加一个待办清单面板,支持列表视图与 Markdown 视图切换;新建条目时自动补齐创建时间、提醒时间与提醒模式。

面板、agent 工具和 Markdown 视图共用同一份 Host 端数据与同一组服务方法,不存在两套逻辑。

社区介绍与讨论见 DSH Show Your Plugins!。本项目为非官方社区插件,独立维护,未经 DeepSeek 官方审核。

安装

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

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

也可以在 DSH 的插件页用 Add 填入同一个地址。<你的 profile> 是 profile 名(例如 web);Electron 桌面版的 desktop profile 由应用自身管理。

装完侧栏出现待办图标。数据落在 ~/.dsh/dsh-todo/state.json,用 stateFile 配置项可改路径。

@deepseek-ai/dsh-tools 是唯一的运行期依赖,用来注册 todo_board 工具;它取不到时插件照常提供面板与 RPC,只记一条 warn 日志。


界面

侧栏多一个待办图标,点击后在主区域打开面板。

返回对话

面板左上角有「← 返回对话」。点侧栏待办图标会切走当前会话,这个按钮直接把你送回对话,接着干活。

New Session 行的待办入口

新建会话那一行的右侧(workspace / preset 控件之后)会有一个 待办 N · 今日 M 的紧凑按钮,点一下打开完整面板。

> 宿主的「Workspace files / New terminal / Browser」三个快捷操作是内置组件,不经槽位;插件能用的位置是 conversation.hero.options,也就是这一行里留给插件的座位。

侧栏底部入口

侧栏底部、Settings 旁边会有一个待办入口,展开侧栏时显示未完成计数。不受会话影响,start 页面也可见。

输入框下方的待办条(默认关闭)

输入框下方可以显示一条待办摘要。默认关闭:那一行已经有 activity、用量和上下文指示器,再放一条在窄窗口里会非常拥挤。需要的话在设置里打开。

列表视图

  • 顶部输入框回车即新建;新建时自动写入创建时间、提醒时间、提醒模式
  • 筛选:全部 / 待办 / 今天 / 已完成
  • 每行显示复选框、标题,以及创建时间、提醒模式与提醒时刻、截止时间、优先级、标签等标签
  • 点任意一行展开编辑器:标题、备注(支持 Markdown)、提醒模式、提醒时间、提前分钟、截止时间、优先级、标签
  • 逾期、今日到期、待提醒、已提醒分别用不同状态色标出

Markdown 视图

  • 预览:整份清单渲染成 Markdown,任务项的复选框可以直接点,完成状态立刻写回列表
  • 源码:直接编辑 Markdown 文本,点「已写回清单」解析回条目
  • 「复制」把当前 Markdown 放进剪贴板

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

自动创建的三个时间字段

字段 来源 说明
创建时间 createdAt 建条目那一刻 永远存在
提醒时间 按提醒模式计算 once = 现在 + 提前量;daily = 每日时刻;lead = 截止时间 − 提前分钟
提醒模式 配置默认值 defaultReminderMode none / once / daily / lead

默认提醒时间会向上取整到最近的 5 分钟刻度;once / lead 模式下它同时作为截止时间的默认值。三个字段都可以在编辑器里改,改成其他模式时会自动补齐该模式需要的字段(例如切到「每日」但没填时刻时补默认时刻)。

提醒模式:

模式 含义 下次提醒
none 不提醒 —
once 一次性提醒 指定的那个时刻
daily 每日提醒 下一个 HH:mm
lead 截止前提醒 截止时间 − 提前分钟

agent 工具

模型通过 todo_board 操作同一份清单:

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

工具与面板调用的是同一个 Host 方法,所以状态变化与失败原因一致。add 不带 mode / remind_at 时同样走「自动创建时间 + 提醒时间 + 提醒模式」这条路径。

数据

  • 默认落在 ~/.dsh/dsh-todo/state.json(单个 JSON,version: 1),写入用「临时文件 + rename」原子替换,失败不影响交互
  • 文件缺失或损坏时回落到空清单,不会阻塞宿主启动
  • 用 stateFile 配置项可以改路径

配置

写在 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 提醒扫描间隔(秒)

提醒怎么呈现

提醒到点后,插件在 Host 记账(remindedAt)并在面板上出现「待提醒」标记与一次顶部提示,条目上显示「已提醒」。插件不代替用户操作:不注入会话、不打断正在跑的 turn,也不自动勾选或延后任何条目。

结构

文件 作用
index.js Host 入口:inject、存储加载、RPC 路由、按 Agent 挂载工具、提醒扫描
store.js 数据模型、提醒时间计算、原子持久化、快照视图模型
markdown.js Markdown 生成与解析(双向,保留 id / 备注 / 提醒设置)
rpc.js 浏览器 → Host 的 JSON RPC 前缀路由
tools.js todo_board agent 工具
client.js 面板:侧栏图标 + 主区域列表 / Markdown 双视图、主题令牌样式
scripts/smoke.mjs 纯逻辑自检(不依赖 DSH 运行时)

自检

node scripts/smoke.mjs          # 14 项:自动时间/提醒、模式切换、提醒扫描、Markdown 往返、持久化
node scripts/client-smoke.mjs   # 10 项:用桩 loader 真正执行 client.js 的 factory 与渲染
node --check client.js          # 浏览器半边的语法

client-smoke.mjs 会执行 bundle 的 factory 与 apply,断言两个槽位注册(sidebar.panellist:todo / main:todo)、zh/en 语言包、样式只用主题令牌、列表视图与 Markdown 预览 / 源码两种模式各自渲染出什么,以及卸载时全部清理干净。

显示位置设置

Settings → 插件 → 待办清单 可以分别开关三处入口,改动即时生效:

开关 默认 位置
新建会话行待办入口 开 New Session 行右侧,workspace / preset 控件之后
侧栏底部待办入口 开 Settings 旁边,展开侧栏时显示计数
输入框下方待办条 关 和 activity / 用量 / 上下文指示器同一行

选择保存在 prefs.surfaces,跟着 state.json 一起持久化。

从源码开发

插件没有构建步骤,克隆后直接链接进 profile 即可:

git clone https://github.com/Mappedinfo/dsh-todo.git
cd dsh-todo
dsh plugin --profile <你的 profile> add "$PWD"

本地开发时 @deepseek-ai/dsh-tools 可能不在解析路径里(它随 DSH 安装或源码检出提供)。可以指向本地 DSH 源码检出:

mkdir -p node_modules/@deepseek-ai
ln -sfn /packages/core/tools node_modules/@deepseek-ai/dsh-tools

不建这个链接也只会失去 todo_board 工具,面板与 RPC 不受影响。node_modules/ 已被 .gitignore 排除。

从 npm 或 GitHub 正常安装时,这个依赖由包管理器装上,不需要手工链接。

装好后侧栏即出现待办图标。页面通过模块图热更新拿到新的浏览器模块,通常不必刷新;若图标没出现,刷新一次即可。

实现取舍

  • RPC 走 ctx.webServer 前缀路由而不是 ctx.connection.rpc.handle():后者自 DSH 0.1.5 起内部通过 connection 自己的 ctx 取 webServer,插件调用会抛 cannot get property "webServer" without inject。因此 inject 里必须同时声明 connection 与 webServer。
  • 样式只用 --dsw-alias-* 主题令牌,不引入任何 Harness Client 包(如 @deepseek-ai/dsh-client-ui-primitives),因此浅色/深色自动跟随宿主。
  • 样式表随面板挂载:插件 bundle 的 factory 只拿到 require;styles / host / console 是动态 Client runner 的 builtin,在 window.__ModuleLoader__ bundle 里并不存在。早期版本调用 styles.insert() 抛 ReferenceError: styles is not defined,使整个 web boot 卡在 @mappedinfo/dsh-todo: loading。现在改成面板树里的 ` 元素,随组件卸载由 React 移除;scripts/client-smoke.mjs` 刻意不提供这些 builtin 来挡住这类回归。
  • 时间运算全在 Host:Client 只回传 datetime-local / time 输入的本地字符串,两侧不必各写一份时区换算。
  • 没有构建步骤:Host 是原生 ESM,Client 是 window.__ModuleLoader__.load 工厂 + React.createElement。

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add @mappedinfo/dsh-todo@0.1.4` 即可。

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

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

dsh-todo 安全吗?

低风险。

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

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

dsh-todo 用的是什么许可证?

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

这条记录的数据可靠吗?

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

同名或近似条目

4 条
不同作者的仓库分开列,请确认你要装的是哪一个
记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

Mappedinfo 的其它插件

3 个

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