dsh-sticker-board:把常用任务做成 DSH Web 输入框上方的冰箱贴

前言

用 DSH Web 跑日常任务时会遇到一个具体问题:有些任务几乎天天要执行,但时间不定——刷科技新闻、看 GitHub 热门、检查发布草稿。每次都要往输入框手敲一大段 prompt,重复且容易走神。用任务看板来做这类事又偏重:状态机、cron、执行记录,对一个「点一下就发」的动作来说是杀鸡用牛刀。

dsh-sticker-board 解决的就是这个问题:把常用任务做成一张张「冰箱贴」,停靠在输入框正上方,点击即向当前会话发送预置 prompt 并执行。下面按定位、功能、安装、用法、原理的顺序介绍。

这是什么

dsh-sticker-board 是面向 DeepSeek Harness(DSH)Web 的冰箱贴纸系统,由 sanqiPanax 维护,许可证为 MIT。它的定位是轻量快捷命令栏:贴纸按长期 / 短期分组,点击任意贴纸,预置的 prompt 就自动发进当前会话,AI 立即开始执行。

核心功能

  • 贴纸栏停靠在输入框正上方,点击贴纸即以排队模式向当前会话发送预置 prompt,不打断正在运行的 turn。
  • 贴纸按长期 / 短期两组管理,高频任务和临时任务分开摆放。
  • 支持新增、编辑、删除:鼠标悬停在贴纸上出现 ✏️ / 🗑 按钮,改动立即生效并持久化,删除有确认框。
  • 首次启动自动写入 8 张预置贴纸到 ~/.dsh/sticker-board.json,可直接增删改。
  • Host 端提供零依赖 REST API,JSON 文件持久化,写入经单条 promise 链串行化,并发编辑不会损坏文件。
  • Client 端为 React 组件,注册官方 conversation.input.dock 槽位(composer 卡片上方的全宽条)。
  • 只读写本地 JSON,不上传任何数据。

安装与启用

从 GitHub 安装:

dsh plugin --profile web add github:sanqiPanax/dsh-sticker-board

如果已有本地打包文件,也可以装 tgz:

dsh plugin --profile web add ./dsh-sticker-board-0.1.1.tgz

安装后重启 dsh web,并在浏览器按 Ctrl+F5 强制刷新一次,输入框上方出现贴纸栏即生效。首次启动时插件会自动把 8 张预置贴纸写入 ~/.dsh/sticker-board.json

典型用法

先做最基本的动作——点击执行:点任意贴纸,预置 prompt 以排队模式发进当前会话,AI 立即开始干活。当前会话有 turn 在跑时,消息会排队等它结束,不会打断。

再新增自己的贴纸:

  1. 点贴纸栏最右侧的「+」按钮;
  2. 填写图标(emoji)、名称、分组(长期 / 短期)、任务 prompt(点击后发给 AI 的任务描述);
  3. 点「保存」,新贴纸立刻出现在对应分组。

编辑和删除:鼠标移到贴纸上,出现 ✏️ 编辑和 🗑 删除按钮,删除有确认框防误触。

首次启动自带的 8 张预置贴纸如下:

分组 贴纸 用途
长期 📰 24小时科技新闻 过去 24h 重要科技新闻中文简报(AI/芯片/互联网/游戏/硬件)
长期 ⭐ 推荐GitHub项目 5 个值得关注的 GitHub 项目及亮点
长期 📅 GitHub周报素材 本周周报素材收集(配图铁律评估)
长期 ✅ 今日复盘 已完成 / 进行中 / 待办复盘
短期 📝 小黑盒草稿检查 表格转PNG / 禁链接 / md2docx / check_draft.py 逐项检查
短期 📣 公众号发布检查 author / 标题 / 图片占位 / 表格渲染 / 发布时段逐项检查
短期 🐦 X平台发言收集 CDP 截图收集相关方发言
短期 🖼️ 图片识别 识别发送图片的内容与文字

这些预置 prompt 是按常见工作流拟的草稿,直接用 ✏️ 改成自己的即可。

工作原理

Host 端在 lib/index.js 中实现,零依赖,提供贴纸 CRUD 的 REST API 和 JSON 文件持久化,首次运行自动写入预置贴纸种子:

  • GET /api/sticker-board/health — 安装探针(返回插件版本与贴纸数,验证插件已加载)
  • GET /api/sticker-board/stickers — 全部贴纸
  • POST /api/sticker-board/stickers — 新增
  • PUT /api/sticker-board/stickers/:id — 更新
  • DELETE /api/sticker-board/stickers/:id — 删除

数据存放在 ~/.dsh/sticker-board.json,所有写入经过单条 promise 链串行化,并发编辑不会损坏文件。

Client 端在 lib/client.js 中实现,React 组件注册官方 conversation.input.dock 槽位——这是 composer 卡片上方的全宽条,与官方 goal 插件同款座位。点击贴纸时通过 ctx.conversation.sendSession(session, prompt, [], 'queue') 发送,走与手动输入相同的宿主准入路径进入当前会话。

适用场景与注意

适合谁:有一批每天都要跑、但不需要定时调度的固定任务的人。如果需要状态机、cron 定时、执行记录,用 dsh-task-board(任务看板)更合适;本插件是轻量快捷命令,没有这些能力,两者可以共存。

几点注意:

  • 贴纸 prompt 走的是普通排队消息。如果需要打断正在运行的 turn,请用输入框的插话 / steer。
  • 插件以当前 dsh 进程的权限运行,安装前建议先到仓库查看源码与许可证(本项目为 MIT)确认可信。
  • 插件只读写本地 JSON 文件,不上传任何数据。

如果你要自己改代码再打包:修改后记得 bump package.json 版本号再执行 npm pack,因为 pnpm 对同版本号的 tgz 有缓存。

结尾

经过上面的步骤,常用任务就从「每次手敲一大段 prompt」变成「输入框上方点一下」。它不追求任务编排能力,只把最高频的那一步做到零成本,定位清晰,与任务看板互补。

插件收录于社区插件目录:https://www.skillhub.cn/plugins/sanqiPanax/dsh-sticker-board ,源码与 README 见 GitHub:https://github.com/sanqiPanax/dsh-sticker-board 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye