dsh-todo-checklist
Todo sidecar for DeepSeek Harness: turn selected text into a todo, capture todos from a conversation, review them in a left sidebar panel, get due reminders as an in-app popup or an IM bot message, and export everything to HTML, Markdown, Excel, CSV or JSON.
Install
dsh plugin --profile web add dsh-todo-checklist
Sandbox test
This plugin has not been tested yet. Submit a test →
README
<div align="center">
✅ dsh-todo-checklist ·「待办清单」
待办从对话里长出来 —— 不是又一个需要你记得打开的 App。
划词加待办 · 对话自动捕获 · 左侧栏面板 · 到期提醒 · 一键导出





简体中文 · [English](./README-en.md)
</div>
🎯 What it does · 它能做什么
大多数待办工具的失败原因是同一个:念头出现在干活的时候,而不是出现在待办 App 里。 你跟模型聊到一半,它说「另外记得核对一下 RoHS 报告有效期」,你点点头 —— 然后就没了。
这个插件把这个缺口补上。它长在 DeepSeek Harness 里,在那句话出现的瞬间把待办接住,四种接法:
你做的事 · 待办怎么进来
在回复里选中任意一句话 → 点 + 待办 · 弹出卡片,AI 帮你填标题 / 内容 / 提醒时间,也可以自己手打
在对话里说「记一下……」/「提醒我周五前」 · 模型调用内置工具 todo_add 直接写入
一段对话聊完 · 对话里没落实的意图被自动捕获成待办
问「我现在有哪些待办?」 · 模型调用 todo_list,用你看的同一份数据回答
所有东西都落到左侧那一个面板里 —— 每个会话都在同一个位置,回顾成本是「瞟一眼」,不是「切个 App」。
📸 Screenshots · 界面截图
面板:一直在那,收起时只占一行
选中文字 → 冒出一个小气泡 → AI 把这句话变成结构化待办
<table>
<tr>
<td width="50%"><img src="https://raw.githubusercontent.com/qgd1850890306-rgb/dsh-todo-checklist/main/docs/screenshots/bubble.png" alt="划词气泡"><br><sub><b>① 选中任意一句话</b> —— <code>+ 待办</code> 气泡跟着选区出现</sub></td>
<td width="50%"><img src="https://raw.githubusercontent.com/qgd1850890306-rgb/dsh-todo-checklist/main/docs/screenshots/capture.png" alt="AI 记录待办"><br><sub><b>② 记录卡片</b> —— AI 预填标题、内容、提醒时间,每个字段都还能改</sub></td>
</tr>
</table>
导出:设置页里的折叠区 —— 范围和格式都能多选,每个格式各下载一个自包含文件
设置页拆成两页 —— 「设置」放插件选项,「待办清单」放完整记录列表
整个窗口的样子
🚀 Quick start · 快速上手
1. 安装 —— 打开 DSH → 左侧栏 → 插件 → 添加插件 → 填 dsh-todo-checklist → 完全退出并重启 DSH。
2. 加一条 —— 在任意对话里选中一句话 → 点 + 待办 → 让 AI 填,或自己打 → 保存待办。
3. 看与处理 —— 点左侧图标列底部的「待办清单」。勾掉它、双击跳回原句、或者等到点提醒自己弹出来。
整个闭环就这三步。不用注册,不用另起服务。
✨ Features · 功能一览
功能 · 实际做了什么
划词加待办 · 在任意回复里选中文字 → + 待办 气泡 → 弹窗里可交给 AI 记录(模型把这段话重写成标题 / 内容 / 提醒时间),也可手动填写
对话自动捕获 · 说「记一下……」,模型调用 todo_add(source: "model")写入;todo_list 用同一个库回答「我有哪些待办」
左侧栏面板 · 挂在官方左侧图标列底部。收起时显示 待办清单 · 预期 N 项 · 待完成 N 项;展开是完整列表,含搜索、提醒筛选、四个分组(未完成 / 已完成 / 已放弃 / 逾期)
到期提醒 · 每 30 秒扫描。弹应用内提醒(知道了 / 查看 / 完成 —— 「查看」跳回原会话并高亮原句),或经 DSH-IM 机器人推送(全局默认,单条待办可覆盖)
导出 · HTML · Markdown · Excel(.xlsx) · CSV · JSON,每种都能导全部或筛选后的范围 —— 见[下方](#-export--导出)
编辑与延期 · 改标题、内容、提醒时间(年 / 月 / 日 / 时 / 分五段式输入 —— 点哪段,± 就只动哪段;分 ±30、其余 ±1,自动进位);延期三档:+1 天、下周一 09:00、自定义
AI 重新整理 · 把已有待办交回模型重写成结构化内容,就地替换原条目
转定时任务 · 把待办转成周期性任务(需 dsh-tasks;未装时回退官方内置调度,都没有会给明确提示)
新建会话 · 双击标题或点 ↗ 新建会话,待办内容预填进输入框,沿用划词时那个会话的工作区与模型;发送后该待办自动完成
持久保存 · 个人存储域 dsh_todo_sidecar_items,重启不丢。单条数据损坏会被独立抢救或丢弃 —— 不会让整个插件不可用
📤 Export · 导出
1.5.0 新增导出。设计目标很朴素:同一批记录,人要能读,AI 也要能读,而且不该需要你手动转换。
进 设置 → 待办清单,展开「导出全部记录」,选格式和范围即可。
五种格式:
格式 · 说明
HTML · 单个自包含 .html,双击就开、可直接打印成 PDF、不需要联网。所有内容都做了转义(防 XSS),跟随深色模式,带打印样式表
Markdown · 带标题和勾选框的纯文本,粘进任何笔记软件都行,也可以整段喂给 AI
Excel (.xlsx) · 真正的 .xlsx(OOXML,14 列,首行冻结),Excel / WPS / Numbers 都能开,支持筛选和排序。没有引第三方库 —— ZIP 容器是手写的,插件因此仍保持零运行时依赖
CSV · 通用纯文本。UTF-8 带 BOM,所以 Excel 打开中文不乱码;逗号、引号、换行按 RFC 风格加引号转义
JSON · 完整字段的结构化数据,字段最全,最适合程序或 AI 精确解析
范围可多选:未完成 / 逾期 / 已完成 / 已放弃 任选若干个,取并集;一条都不选就是全部记录。选中的范围会写进文件名和导出说明,例如 dsh-todo-20261019-0140-pending-overdue.md。
两点值得知道:
- 导出内容只有清单本身 —— 标题、内容、时间、状态、AI 总结、来源会话。不含对话原文,也不会上传到任何地方。
- 格式化逻辑只有一份,放在
shared/export-core.js,界面和宿主工具共用。所以你下载到的文件,和 AI 通过todo_export拿到的文本,是同一份代码产出的 —— 两边不会漂移。
给 AI 用的宿主工具:
todo_export({ format: "md" | "csv" | "json" | "html", scope: "all" | "pending" | "done" | "abandoned" | "overdue" })
跟模型说「把我所有待办导出成 Markdown」,它会直接在对话里返回文本。(.xlsx 是二进制,所以工具会返回一句提示让你走界面按钮 —— 这是有意划的边界,不是缺功能。)
🧩 Requirements · 环境要求
- DSH
>= 0.2.0-rc.1,已测0.2.0-rc.1、0.2.0-rc.2、0.2.1-rc.2。 - Node.js
^22.19.0 || >=24.0.0(engines里声明;桌面端运行时自带 Node 24)。 - 桌面端或 Web 端均可 —— 客户端面声明
platform: web。 - 零运行时依赖:宿主面已预打包成自包含文件(
lib/host.js、lib/typert.js,zod 已内联)。安装时不需要下载任何东西,所以link:、离线、tarball 三种装法表现完全一致。
📦 Install · 安装
方式一 —— 从 npm 装(推荐,一行命令)
dsh plugin --profile desktop add dsh-todo-checklist
包已发布在公共 npm(https://www.npmjs.com/package/dsh-todo-checklist)。不写版本号就是最新版;要钉住某一版,写成 dsh-todo-checklist@<版本号>。
方式二 —— 从 GitHub 装
dsh plugin --profile desktop add https://github.com/qgd1850890306-rgb/dsh-todo-checklist.git
构建好的 lib/ 在仓库里,两种方式安装时都不需要编译 —— 不会弹 allowBuilds 授权,也不需要本地工具链。
方式三 —— 本地目录或 tarball(离线 / 内网)
dsh plugin --profile desktop add <本地目录或 .tgz 的绝对路径>
在界面上装:插件 → 添加插件 → 填 dsh-todo-checklist,或粘贴上面的 GitHub URL。
在官方「发现」页里装:本仓库根目录带了一份 index.json,按 DSH 官方的 format 1 插件市场索引写成(source.type = git,钉在发版的 commit 上)。把它加成索引源:
1. 设置 → 插件 → 发现 → 添加索引源
2. 填这个地址(镜像,带 CORS,本机可达):
https://cdn.jsdelivr.net/gh/qgd1850890306-rgb/dsh-todo-checklist@main/index.json
社区目录 awesome-dsh-plugin 会把 npm 上已发布的插件自动收录进它的 format 1 索引(每天刷新一次),发布到 npm 之后大约一天内就会出现在
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::8,最后更新 2026-10-20