@demxyuanli/dsh-canvas: DeepSeek Harness Project Board Plugin

Introduction

In the DeepSeek Harness (DSH) workflow, agents typically output project progress as Markdown documents. This approach has two problems: first, the information is poorly structured and difficult to query deeply; second, each view requires pasting the content again, preventing a persistent panel from forming. The @demxyuanli/dsh-canvas plugin introduces a compiled canvas, allowing agents to write project dashboards as .canvas.tsx files. The Host side compiles and renders them in real time to the right pane of the workspace, and operations on the panel can be fed back to the agent.

What It Is

This is a project dashboard plugin for DeepSeek Harness. Its core value is transforming “artifacts for human viewing” from prose-style Markdown into a compilable, interactive, structured panel. The agent writes canvas code, the Host compiles and renders it, and panel data can be read or written back by the agent.

Architecture: Single Package, Two Halves

The plugin uses a single-package, two-halves architecture: one package contains both Host (Node.js side) and Browser (browser side) logic.

  • Host (Node.js side): responsible for real-time canvas compilation (using sucrase), content addressing, canvas discovery and watch, and interaction with the agent.
  • Browser (browser side): zero dependencies, only allows importing React. Responsible for rendering canvas components and displaying them as tabs in the right pane.

Core Features

  • Five canvas paradigms: supports task tracking, gate alignment, migration progress, solution comparison, and audit reconciliation.
  • Intent entry integration: integrates Harness’s native intent entry (agent/pre-step). Supports triggering by strong nouns (e.g., “dashboard”) and weak nouns (e.g., “project documentation”). When matched, it generates intake guidance to help align terminology.
  • Structured data and context saving: canvas data is structured and queryable. The canvas_read interface supports slicing (dataPath / filter / ids / limit), which can significantly save the agent’s context.
  • Real gate execution: gate execution goes through the real ctx.shell, supports allowlist and sandbox policies, instead of model self-reporting.
  • Data feedback: decisions on the panel can be fed back to the agent.

Installation and Activation

The plugin is distributed via the npm registry. In the “Plugins” panel in the Harness sidebar, paste the package name directly to complete installation; Host will automatically read and load it.

pnpm add @demxyuanli/dsh-canvas

After installation, restart Harness. The Host half is loaded at startup, and the browser half is dynamically loaded by package name.

Usage Examples

  • Trigger intent: when a user says “create a project canvas” or “dashboard”, the intent entry is triggered and intake guidance is generated.
  • Create canvas: use canvas_new(path, 'audit') to create an audit canvas.
  • Component import: canvas code can import components only via import 'dsh/canvas'; it is not a general-purpose frontend framework.

Notes

  • Positioning: it is not a replacement for todo_write or goal. The former suits short tasks, and the latter decides whether to continue to the next round.
  • Security: canvas code has plugin-level trust and may carry sandbox risk.
  • Configuration limitation: the compileTimeoutMs setting is currently not in effect.
  • Allowlist policy: commandWhitelist is empty by default, meaning all commands are denied.

Closing

The plugin suits complex workflow scenarios that require long-term tracking, structured display, and real Shell execution privileges. To view more examples or source code, please visit the plugin directory or GitHub repository.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye