DeepSeek Harness plugin

dsh-kanban-raosay

A minimal DSH web GUI kanban board: sidebar entry plus a multi-column board with local persistence, real task execution through dsh sessions, and per-task model selection (provider/model applied via

Jump to install

Source facts

Repository
raosay/dsh-kanban
Latest update
Aug 17, 2026
Category
Models & Providers
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/raosay/dsh-kanban
Plugin: dsh-kanban-raosay
Author: raosay

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

dsh-kanban

> A standalone DeepSeek Harness (DSH) Web GUI plugin that provides only a kanban board, enhanced with per-task model selection.

中文 · DSH plugin ecosystem reference

---

What it is

dsh-kanban is a standalone plugin following the official DSH cordis bundle standard. It is based on the packages/dsh-task-board from dsh-web-ui, with two key changes:

ChangeDescription
Kanban onlyA multi-column board plus task create / move / detail / delete / real execution. Cron scheduling, archiving, and the workspace / agent-preset / permission execution targets were removed to keep the plugin minimal and single-purpose.
Per-task model selectionWhen creating or editing a task, pick a specific model (provider / model) from the model catalog. On execution the plugin applies it via session.selectModel before sending the prompt; blank = session default model.

Features

  • 🗂 Multi-column board: Backlog / To Do / In Progress / Done / Failed, with live status on each card.
  • 🚀 Real execution: connect session → apply model → rename session → session.prompt → watch for turn completion and settle the card (done / failed).
  • 🎯 Per-task model selection: the model dropdown is fed by the host-level llm.models catalog (no session needed); applied via session.selectModel before the prompt.
  • 🧾 Execution history: records the session, start/end times, result and failure reason; jump straight to the session transcript.
  • 💾 Local persistence: stored in browser localStorage (key dsh.kanban.v1), synced across tabs.
  • 🔌 Zero-invasion mounting: sidebar entry and center-column panel are DOM-injected and self-healing, mutually exclusive with the ssh / task-board panels, with no DSH source changes.

Quick start

Prerequisites

  • DSH installed and initialized (dsh web starts, and a web profile exists).
  • Node.js ≥ 22, pnpm ≥ 10.

Method 1: build locally and link (recommended for development)

# 1. Clone
git clone https://github.com/raosay/dsh-kanban.git
cd dsh-kanban

# 2. Install and build (produces lib/index.js and lib/client.js)
pnpm install
pnpm build

# 3. Link into your web profile (from the cloned directory)
dsh plugin --profile web add link:"$PWD"

# 4. Restart dsh web

> dsh plugin add link:<path> adds the plugin under ~/.dsh/profiles/<profile> and appends it to dsh.profile.bundles automatically (the package declares dsh.bundle). The "Kanban" entry appears after restart.

Method 2: install directly from git

dsh plugin --profile web add github:raosay/dsh-kanban

> pnpm ≥ 10 blocks the prepare build script of git dependencies by default. If it prints Ignored build scripts: dsh-kanban, add dsh-kanban to allowBuilds in ~/.dsh/profiles/<profile>/pnpm-workspace.yaml and re-run.

Verify

After restarting dsh web:

1. A "Kanban" entry appears below the New Session button in the sidebar. 2. Open the board → "New Task" → the "Model" dropdown is populated (from llm.models, e.g. deepseek-v4-flash · DeepSeek). 3. Run a task with a model selected and watch the card move through In Progress → Done / Failed.

Usage

Create a task

Click "+ New Task" and fill in:

  • Title (required): one line describing what to do.
  • Description (optional): background, scope, acceptance criteria.
  • Run Prompt (optional): the full instruction sent to the agent; blank = the title is used.
  • Model (optional): pick a specific model; blank = session default model.

Run a task

From the task detail, click "Run" / "Run Again". Execution drives a real dsh agent session:

1. Connect (reuse a blank session or create one) in the most-recently-used workspace. 2. If the task pins a model, apply it via session.selectModel. 3. Rename the session to the task title. 4. Send the prompt and watch for turn completion, settling the card as Done or Failed.

Task detail

  • View description, prompt, model setting and execution history.
  • Change the model, move the task to Backlog / To Do.
  • Delete (with confirmation), jump to the execution session.

How model selection works

create/edit task                at execution
────────────────                ─────────────
llm.models({})              connectWorkspace()
   │  (host-level catalog)         │
   ▼                                ▼
{ provider, model }     session.selectModel({ sessionId,
(persisted on the task)      provider, model })
                                       │
                                       ▼
                              session.prompt(...)  ← send the prompt
  • Catalog source: llm.models (session-independent), returning provider groups and their models.
  • Apply point: applyModel in src/core/execution.ts, called before the prompt.
  • Persistence: the model is stored as { provider, model } on the task record, in localStorage.

> ⚠️ session.selectModel is DSH's only model-selection primitive, and it also records the chosen model as the default (same behavior as the official model picker). Selecting a model for a task therefore also affects the default model of subsequent sessions.

Project layout

dsh-kanban/
├── package.json           # manifest: dsh.bundle.patch + dsh.client
├── cordis.patch.yml       # bundle patch: inserts the plugin row
├── tsdown.config.ts       # tsdown build config
├── tsconfig.json          # typecheck config
├── tsconfig.build.json    # type-emit config
├── build/                 # client bundle preset (reused from dsh-web-ui)
└── src/
    ├── index.ts           # host half: system-prompt announcement
    ├── invariant.ts       # empty invariant
    ├── mount-once.ts      # host single-instance guard
    ├── core/              # framework-free core (tasks / execution / store / controller / use-cases)
    └── client/            # browser half (wiring / sidebar / board-mount / components / styles)

Build & development

pnpm install       # install dependencies
pnpm build         # tsc (types) + tsdown (lib/index.js and lib/client.js)
pnpm run bundle    # tsdown only (runtime artifacts, no types)
pnpm run typecheck # typecheck only
pnpm run watch     # watch mode

> The prepare script is tsdown, so git-installed packages build their runtime artifacts automatically.

Data storage

  • Key: dsh.kanban.v1 (browser localStorage).
  • Content: the task array (title, description, prompt, status, timestamps, execution history, model selection).
  • Cross-tab: listens for storage events.

Limitations

  • API cost: running a task drives a real dsh agent session.
  • Default-model side effect: see the ⚠️ note above.
  • Shell-layout dependency: the panel is DOM-injected and depends on the DSH shell layout ([class*="centerCol"], [data-pane="conversation"], [class*="logoRow"], …). Shell changes may require updating these selectors.
  • Overlaps with dsh-task-board: install one or the other to avoid two board entries in the sidebar.

License

[Apache-2.0](./LICENSE)

Acknowledgements