把编码会话中的任务与进展自动同步到 Plane
27.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Bene-2020/plane-dsh-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 44 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/11) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 48 处,展示前 39 条)
- 读取密钥环境变量packages/plane/src/index.test.ts:117
apiKey: process.env.PLANE_API_KEY, - 读取密钥环境变量packages/plane/src/index.test.ts:122
process.env.PLANE_API_KEY = "test-only-key"; - 读取密钥环境变量packages/plane/src/index.test.ts:143
apiKey: process.env.PLANE_API_KEY, - 读取密钥环境变量packages/plane/src/index.test.ts:152
process.env.PLANE_API_KEY = "test-only-key"; - 读取密钥环境变量packages/plane/src/index.ts:577
const apiKey = process.env.PLANE_API_KEY; - 读取密钥环境变量packages/plane/src/sdk-compatibility.test.ts:266
process.env.PLANE_API_KEY = "fixture-only-key"; - 写入本地文件packages/plugin/src/context.test.ts:26
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/context.test.ts:30
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 写入本地文件packages/plugin/src/db.test.ts:15
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/db.test.ts:20
rmSync(tempDir, { recursive: true, force: true }); - 读取本地文件packages/plugin/src/db.test.ts:44
expect(existsSync(dbPath)).toBe(true); - 读取本地文件packages/plugin/src/db.test.ts:50
expect(existsSync(`${dbPath}-wal`)).toBe(false); - 读取本地文件packages/plugin/src/db.test.ts:51
expect(existsSync(`${dbPath}-shm`)).toBe(false); - 读取本地文件packages/plugin/src/db.test.ts:94
expect(existsSync(dbPath)).toBe(true); - 写入本地文件packages/plugin/src/db.ts:17
mkdirSync(dirname(dbPath), { recursive: true }); - 写入本地文件packages/plugin/src/hooks.test.ts:33
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/hooks.test.ts:37
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 写入本地文件packages/plugin/src/remote.test.ts:38
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/remote.test.ts:42
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 写入本地文件packages/plugin/src/tools.test.ts:14
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/tools.test.ts:83
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 删除本地文件递归packages/plugin/src/tools.test.ts:160
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 写入本地文件packages/plugin/src/worker.test.ts:28
mkdirSync(TMP_ROOT, { recursive: true }); - 删除本地文件递归packages/plugin/src/worker.test.ts:32
for (const dir of createdDirs.splice(0)) rmSync(dir, { recursive: true, force: true }); - 执行外部命令固定命令packages/storage/src/index.test.ts:13
execFileSync("git", args, { cwd, stdio: "ignore", env: { ...process.env, GIT_CONFIG_NOSYSTEM: "1" } }); - 写入本地文件packages/storage/src/index.test.ts:62
mkdirSync(child, { recursive: true }); - 写入本地文件packages/storage/src/index.test.ts:63
mkdirSync(sibling, { recursive: true }); - 删除本地文件递归packages/storage/src/index.test.ts:109
rmSync(directory, { recursive: true, force: true }); - 写入本地文件packages/storage/src/index.test.ts:119
mkdirSync(repo, { recursive: true }); - 写入本地文件packages/storage/src/index.test.ts:120
mkdirSync(join(repo, "src"), { recursive: true }); - 写入本地文件packages/storage/src/index.test.ts:121
writeFileSync(join(repo, "README.md"), "identity\n"); - 删除本地文件递归packages/storage/src/index.test.ts:152
rmSync(directory, { recursive: true, force: true }); - 写入本地文件packages/storage/src/index.test.ts:162
mkdirSync(nestedChild, { recursive: true }); - 删除本地文件递归packages/storage/src/index.test.ts:174
rmSync(directory, { recursive: true, force: true }); - 删除本地文件递归packages/storage/src/index.test.ts:199
rmSync(directory, { recursive: true, force: true }); - 删除本地文件递归packages/storage/src/index.test.ts:220
rmSync(directory, { recursive: true, force: true }); - 删除本地文件递归packages/storage/src/index.test.ts:311
first.close(); second.close(); rmSync(directory, { recursive: true, force: true }); - 执行外部命令固定命令packages/storage/src/index.test.ts:356
execFileSync("git", ["worktree", "add", "--detach", linked, "HEAD"], { cwd: repo, stdio: "ignore", env: gitEnvironment }); - 执行外部命令固定命令packages/storage/src/workspace-identity.ts:66
output = execFileSync("git", ["rev-parse", "--git-common-dir"], {
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-credentials@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- Plane驱动的项目管理
为 DeepSeek Harness(DSH)提供 Plane 驱动的项目管理。
README
由 DeepSeek 最新模型翻译生成plane-dsh-plugin
一个原生的 DeepSeek Harness(DSH) 插件,在不中断 Agent 主任务的前提下,把有项目价值的编码工作同步到 Plane。
插件会识别会话中的任务、Bug、决策、想法、风险、里程碑、计划、进展和完成事件,先可靠写入本地 SQLite Outbox,再异步同步到 Plane。DSH Web 中还会出现一个全局悬浮面板,用于查看项目状态和更新工作项。
[!NOTE]
当前是早期版本。存储与同步链路已经经过完整测试,但 DSH 的外部插件 API 仍在快速演进。
主要功能
- 一个安装包同时提供 DSH Cordis host 插件和浏览器 client 插件。
- 8 个用于项目发现、绑定、事件记录和审计的 Agent 工具。
- 带幂等、重试、租约和崩溃恢复能力的本地 SQLite Outbox。
- 后台异步同步 Plane,不阻塞当前 Agent 工作。
- 增量注入活跃工作项,避免每回合重复完整项目快照。
- Plane 风格悬浮面板,支持状态筛选、乐观更新和同步健康展示。
- 面向 DSH 全局悬浮层的手动项目切换器,支持同名项目区分和过期响应隔离。
- Plane API Key 通过 DSH credentials 读取,不写入插件数据库。
环境要求
- Node.js 22.19 或更高版本。
展开完整文档(README 剩余 1 节)
plane-dsh-plugin 一个原生的 DeepSeek Harness(DSH) 插件,在不中断 Agent 主任务的前提下,把有项目价值的编码工作同步到 Plane。 插件会识别会话中的任务、Bug、决策、想法、风险、里程碑、计划、进展和完成事件,先可靠写入本地 SQLite Outbox,再异步同步到 Plane。DSH Web 中还会出现一个全局悬浮面板,用于查看项目状态和更新工作项。 [!NOTE] 当前是早期版本。存储与同步链路已经经过完整测试,但 DSH 的外部插件 API 仍在快速演进。 主要功能 - 一个安装包同时提供 DSH Cordis host 插件和浏览器 client 插件。 - 8 个用于项目发现、绑定、事件记录和审计的 Agent 工具。 - 带幂等、重试、租约和崩溃恢复能力的本地 SQLite Outbox。 - 后台异步同步 Plane,不阻塞当前 Agent 工作。 - 增量注入活跃工作项,避免每回合重复完整项目快照。 - Plane 风格悬浮面板,支持状态筛选、乐观更新和同步健康展示。 - 面向 DSH 全局悬浮层的手动项目切换器,支持同名项目区分和过期响应隔离。 - Plane API Key 通过 DSH credentials 读取,不写入插件数据库。 环境要求 - Node.js 22.19 或更高版本。 - PATH 中可用的 pnpm,用于 DSH 插件管理。 - 支持外部 bundle、credentials、tools、client slots 和 Typert remote 的较新 @deepseek-ai/dsh 版本。 - 一个 Plane workspace 和 API Key。 安装 将预构建的 npm 包安装到 DSH Web profile: npx @deepseek-ai/dsh plugin --profile web add plane-dsh-plugin 该 npm 包已经包含 host 和浏览器 bundle。安装时不会构建本仓库,也不需要配置 allowBuilds。 从本地源码安装 仅在开发插件本身时使用这种方式: git clone https://github.com/Bene-2020/plane-dsh-plugin.git cd plane-dsh-plugin pnpm install --frozen-lockfile pnpm build npx @deepseek-ai/dsh plugin --profile web add . 配置 把 Plane Key 放入 DSH credentials,不要写进 cordis.patch.yml: $DSH_HOME/.credentials.yaml PLANE_API_KEY: "your-plane-api-key" 然后在 $DSH_HOME/profiles/web/cordis.patch.yml 覆盖插件配置,填入自己的 workspace slug: - id: plane-dsh-plugin config: workspaceSlug: your-workspace-slug planeBaseUrl: https://api.plane.so planeMode: sdk 使用同一个 profile 启动 DSH: npx @deepseek-ai/dsh web 当 Agent 首次进入尚未绑定的工作目录时,会询问要关联哪个 Plane 项目。DSH Web 中会出现悬浮按钮。全部配置项和排障方法见配置文档。 工作原理 flowchart LR A[DSH 会话事件] --> B[上下文与采集规则] B --> C[本地 SQLite Outbox] C --> D[后台同步 Worker] D --> E[Plane API] C --> F[Typert live RPC] F --> G[全局悬浮面板] 详细设计见架构文档。 开发 pnpm install --frozen-lockfile pnpm test pnpm run test:coverage pnpm test 会构建 workspace 和公开 bundle、检查打包产物契约,并运行完整测试。Client 代码要求语句、分支、函数和行覆盖率全部达到 100%。 隐私与安全 - 插件不保存源码、终端输出或完整对话记录。 - Plane API Key 每次操作时从 DSH credentials 获取。 - 项目元数据和 Outbox 默认保存在 ~/.dsh/plugins/ambient-project/ambient.sqlite。 - 报告安全问题前请阅读 SECURITY.md。 参与贡献 欢迎提交贡献。发起 Pull Request 前请阅读 CONTRIBUTING.md 和行为准则。 许可证 MIT © 2026 Wenyan Wei。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Bene-2020/plane-dsh-plugin
把编码会话中的任务与进展自动同步到 Plane
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9