DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Task Launcher — DeepSeek Harness 插件(DSH Plugin)
← Plugins
T

dsh-task-launcher

Task Launcher

在会话标题下的页签行(「会话文件」左侧)加一个「任务」入口:下拉自动列出所有启用的定时任务,点一条先弹确认,确认后把该任务的提醒原文投进当前会话立即执行;另有一条内置兜底项「未缴费清单」。纯客户端插件(宿主半边故意为空),只读,不改核心、不碰台账文件。 | A Tasks entry in the session tab row (left of Session files): the menu lists every active scheduled task, asks for confirmation, then posts that task's own reminder text i

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:jackylong1987/dsh-task-launcher#95b7f7f7df9891e9d51b142827a9981f3b88a3e2
README兼容性版本

说明

在会话标题下的页签行(「会话文件」左侧)加一个「任务」入口:下拉自动列出所有启用的定时任务,点一条先弹确认,确认后把该任务的提醒原文投进当前会话立即执行;另有一条内置兜底项「未缴费清单」。纯客户端插件(宿主半边故意为空),只读,不改核心、不碰台账文件。 | A Tasks entry in the session tab row (left of Session files): the menu lists every active scheduled task, asks for confirmation, then posts that task's own reminder text into the current session; one built-in fallback entry for the unpaid-fee list.

兼容性与来源证明

Task Launcher 以 dsh-task-launcher 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/15

版本

0.1.0stable
2026/10/15

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/15
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-task-launcher

给 DSH(DeepSeek Harness)Web GUI 加一个**「任务」入口**:落在会话标题下面那行页签里 (位置=「会话文件」标签的左边,图标 IconChecklistOutlineRegular + 文字「任务」)。

  • 点一下弹出下拉,自动列出所有 status === 'active' 的定时任务(title + 下次执行时间)。
  • 点某条任务 ⇒ 先弹确认框(写清任务名 + "将在当前会话立即执行" + 当前会话标题); 确认后才把该任务自己的 prompt 原文当成用户消息投进当前会话。
  • 以后用户新建任何启用任务,都会自动出现在下拉里,零代码改动。
  • 下拉里另有一条内置兜底项「未缴费清单(缴费台账)」走原来的硬编码文本, 作为读不到定时任务时的兜底(两组之间有小标题分隔)。
  • 纯客户端插件:宿主半边(lib/index.js)故意是空的,不注册路由、不读文件、不落盘。
  • 不改核心:DSH 自带包一个字节都没动;不碰台账文件。

落点(关键:为什么走 DOM 注入)

项值
落点会话页签行 div[role=tablist][data-conversation-tabs](核心 dsh-client-ui-conversation 渲染)
位置「会话文件」按钮(#dsh-long-session-files-btn)紧左边;它不在时退回「轨迹」右边
会话 id从宿主写在正文容器上的 [data-conversation-session] 现取
图标@deepseek-ai/dsh-client-ui-primitives 的 IconChecklistOutlineRegular,size: 16(与旁边页签口径一致)
组件createTaskMenuView(host) —— 与 slot 无关,只依赖 host 注入的读/投递/会话能力

核心没有"往那行塞一个按钮"的 slot(conversation.view 是 list 型页签,但登记进去=把会话正文 整体换成那个视图,不是"加一个入口")。而「会话文件」本身就是第三方插件 dsh-long-plugins 用 DOM 注入放进去的,所以本插件沿用同一机制:

  • 注入节点 #dsh-task-launcher-task-tab,MutationObserver 保证被宿主重渲染抹掉后能补回;
  • React 树用 reactDom.createPortal 渲染进注入节点(事件照常工作,宿主重渲染抹不掉 React 树);
  • 外观不硬凑 padding:从旁边真实页签读 fontSize/fontWeight/lineHeight/letterSpacing/fontFamily/color 同步过来;垂直位置由 CSS 的 align-self:flex-start + padding:0 0 9px 保证 (页签容器是 display:flex 且没有 align-items ⇒ 默认 stretch;不写 align-self 会被拉满整行高 再被 align-items:center 居中,就会偏高约半行——这是用户实测到的偏移,已修)。

数据来源(两个远程都读,取并集)

远程作用返回
ctx.remote.schedule.catalog()全局任务表(所有会话)Result<ScheduleCatalogEntry[]>,含 status / sessionId
ctx.remote.schedule.list({ sessionId })该会话的任务Result<ScheduleRecord[]>

为什么必须两个都读:宿主 list 的实现是 task.sessionId === request.sessionId && task.status === 'active'(严格相等,见 dsh-schedule/lib/index.js 的 async list)。客户端解析出来的 sessionId 只要与任务绑定的那个 不完全一致(换过会话、子会话、DOM 上读到别的会话),list 就返回空数组——而任务其实在 catalog 里。只读 list 的结果就是用户看到的那句误导文案「还没有自动化任务」(已修)。

两条支路各自回收成败,视图层区分:

  • 任一支路读失败 ⇒ 显示 任务读取失败:<code>(内置兜底项仍可用);
  • 两支路都成功且确实没有 ⇒ 才显示「还没有自动化任务」。

关键字段(@deepseek-ai/dsh-schedule 的 lib/types/types.d.ts):id / kind / title / prompt (ScheduleRecord)+ sessionId / status / lastDelivery?(ScheduleCatalogEntry)+ Record 永远有的 scheduledAt。

投递请求

ctx.remote.session.prompt({
  requestId: <客户端造的 UUID v4 字符串>,   // SessionRequestId = Branded<'session-request-id'>
  sessionId: <当前会话 id>,
  mode: 'queue',                            // 'queue' 不打断;'steer' 抢插队(改 client.js 的 MODE)
  content: [{ type: 'text', text: <该任务的 prompt 原文> }],
  clientTimeZone: 'Asia/Shanghai',
})

返回是 Result 信封 { ok: true, value: { accepted: true } } / { ok: false, error } —— 按 .ok 判。

安装

# 1) profile 依赖里加 link:
#    $DSH_HOME/profiles/web/package.json
#    dependencies["dsh-task-launcher"] = "link:<插件所在目录>"
cd "$DSH_HOME/profiles/web" && pnpm install

# 2) 再把 "dsh-task-launcher" 加进 dsh.profile.bundles
#    (分两步是刻意的:先有 symlink、再改 bundles)

让用户看到

刷新浏览器页面(Ctrl/Cmd-R 或 F5)。不需要重启 dsh web。

自检(离线,桩 React / 桩 primitives / 桩 DOM / 桩 ctx)

node <工作区>/plugin-lab/_verify/verify.mjs
# 期望:通过 N / 失败 0

回滚

cd "$DSH_HOME/profiles/web"
cp -p package.json.bak-tasks-<时间戳> package.json
pnpm install          # HMR 会把插件行摘掉

只想临时停用:把插件 client/client.js 的 SLOT_BINDINGS 置成 [](改完刷新页面即生效)。

许可

MIT。

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。