npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xiuda-ai/dsh-taskboard-plugin

v0.1.0

Published

DeepSeek Harness 任务看板插件:本地 JSON 存储的六列看板 + 任务会话联动 + 拖拽排序 + 面向模型的看板工具。

Readme

@xiuda-ai/dsh-taskboard-plugin

DeepSeek Harness 任务看板插件

English · 中文

npm License: MIT GitHub


一个为 DeepSeek Harness 设计的任务看板插件:本地 JSON 存储、六列看板、拖拽排序、任务与会话联动、面向模型的看板工具。逻辑参考 Proma 的任务看板(taskboard-store.ts 与 renderer/components/taskboard/)精简而来——本地文件存储、浮动 sortOrder、乐观锁(version)、identifier 续号、中文看板列与优先级/状态色调。

功能

  • 六列看板:待处理 / 处理中 / 受阻 / 待确认 / 已完成 / 已归档(列内卡片过多时独立滚动)
  • 多项目:内置全局项目(local),可新建项目;全局视图聚合所有项目
  • 拖拽:拖到列空白(跨列移动 / 追加),拖到某张卡之前(同列排序,浮动 sortOrder)
  • 任务编辑器:标题、描述、状态、优先级、标签、指派(用户 / Agent)、起止日期;归档 / 恢复 / 删除
  • 任务 ↔ 会话联动:卡片上的「开始对话 / 查看对话」按钮,关联并打开 DSH 会话
  • 面向模型的工具:taskboard_list / taskboard_create / taskboard_update / taskboard_archive,Agent 可直接管理看板
  • 本地存储:~/.dsh/taskboard/{projects.json, tasks.json},原子写(tmp + rename),无数据库

截图

任务看板

安装

前置条件

  • 已安装 DeepSeek Harness(Electron 桌面应用)
  • 目标 profile 存在(默认 web)

方式一:npm 安装(发布后推荐)

在目标 profile 目录内安装本包(写入该 profile 的 package.json 依赖):

cd ~/.dsh/profiles/web
npm install @xiuda-ai/dsh-taskboard-plugin

然后在 ~/.dsh/profiles/web/cordis.patch.yml 追加:

- insert:
    - id: taskboard
      name: "@xiuda-ai/dsh-taskboard-plugin"

重启 harness 加载宿主半区;刷新页面加载浏览器半区。

方式二:本地路径(开发 / 尚未发布)

把源码目录链接进 profile 的扁平 node_modules:

ln -sfn /path/to/dsh-taskboard-plugin ~/.dsh/profiles/node_modules/@xiuda-ai/dsh-taskboard-plugin

再按方式一追加 cordis.patch.yml 的 insert 行即可。

从源码构建

npm install
npm run build      # 产出 lib/index.js + lib/client.js
npm run dev        # 监听 src/ 自动重打包(改完刷新页面)

运行时依赖 @deepseek-ai/cordis / @deepseek-ai/dsh-tools / @deepseek-ai/dsh-home-paths 需能从本包解析。本地开发建议在包内建软链指向 profile 的已安装副本,保持与运行中的 harness 版本一致。

使用

重启后进入任意会话,会话头部右侧会出现「任务面板」胶囊按钮(与「Session log」按钮并排)。点击打开看板:

  • 「+ 新建任务」创建任务
  • 拖拽卡片跨列 / 排序
  • 卡片上的对话按钮:无关联会话时「开始对话」,有关联时「查看对话」

说明:入口按钮是会话级的,只在进入某个会话后显示;无会话的空白页看不到入口。

卸载

  1. 删除 ~/.dsh/profiles/web/cordis.patch.yml 中的:
- insert:
    - id: taskboard
      name: "@xiuda-ai/dsh-taskboard-plugin"
  1. 删除软链:
rm ~/.dsh/profiles/node_modules/@xiuda-ai/dsh-taskboard-plugin

数据目录 ~/.dsh/taskboard/ 默认保留;如需清空数据,删除该目录即可。

目录结构

dsh-taskboard-plugin/
├── package.json           # dsh.bundle(组合层)+ dsh.client(浏览器半区)
├── cordis.patch.yml       # 把宿主行插入组合的 patch
├── tsconfig.json
├── scripts/build.mjs      # esbuild 构建 host + client
├── src/
│   ├── index.ts           # Host 插件:存储 + /taskboard API + 模型工具
│   ├── taskboard-store.ts # 存储核心(JSON 原子写 / sortOrder / 乐观锁)
│   ├── types.ts           # 共享领域类型
│   └── client/            # 浏览器半区(React 看板)
│       ├── index.ts           # 客户端插件:Slot 注册(入口按钮 + 看板弹窗)
│       ├── BoardOverlay.tsx   # 看板主体(设置面板式弹窗)
│       ├── Column.tsx         # 看板列
│       ├── TaskCard.tsx       # 任务卡片
│       ├── TaskEditor.tsx     # 任务编辑器
│       ├── SidebarButton.tsx  # 会话头部「任务面板」入口
│       ├── labels.ts          # 状态 / 优先级 / 色调
│       ├── api.ts / store.ts  # 数据访问
│       └── board.css          # 样式
└── lib/                   # 构建产物(index.js + client.js)

数据存储

~/.dsh/taskboard/
├── projects.json   # 项目列表
└── tasks.json      # 任务列表(含 sessionId 关联、sortOrder、version 乐观锁)

HTTP API(浏览器半区内部使用)

POST /taskboard/api,body { "op": string, "args": object }:

| op | 说明 | | --- | --- | | state | 返回 { projects, tasks } 全量 | | listProjects / createProject | 项目列表 / 新建 | | listTasks / createTask / updateTask | 任务增改查 | | moveTask | 移动 / 排序(status + 可选 sortOrder) | | archiveTask / restoreTask / deleteTask | 归档 / 恢复 / 删除 |

业务错误返回 { ok:false, error:{ code, message } },code 可能为 VERSION_CONFLICT(乐观锁冲突)、PROJECT_NOT_FOUND、TASK_NOT_FOUND、INVALID_* 等。

与 Proma 的对应关系

| Proma | 本插件 | | --- | --- | | ~/.proma/ 多文件 JSON/JSONL | ~/.dsh/taskboard/ 两个 JSON 文件 | | taskboard-store.ts(浮动 sortOrder、乐观锁、续号) | src/taskboard-store.ts | | taskboard-constants.ts(状态 / 优先级 / 色调) | src/client/labels.ts | | TaskboardView / TaskCard / TaskEditor(Tailwind) | src/client/BoardOverlay.tsx 等(CSS 变量主题) | | main/ipc.ts TASKBOARD 通道 | /taskboard/api JSON 端点 | | Agent 任务联动 | 模型工具 taskboard_* |

局限

  • v1 精简掉了 Proma 的评论、活动时间线、任务关系、附件、重复任务、撤销栈(⌘Z)。
  • 同列拖拽用「插入到某张卡之前」的浮动 sortOrder,未做让位动画。
  • 客户端样式复用 DSH 主题 CSS 变量,未做独立主题。
  • 待立项(backlog)/ 已取消(canceled)状态仍保留在数据层,但当前 UI 不展示这两列。