@walknpm/dsh-todo-plugin
A DeepSeek Harness Tool Plugin that wraps @walknpm/todo-cli as model-callable tools.
What it does
Registers 11 tools into the DSH Tool Registry, letting the Agent model directly manage a persistent todo list:
todo_add | Add a new todo (title, priority, tags, category, due, note) |
todo_list | List and filter todos (status, category, tag, priority, sort) |
todo_done | Mark a todo done by id, or all pending todos |
todo_toggle | Toggle done/pending status by id |
todo_edit | Edit an existing todo by id (partial update) |
todo_delete | Delete a todo by id |
todo_search | Search todos by keyword (title, tags, category, note) |
todo_stats | Get summary statistics (total, done, pending, overdue, byPriority, byCategory) |
todo_export | Export all todos as JSON, CSV, or Markdown |
todo_archive | Remove all completed todos |
todo_clear | Clear all todos |
Data is persisted to ~/.todo-cli/todos.json by default (configurable).
Install
Into a DSH Profile
dsh plugin --profile web add @walknpm/dsh-todo-plugin
dsh plugin --profile tui add @walknpm/dsh-todo-plugin
Restart DSH after installation. The terminal should show:
[dsh-todo-plugin] loaded: dataFile=/home/user/.todo-cli/todos.json
Verify
dsh --profile web --dump-config | grep dsh-todo-plugin
Configuration
Override defaults in your profile patch:
- id: dsh-todo-plugin
config:
dataDir: '/path/to/custom/dir'
dataFile: 'todos.json'
Plugin Structure
dsh-todo-plugin/
├── package.json # npm package with dsh.bundle.patch
├── cordis.patch.yml # DSH Bundle Patch (inserts plugin row)
├── src/
│ └── index.js # Cordis plugin entry (registers 11 tools)
├── README.md
└── LICENSE
How it works
- The
cordis.patch.yml inserts a plugin row with id: dsh-todo-plugin
- Cordis resolves the
@walknpm/dsh-todo-plugin package from the Profile's node_modules
- The plugin's
apply(ctx, config) calls ctx.tools.register(defineTool(...)) for each tool
- The model sees the tool schemas in its system prompt and can call them
- Each tool executes against the persistent JSON store via
@walknpm/todo-cli domain functions
Dependencies
@walknpm/todo-cli — todo domain logic and JSON store
@deepseek-ai/dsh-tools (peer) — defineTool API
@deepseek-ai/schemastery (peer) — config schema
@deepseek-ai/cordis (peer) — plugin runtime
License
MIT