按工作区(项目)隔离的项目看板:9 个 kanban_* 模型工具供 Agent 规划时写卡,另带浏览器看板 UI,支持磁盘持久化、撤销、模板与归档。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-project-kanban
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:StruggleYang/dsh-project-kanban
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
在 DeepSeek Harness 中把「项目看板」变成对话的一部分:Agent 通过 kanban_* 工具在规划时直接写卡,按工作区(项目)隔离,磁盘持久化。
这是一个官方 bundle 格式的插件包(dsh.bundle 声明 + cordis.patch.yml 补丁层),通过官方 dsh plugin 流程安装。
功能
- Agent 对话联动:9 个模型工具
kanban_get / kanban_add_card / kanban_update_card / kanban_delete_card / kanban_move_card / kanban_add_column / kanban_rename_column / kanban_delete_column——做复杂项目功能拆解与规划时由 Agent 直接调用写卡 - 按工作区(项目)隔离:每个工作区一块独立看板——新开工作区看到的是自己的空板,互不串扰;Agent 工具按当前会话所属工作区自动定位目标看板
- 磁盘持久化:每次改动自动写入
kanban-board-<workspaceId>.json(位于sandboxPolicy.workspaceRoot),刷新页面与重启进程不丢数据 - 浏览器看板 UI:安装即得「看板」标签页(卡片拖拽、增删改),无需额外安装
- 标签与颜色:功能(蓝)/ 缺陷(红)/ 文档(绿)/ 优化(橙),添加或编辑卡片时选择;Agent 工具的
label参数同样支持 - 优先级:高 / 中 / 低,卡片左侧色条标识(红 / 橙 / 蓝)
- 自定义卡片颜色:任意 #rrggbb 背景色(编辑表单取色器)
- 列内排序与复制:卡片 ↑ / ↓ 按钮(或
toIndex参数)调整列内顺序;一键复制卡片(含标签/优先级/颜色) - 筛选与搜索:顶部按关键词 / 标签 / 优先级过滤
- 截止日期:YYYY-MM-DD,逾期自动红色标记
- 回收站:删除为软删除,可恢复或彻底删除
- 批量操作:多选卡片批量移动 / 设标签 / 删除
- 统计条:总数 / 标签 / 优先级 / 逾期分布
- 拖拽列内排序:拖到目标卡片位置即插入
- 看板模板:默认 / 开发 / 内容预设(只增列不破坏数据)
- 撤销:所有写操作可撤销(50 步)
- 跨工作区移动:卡片一键移到其他项目的看板
- 会话引用:Agent 创建的卡片记录来源会话,可点击跳转
测试
无 key 端到端验证(不需要 DEEPSEEK_API_KEY):创建临时 profile → 安装本地包 → boot web 组合 → 断言工具 schema 与 HTTP 全流程。
bash scripts/verify.sh
安装(官方推荐方式)
前置要求
- 已安装
dshCLI(npx @deepseek-ai/dsh或源码运行pnpm dsh) - 选择目标 profile(
web是浏览器界面默认 profile;自定义 profile 用自己的名字)
方式一:从 GitHub 安装(推荐)
dsh plugin --profile web add github:StruggleYang/dsh-project-kanban
pnpm ≥ 10 会拒绝执行 git 依赖的 prepare 脚本,第一次 add 会失败。 按提示把 pnpm 打印的包键写入 profile 的 pnpm-workspace.yaml(位于 $DSH_HOME/profiles/web/pnpm-workspace.yaml):
allowBuilds:
dsh-project-kanban: true
然后重新执行 add 即可。
⚠️ 安全说明:
allowBuilds等于允许该包在安装时于你机器上执行代码(在 Agent 沙箱之外)。只允许你信任的源码,并建议锁定 commit:dsh plugin --profile web add github:StruggleYang/dsh-project-kanban#<commit-sha>
方式二:从本地 checkout 安装
git clone https://github.com/StruggleYang/dsh-project-kanban.git
dsh plugin --profile web add ./dsh-project-kanban
方式三:tarball / npm(构建产物,无需任何构建许可)
tarball 可从 GitHub Release 下载(https://github.com/StruggleYang/dsh-project-kanban/releases/latest),或本地生成:
pnpm pack # 在仓库目录生成 dsh-project-kanban-0.1.0.tgz
dsh plugin --profile web add ./dsh-project-kanban-0.1.0.tgz
发布到 npm 后用户直接安装:
dsh plugin --profile web add dsh-project-kanban
验证与启用
dsh --profile web --dump-config # 输出末尾应出现 "# == dsh-project-kanban" 层
然后重启 dsh web(bundle 行在启动时装载,运行中的实例不会热加载)。启动后 Agent 的工具集里就有 8 个 kanban_* 工具,对它说"把 X 项目的功能拆解写入看板"即可。
卸载
dsh plugin --profile web remove dsh-project-kanban
同时移除依赖和组合层;数据文件 kanban-board-*.json 保留在磁盘上。
工作原理
- 本包是一个 bundle(npm 包 + 配置层):
package.json声明dsh.bundle.patch,安装时dsh把它追加进 profile 的dsh.profile.bundles列表(@deepseek-ai/dsh-base之后) cordis.patch.yml向组合插入一行dsh-project-kanban,Loader 按包名从 profile 的node_modules解析index.js是标准 Cordis 函数插件(export const name/export const inject/export function apply),经ctx.tools.register注册 8 个工具- 工具执行时经
exec.agent.session.header.cwd→ctx.workspaceRegistry.resolveByPath反查当前工作区,写进对应项目的看板 - 层顺序:
@deepseek-ai/dsh-base→ 本 bundle → profile 自己的cordis.patch.yml→ 用户--patch覆盖;后面的层按行 id 覆盖前面的层
Agent 工具一览
| 工具 | 用途 |
|---|---|
kanban_get |
读取当前项目看板状态(规划前先看,避免重复建卡) |
kanban_add_card |
添加卡片(拆解任务 → 写一张卡,可带 label 标签) |
kanban_update_card |
更新卡片标题 / 备注 / 标签 |
kanban_delete_card |
删除卡片 |
kanban_move_card |
移动卡片(跨列,或 toIndex 列内重排) |
kanban_add_column |
添加列表(新工作流阶段) |
kanban_rename_column |
重命名列表 |
kanban_duplicate_card |
复制卡片(含标签/优先级/颜色) |
kanban_delete_column |
删除列表(卡片并入第一个列表) |
动态插件版(历史参考)
0.2.0 起 bundle 已内置浏览器 UI,动态插件版(src/host.js / src/client.js,通过 cordis_define 激活)仅作为动态加载场景的参考实现保留。
文件结构
dsh-project-kanban/
├── package.json # bundle manifest(dsh.bundle 声明)
├── cordis.patch.yml # 补丁层:插入看板插件行
├── index.js # 宿主插件(8 个工具 + /api/kanban 数据层)
├── lib/client.js # 浏览器端 bundle(看板 UI,官方 client-modules 格式)
├── src/host.js # 动态插件版宿主端(历史参考)
├── src/client.js # 动态插件版浏览器端(历史参考)
├── README.md
├── TWEET.md
└── LICENSE
License
MIT © 2026 StruggleYang
链接
同类插件
superdesigndev/treg★ 425
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
Lum1104/dsh-browser★ 194
Chrome 侧边栏扩展,让 DSH 直接操控你的浏览器,无需视觉能力。
zhaoolee/notes★ 142
将 DSH 对话导出为锤子便签风格 PNG,或在配置的账号工作区中新建和更新 Markdown 便签。
liustack/modsearch★ 110
纯文本 agent 的联网搜索桥:搜索网页与 X,返回结构化 JSON 证据(search/fetch/引用)。
taxueseek/argo★ 90
专为 agent 打造的搜索工具:多语言,覆盖中文/英文/学术/代码/购物/金融/新闻/百科。
Vladimir-Human/ru-marketplace-mcp#dsh★ 63
面向俄罗斯十家电商平台的技能与可选 MCP 行:跨 Wildberries、Detsky Mir、Yandex Market 比价,以及各平台的搜索、商品卡与评论。安装后 13 个技能立即可用;两行 MCP 默认关闭,需将 RU_MARKETPLACE_MCP_DIR 指向本地克隆,该克隆需要 Python 3.12+ 与 uv。