DSH 插件市场DeepSeek Harness 社区插件目录

dsh-global-todo

已验证 工具与能力 ★ 11 0.23.2

Cross-session todo list for DeepSeek Harness where an agent"s "done" never settles itself — the record waits in Needs review until a person confirms it. Built for a phone: the panel measures its own width, folds on scroll and keeps 44px touch targets. One JSON file both sides write, numbered step hand-offs, session read-back, and two machines folding one list through a shared directory.

一句话定位

Cross-session todo list for DeepSeek Harness where an agent"s "done" never settles itself — the record waits in Needs review until a person confirms it. Built for a phone: the panel measures its own width, folds on scroll and keeps 44px touch targets…

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add dsh-global-todo@0.23.2

兼容的 DSH 版本

>=0.2.0-rc.1 <0.3.0

作者与热度

LUgABeEEE · ★ 11 · 更新于 2026-11-08

关于这个插件

中文 · [English](https://github.com/LUgABeEEE/dsh-global-todo/blob/main/README.en.md)

dsh-global-todo · 全局待办

一份跨会话的待办清单:一个属于你的文件,你和 Agent 读写同一份,一键交给某个对话继续干。

三件会话级计划做不到的事——第一件是这个插件最要紧的一条:

1. Agent 说「做完了」不算数,两个入口都只是声明。它自己在工具里报完成是一种,交给的会话干净收尾、

宿主替它收尾是另一种;两条路都只把记录送进待确认。人点「确认完成」才算完成,点「退回清单」

就回到清单里、完成记录一并清掉。会话级计划没人问这一句:Agent 把表一改,事情就算结束了。

2. 一个 JSON 文件就是全部。能 cat、能 diff、能提交进仓库、能放 NAS、换机带走——不藏在任何会话日志里。

3. 交接是一个按钮,不是一段话。四种模式、会先检查工作目录,待办自己的步骤会作为编号计划一起交出去。

dsh plugin add dsh-global-todo

[在线主页](https://lugabeeee.github.io/dsh-global-todo/)(22 秒排版演示)· [English](https://github.com/LUgABeEEE/dsh-global-todo/blob/main/README.md#english) · [5 分钟上手](docs/QUICKSTART.md) · [常见问题](docs/FAQ.md) · [每个条件状态都有基线图](#截图) · [设计说明](docs/DESIGN.md) · [交给 Superagent](docs/SUPERAGENT.md)

---

它补的是哪个缺口

DSH 自带的 todo_write 属于某一个 agent 会话:整表替换、三个状态、会话一关计划就翻篇。

社区里解决这件事的插件分成两派:一派擅长把活派给 Agent(自动续跑、绑定会话),

一派能收真正的文档附件。这个插件把两件事放在同一条记录上:

| | 自带 todo_write | dsh-global-todo |

|---|---|---|

| 归属 | 一个 agent 会话 | 你——跨会话、跨工作区 |

| 写入方式 | 整表替换 | 逐字段,人和 Agent 都能写 |

| 加入时间 | 不记录 | createdAt 只写一次,处处可见 |

| 上下文 | 标题 + 状态 | 描述 + 文档与地址 |

| 交给 Agent | 无 | 一键:复用已绑定会话,或新开一个 |

| 标成完成 | Agent 改了就算 | 进「待确认」,人点头才算完成 |

| 存储 | 会话事件日志 | 一个 JSON 文件,能 cat、能手改、能 diff、能备份 |

完成确认:没有一条记录能自己变成「完成」

这是它最容易被记住的一条,也是它和所有「让 Agent 自己报进度」的清单最不一样的地方:

Agent 说「做完了」,只是它说了这句话。 记录写完是 done,同时带上

review: { pending: true };行上有「待确认」徽标,顶部有带计数的筛选,直到人回答为止。

两个入口都受同一条规则管,因为它们同样只是声明:

| 「做完了」从哪来 | 记录变成 | 谁来回答 |

|---|---|---|

| Agent 调 global_todo_done,或把状态改成 done | done + 待确认 | 人 |

| 交给的会话干净收尾,宿主自动收尾(turn/end 是 completed) | done + 待确认 | 人 |

| 你自己在面板里点完成 | done | 已经是人 |

  • 回答只有两个:「确认完成」清掉标记,动态里记下是谁确认的;「退回清单」回到 open,

清空 doneAt 与完成记录,动态里加一条 reopened。标题、描述、步骤、附件、进展一条不删。

  • 自动收尾也走这个门。宿主替 Agent 写的那份完成记录本来就更薄——只有最后一段回复和这一轮

改过的文件——它更没理由自己算数。

  • 只有干净收尾才是候选:error、aborted、interrupted、max-tokens 一律留着未完成。

一轮失败的任务挂着「完成」标签,是让整份清单不可信的唯一起点。

规则在代码里只有一个实现:completeTodo、applyPatch 和状态改写共用 lib/model.js 里那个

by === 'agent' 判断,面板和十一个工具都走它。

0.9 / 0.10 补了什么(以及再往前两版)

五件这两份 README 一直没讲的能力:会话回读与原话是 0.9 的,Markdown 与本周报告是 0.10 的,

步骤是 0.8 的。每一个都改变了记录能装什么,或者改变了事后能拿它做什么。

(还有一件是 0.7 的「待确认」,它现在就是开头那条规则,不在这里当新功能讲。)

步骤:待办里的一份计划

一条待办最多 20 个步骤、每步 200 字(lib/model.js 的 LIMITS)。步骤是 { text, done }——

一条工作里的一行,不是有自己 id 和状态的子任务。

  • 加:新增表单的「更多字段」→ 步骤,一行一步。
  • 勾:详情里每步一个勾选框;行上显示「步骤 2/5」。
  • 交出去:派发提示词会把步骤编号,已完成的加 [已完成] 前缀。
  • 导出:Markdown 里写成缩进的 - [ ],导入时读回来。

原话:这条是从哪句话来的

evidence 是抓取时那条待办来自的原话,逐字引用,最多 300 字。global_todo_capture 会向模型要它,

global_todo_add 也收,详情里以引用块显示在「原话」下面;你自己敲的条目没有这一项。

它只为一件事存在:没有出处的一次抓取,过几天看起来就像一句观点。Markdown 导出里也有这一行(原话:)。

会话回读

派发是在另一个对话里开工,所以详情要能回答「它说了什么」,不用切过去。

GET /api/global-todo/session?id= 返回 alive、dir 和最后一条 assistant 消息的 tail;

同分类对比

同一分类下 Star 最高的 5 个,便于横向比较。

插件作者 Star版本更新
Mole tw93 74.5K 0.0.0 2026-11-10
DeepSeek-Reasonix esengine 36.1K 0.0.0 2026-11-10
dsh-desktop anywhere-labs 35.6K 0.4.1 2026-11-06
awesome-dsh-plugin awesome-dsh-plugin 24.1K 0.1.0 2026-11-10
dsh-market dsh-market 11.8K 1.73.17 2026-11-09