Preface

In DeepSeek Harness (DSH) development practice, dispatching multiple tasks at once often prevents agents from going deep enough, or users may want an agent to finish one task and then pick the next one by itself. dsh-todo-board is a cross-session TODO board for DSH agents. It exists as a floating window in the upper-right corner, groups items by working directory, and supports drag-and-drop reordering. Each todo can be assigned a different execution mode; after completion, the AI calls an API to check it off, and after user acceptance, the user checks it off to truly close the task.

Installation and Enablement

The installation command is as follows. After installation, you must restart the Profile (rerun dsh web) for it to load, because the plugin is one line in the host composition, not hot-loaded at runtime.

dsh plugin --profile web add dsh-todo-board

Core Features

Execution Mode
Each todo must be assigned a mode when created (default: “Reminder”). You can independently select “Reminder,” “Auto-continue,” or “Auto-new session.” The “Directory” field in the creation form determines which directory the todo belongs to; if left blank, it follows the current session’s working directory. The dispatch order is the top-to-bottom order in the panel.

Task Status and Dual Checks
Task status is derived from the live session list and is not persisted. Each row has a status label. The left check indicates that the AI has completed the task (awaiting acceptance); the right check indicates user acceptance (truly closed). Only the right check removes the task from the unfinished list and moves it into the separate “Completed” list below. Completed rows do not participate in the execution order.

UI and Grouping
The panel is a floating window that supports collapsing and resizing; its position and size are stored in localStorage. Todos are grouped by working directory, and the list order is the execution order. It supports switching among four UI styles (Ticket/Plain White/Compact/Follow Theme).

Long-task Planning
Long tasks can be broken down into steps and injected via the /todo <goal> command or by pasting a template directly. In one call, the entire plan is written, and in one approval.

Other Capabilities
- Image attachments: Supports Ctrl+V screenshot pasting, up to 4 images, and sends them to the model as real images during dispatch.
- Scheduled execution: You can set a local time for execution; it can be modified anytime in the list.
- Stuck self-healing: Dispatch failures are logged and retried with backoff, never silently retired.
- Developer log: View logs within the panel.

Typical Usage

  1. The floating window appears in the upper-right corner. Enter the todo content, select an execution mode, and click “Add.”
  2. While the AI is executing, after completion it calls todo_board action=done to check its left box, then automatically finds the next unfinished todo in the same directory and continues executing.
  3. After the user accepts, click the right check. The row moves into the “Completed” list. “Clear accepted” at the bottom can batch delete.

Applicable Scenarios and Notes

This plugin is suitable for scenarios requiring fine-grained management of agent task progress. Before using it, note the following:

  • Version requirements: From plugin version 0.11.2 onward, DSH ≥ 0.1.7-rc.2 is required, and it has been validated on DSH 0.2.0-rc.2 (desktop).
  • Permission restrictions: AI modifications to the board must go through the native DSH approval dialog, and board routing requires browser session credentials.
  • Data storage: The board is a global single file (${DSH_HOME}/todo-board/board.json), written atomically.