dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
专门用于DSH的人类注意力聚合插件 | 此插件完全由ai开发(人类仅提供想法,未写代码)
给 DSH 用的全局置顶计划看板:跨会话防失忆 · 灵感收件箱 · AI 整理 · 一键注入待办。 当前版本:
0.0.3(公测版) · 仓库:https://github.com/ives-jz/dsh-plugin-omni-plan
同时开多个 DSH 窗口、多个 Agent 时,切回来最容易忘记「刚才做到哪、下一步该干嘛」。Omni Plan 把一份所有会话共享的计划板放到最上层,并让所有 DSH 会话、Claude、Cursor 等 MCP 客户端读写同一份本地数据。
WS_EX_TOPMOST),可以盖住浏览器、IDE、全屏软件,不进任务栏、不进 Alt+Tab。snapshot / change / reminder / warning,多个窗口、多个进程共享同一份状态。DSH 侧边栏 → 插件市场 → 搜索 Omni Plan → 安装
或:
# 插件市场 / Web profile(市场收录命令)
dsh plugin --profile web add dsh-plugin-omni-plan
# 桌面版 profile(本机实际使用的 profile 名以你的环境为准)
dsh plugin --profile desktop add dsh-plugin-omni-plan
dsh plugin --profile desktop add link:A:\AI\DSH\dsh-plugin-omni-plan
安装或更新后:
lib/client.js)→ 刷新一次 DSH Web GUI 即可;lib/host.js 等)或原生窗口(lib/OmniPlanTopmost.exe)→ 完全退出并重新启动 DSH。打开置顶窗口后,看板默认出现在屏幕右上角;窗口可拖拽、折叠、切主题。
| 按钮 | 作用 |
|---|---|
| 整理 Omni Plan | 打开整理窗口:勾选任务直接注入当前会话待办,也可把灵感转任务、新建任务后一起注入 |
| AI总结 | 复制一段提示词。发给任意 AI,AI 会按指定格式回复;复制回来点「导入」即可解析成任务或灵感 |
| 导入 | 解析剪贴板里 AI 回复的代码块,批量生成任务 / 灵感 |
每条焦点 / 任务 / 灵感都有:复制 · 编辑 · 删除 · 注入对话。 「注入对话」只注入当前这一条,不会带上其他任务。
记录 → 整理 → 注入 → 完成
灵感/想法 AI 读看板并补全 写入当前会话待办 勾选完成 / AI 标记
进收件箱 成可执行任务 按优先级排序并保活 自动从待办移除
装好后,所有 DSH 会话自动获得 7 个工具:
| 工具 | 作用 |
|---|---|
plan_get_overview | 读取完整看板:焦点、任务、收件箱、summary |
plan_upsert_context | 新增 / 更新焦点锚点 |
plan_manage_task | add / update / complete / delete 任务 |
plan_capture_idea | 快速写入收件箱 |
plan_apply_organization | 把 AI 整理结果写回看板 |
plan_push_to_dsh_todos | 把看板任务注入当前会话待办(可按 itemIds 选择、按优先级排序) |
plan_get_dsh_todos | 读取当前会话待办(新一轮重置后也能读回最近一次注入) |
在任意 DSH 会话里直接说:
帮我整理 Omni Plan 里的所有内容
AI 会先 plan_get_overview 读看板,再 plan_apply_organization 写回;需要时自动同步到当前会话待办。
node "<插件目录>\lib\mcp-stdio.js" --data-dir "%USERPROFILE%\.dsh\omni-plan"
配置示例(claude_desktop_config.json / .cursor/mcp.json):
{
"mcpServers": {
"omni-plan": {
"command": "node",
"args": [
"<插件目录>\\lib\\mcp-stdio.js",
"--data-dir",
"C:\\Users\\<you>\\.dsh\\omni-plan"
]
}
}
}
DSH Web GUI 运行时:
http://127.0.0.1:<DSH端口>/omni-plan/mcp
如 cordis.patch.yml 配了 mcpToken,请求需带 Authorization: Bearer <token>。
GET /omni-plan/mcp/sse
POST /omni-plan/mcp/messages?sessionId=<id>
GET /omni-plan/health
GET /omni-plan/state
GET /omni-plan/events # SSE
POST /omni-plan/contexts
PATCH /omni-plan/contexts/:id
DELETE /omni-plan/contexts/:id
POST /omni-plan/tasks
PATCH /omni-plan/tasks/:id
DELETE /omni-plan/tasks/:id
POST /omni-plan/tasks/:id/complete
POST /omni-plan/inbox
POST /omni-plan/inbox/:id/promote
DELETE /omni-plan/inbox/:id
POST /omni-plan/integrations/organize # AI 整理
POST /omni-plan/integrations/dsh-todos/push # 注入会话待办
POST /omni-plan/mcp # MCP Streamable HTTP
GET /omni-plan/mcp/sse # MCP legacy SSE
POST /omni-plan/mcp/messages # MCP legacy POST
GET /omni-plan/topmost # 原生置顶窗口状态
POST /omni-plan/topmost # 打开
POST /omni-plan/topmost/close # 关闭
SSE 事件:snapshot(连接时全量)、change(增量 + revision)、reminder(到期提醒)、warning(存储告警)。
~/.dsh/omni-plan/state.json,不上传任何服务器;state.json.lock 排他锁 + 临时文件原子替换,损坏时自动备份重建;mcpToken 加 Bearer 校验。cordis.patch.yml:
- insert:
- id: omni-plan
name: dsh-plugin-omni-plan
config:
dataDir: '' # 空 = ~/.dsh/omni-plan
pollIntervalMs: 500
sseHeartbeatMs: 15000
reminderPollMs: 5000
mcpHttp: true
# mcpToken: 'optional-shared-secret'
# trustedHosts: 'localhost:13304,127.0.0.1:13304'
| 字段 | 默认 | 说明 |
|---|---|---|
dataDir | '' | 数据目录,空字符串用默认路径 |
pollIntervalMs | 500 | fs.watch 失败时的轮询兜底 |
sseHeartbeatMs | 15000 | SSE 心跳间隔 |
reminderPollMs | 5000 | 提醒扫描间隔 |
mcpHttp | true | 是否暴露 HTTP/SSE MCP |
mcpToken | 空 | 可选 Bearer token |
trustedHosts | 空 | 额外信任的 Host authority |
Windows 下,插件启动独立 WPF 进程 OmniPlanTopmost.exe:
Topmost=true + WS_EX_TOOLWINDOW:覆盖其他窗口、不进任务栏、不进 Alt+Tab;state.json;~/.dsh/omni-plan/topmost.log。非 Windows 或原生启动不可用时,回退到 Document Picture-in-Picture / popup。
# 语法检查
node --check lib\host.js
node --check lib\client.js
node --check lib\store.js
node --check lib\mcp-stdio.js
# 重新编译原生窗口(Windows)
$ref = 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2'
& 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe' /nologo /target:winexe `
/out:'lib\OmniPlanTopmost.exe' `
"/r:$ref\PresentationFramework.dll" "/r:$ref\PresentationCore.dll" `
"/r:$ref\WindowsBase.dll" "/r:$ref\System.Xaml.dll" `
'lib\OmniPlanTopmost.cs'
# 本地安装
dsh plugin --profile desktop add link:<插件目录>
npm pack --dry-run # 确认只打包 lib/、locale/、icon.svg、cordis.patch.yml、README.md、LICENSE
npm publish --access public --tag latest
发布后把 GitHub 仓库提交到 DSH Plugin Hub 收录入口(仓库需公开并添加 dsh-plugin topic)。
MIT