본문으로 건너뛰기
B

dsh-todo-notes

blazenebula/dsh-todo-notes

A three-scope TODO board for DeepSeek Harness (user, workspace and session) with nested folders that can reference one item from several places, T0–T9 priorities, drag reordering, batch actions, a floating panel that also opens as a right-sidebar tab, Markdown preview windows that can stay open with autosaving title and body editing, and agent read/write tools, with every write gated by DSH approval.

설치

dsh plugin --profile web add github:blazenebula/dsh-todo-notes

README

TODO 便签(dsh-todo-notes)

给 DeepSeek Harness 加一块随手可记的 TODO 板:长期事项放用户级,项目事项放工作区级,眼前这件事放当前会话级。三个层级互不打扰,切换会话时只展开当前会话那一组。

便签既可以是浮在页面右上角的浮动面板,也可以收进右侧栏当页签;两处看的是同一份数据,改哪边都会立刻反映到另一边。所有内容都保存在本机,不上传。

安装

  • 插件市场里搜索「TODO 便签」安装。
  • 市场还没收录时,在插件页填仓库地址 https://github.com/BlazeNebula/dsh-todo-notes,或选择本地目录安装。
  • 装好后右上角会出现浮动面板;右侧栏页签里也会多一个「TODO 便签」。

客户端改动按 Ctrl+R 生效;新增插件或设置页这类宿主改动需要完全退出 DSH(包括托盘图标)再启动。

快速上手

  1. 在浮动面板里点组标题右侧的「+」,写第一条 TODO。
  2. 单击条目打开 markdown 预览;点预览右上角的编辑按钮,可以改标题和正文。
  3. 拖动面板标题栏换位置,拖右下角改大小;这些位置和尺寸会记住。
  4. 勾选条目表示完成;智能体勾选的条目会先停在半完成状态,等你确认。

三个层级

  • 用户级:跨项目的长期事项,切到哪个工作区都看得到。
  • 工作区级:当前工作区的事项,按工作区目录分开存放。
  • 会话级:只属于当前这次会话的事项。

切到别的会话时,会话组会自动换成那个会话的内容;当前工作区和当前会话的组标题使用斜体,鼠标悬停能看到工作区路径或会话 ID。

组织条目

  • 可以建文件夹,文件夹还能再套文件夹;左侧三角和文件夹图标是同一个收展热区。
  • 一条 TODO 有一个主归属,同时可以被多个文件夹收录;点文件夹行右侧的加号可以新建子文件夹。
  • 优先级从 T0 到 T9,T0 最高。拖动条目可以换位置;拖到另一个文件夹会移动它;按住 Ctrl 拖动只增加收录,不改变主归属。
  • 双击文件夹名可以重命名,右键有更多操作。
  • 从空白处拖出选框可多选,Shift 点击可连续选择;选中后可用批量菜单移动、收录、改优先级、重命名或删除。

预览与编辑

  • 单击条目打开临时预览,点别的条目会替换内容;拖动预览标题栏会把它保留成独立窗口。
  • 保留窗口可以同时开多个,位置、尺寸和内容在刷新或重启 DSH 后恢复;同一条目的预览只会保留一个,再次打开时把已有窗口置顶。
  • 预览信息区显示状态、所属文件夹、优先级、创建时间与来源;在面板里改勾选、优先级、文件夹或标题,已保留的预览会同步更新。
  • 编辑时标题变成输入框,正文只编辑 frontmatter 之后的部分,frontmatter 不会出现在编辑区。
  • 正文框随行数自动增高,也可以拖右下角手动拉高;标题与正文各自计时,停止输入后自动保存,关窗前会把没保存的内容补写一次。

勾选与批量

  • 勾选有三态:未勾选、半完成(智能体勾选、等待你确认)、已完成(人工确认)。
  • 单击勾选框切换完成状态;双击勾选框区域直接完成;取消勾选退回未完成。
  • 批量菜单里的第一项「无文件夹」和单条的管理收录一致,勾选即从所有文件夹中移出收录关系。

设置

设置 → 左侧导航「TODO 便签」,或从插件列表点开 TODO 便签,都能打开同一块设置。

  • 状态外观:未完成、半完成、已完成三种条目的预览;已完成默认 35%、半完成默认 67%,整行透明度用滑块调,右侧数字可以直接输入。
  • 优先级颜色:T0~T9 共 10 个颜色,左列 T0~T4、右列 T5~T9;点色块用取色器,旁边的十六进制值也能直接改。
  • 编辑与保存:允许智能体修改你手写的条目(默认关闭,打开后每次写入仍需 DSH 审批);正文停止输入后等待多久保存,按秒填写,默认 5 秒,标题使用同一个间隔。
  • 页面上方是实时预览和「恢复默认」「保存」;保存后立即应用到所有面板,不需要重启。这些设置都记在本机的 ui-settings.json。

插件 Config 里的 agentWriteUserTodos 与 bodyAutosaveMs 作为默认值使用:设置页没有改过时用它们,改过之后以设置页为准。

智能体能做什么

智能体通过工具操作便签:

工具作用
todo_notes_list按范围列摘要,不返回正文
todo_notes_read按 id 读正文与属性
todo_notes_create新建条目
todo_notes_update改标题、优先级、状态或文件夹
todo_notes_toggle勾选或取消勾选
todo_notes_delete删除条目

智能体勾选最多写成半完成,最终确认仍然由你完成;修改你手写的条目需要先在设置页打开「允许智能体修改你手写的条目」,并且每次写入都要经过 DSH 审批。

数据与隐私

  • 所有 TODO、文件夹、窗口状态与外观设置都只写在本机的 $DSH_HOME/todo-notes/,不上传。
  • 插件不发起网络请求,只注册本机路由 /dsh-todo-notes/api,供面板读写本地文件。
  • 智能体写入必须经过 DSH 审批;拒绝或无法审批时不写入。

目录结构:

$DSH_HOME/todo-notes/
  windows.json        保留窗口的位置、尺寸与内容
  ui-settings.json    透明度、优先级色板、自动保存间隔与智能体权限
  user/               用户级组
  workspaces/<工作区 slug>/
    sessions/<会话 id>/

每个 TODO 是一个 markdown 文件,frontmatter 字段包括 id、title、status(todo / partial / done)、created、updated、source、priority、primaryFolder。数字形式的标题会以带引号的字符串写回,避免被解析成数字后丢掉标题。

开发

  • lib/ 是宿主:入口、组与条目读写、HTTP 路由、Agent 工具、窗口与外观设置。
  • client/src/ 是浏览器端源码,client/client.js 是构建产物;DSH 只加载这一个文件。
  • 改完 client/src/* 运行 node scripts/build-client.mjs(或 npm run build:client);npm run check 检查全部源码语法。
  • 除构建产物外,源码文件都在 500 行以内。client/src 的分段共享同一个模块工厂作用域,这是 DSH 客户端只接受单文件加载决定的。

许可

MIT,见 LICENSE。

관련 플러그인