Back to home@bigfurma-bot

dsh-todos

Persistent shared to-do list for DeepSeek Harness: web UI tab + agent tools over one JSON store, writable from both sides

Stars
0
Language
JavaScript
Created
Aug 22, 2026
Updated
Aug 22, 2026

Introduction

dsh-todos

One persistent shared to-do list for DeepSeek Harness (DSH), writable from both sides:

  • Owner — a "To-dos" tab in the web GUI: add tasks, change status/priority inline, delete. Active tasks first, settled ones grouped and dimmed.
  • Agent — model tools todos_list / todos_add / todos_update / todos_remove, so your agent can read and maintain the same list.

The store is one JSON file rewritten through a single in-process writer queue; human HTTP requests and agent tool calls never race. Survives restarts.

To-dos tab in the DSH web GUI

Model

FieldValues
Statuspending · frozen · cancelled · done
Prioritylow · normal · high · urgent (highest — renders bold red)

done and cancelled rows are struck through; sorting is status → priority → age.

Install

cd ~/.dsh/profiles/web
rm -rf node_modules/@deepseek-ai/dsh-todos          # drop any stale copy
pnpm add --force "file:/path/to/this/repo"

Add the composition row to ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
    - id: dsh-todos
      name: '@deepseek-ai/dsh-todos'

Restart DSH web. Verify:

curl -s http://127.0.0.1:3080/todos        # -> {"ok":true,"tasks":[...]}
curl -sI http://127.0.0.1:3080/plugins/@deepseek-ai/dsh-todos/client.js   # 200

Boot-order note: the host half declares inject: ['fs','webServer','tools']. If you fork this, keep webServer in the inject list or your HTTP routes will silently skip at boot.

Configuration

KeyDefaultMeaning
todosPath/home/<you>/documents/todos.json*absolute path of the JSON store
workspaceRoot/home/<you>/documents*workspace root used for write-policy scoping

* The defaults in host.js are the author's paths — set both overrides for your machine via the plugin's config in your profile composition.

HTTP API

RouteBodyPurpose
GET /todosfull task list + open/total counts
POST /todos/add{text, status?, priority?}create
POST /todos/update{id, text?, status?, priority?}patch one task
POST /todos/remove{id}delete

Corrupt store files are never overwritten — fix or remove them by hand.

License

MIT — see LICENSE.