Introduction¶
When running daily tasks on DSH Web, I encountered a specific problem: some tasks need to be executed almost every day, but at irregular times—like browsing tech news, checking GitHub trending, or reviewing draft releases. Manually typing a long prompt into the input box every time is repetitive and prone to distraction. Using a task board for this kind of thing is overkill: it involves state machines, cron, execution logs, etc., which is overkill for a “click-and-send” action.
dsh-sticker-board solves this problem: it turns common tasks into “refrigerator magnets” that dock above the input box. Clicking them sends the preset prompt to the current session and executes it immediately. Below is an introduction in the order of positioning, features, installation, usage, and principles.
What is this¶
dsh-sticker-board is a sticker system for DeepSeek Harness (DSH) Web, maintained by sanqiPanax, licensed under MIT. Its positioning is a lightweight, quick command bar: stickers are grouped into Long-term / Short-term categories; clicking any sticker automatically sends the preset prompt into the current session, and the AI starts executing immediately.
Core Features¶
- The sticker bar docks above the input box. Clicking a sticker sends the preset prompt to the current session in queue mode, without interrupting a running turn.
- Stickers are managed in two groups: Long-term and Short-term, separating high-frequency tasks from temporary ones.
- Supports adding, editing, and deleting: hovering over a sticker shows the ✏️ / 🗑 buttons; changes take effect immediately and persist, with a confirmation dialog for deletion.
- On first start, 8 preset stickers are automatically written to
~/.dsh/sticker-board.json, which can be directly added, edited, or deleted. - The Host provides a zero-dependency REST API, JSON file persistence, and serializes writes via a single promise chain to prevent corruption from concurrent edits.
- The Client side is a React component that registers the official
conversation.input.dockslot (the full-width bar above the composer card). - It only reads and writes local JSON files and does not upload any data.
Installation and Enablement¶
Install from GitHub:
dsh plugin --profile web add github:sanqiPanax/dsh-sticker-board
If you already have a local package file, you can also install the tgz:
dsh plugin --profile web add ./dsh-sticker-board-0.1.1.tgz
After installation, restart dsh web and force refresh once in the browser with Ctrl+F5. It is active when the sticker bar appears above the input box. On first start, the plugin automatically writes the 8 preset stickers to ~/.dsh/sticker-board.json.
Typical Usage¶
First, the most basic action—click to execute: click any sticker, and the preset prompt is sent to the current session in queue mode, and the AI starts working immediately. If there is a turn running in the current session, messages will queue up waiting for it to finish, without interruption.
Then, add your own stickers:
- Click the “Plus (+)” button on the far right of the sticker bar;
- Fill in the icon (emoji), name, group (Long-term / Short-term), and task prompt (the task description sent to the AI after clicking);
- Click “Save”, and the new sticker appears immediately in the corresponding group.
Editing and deleting: move the mouse over the sticker to see the ✏️ edit and 🗑 delete buttons; deletion has a confirmation dialog to prevent accidental clicks.
The 8 preset stickers included on first start are as follows:
| Group | Sticker | Usage |
|---|---|---|
| Long-term | 📰 24h Tech News | Brief of important tech news in Chinese over the past 24 hours (AI/Chip/Internet/Game/Hardware) |
| Long-term | ⭐ Recommended GitHub Projects | 5 GitHub projects worth following and highlights |
| Long-term | 📅 GitHub Weekly Report Material | Weekly report material collection (iron rule evaluation for accompanying images) |
| Long-term | ✅ Today’s Review | Completed / In Progress / To-Do Review |
| Short-term | 📝 Xiaoheihe Draft Check | Table to PNG / disable links / md2docx / check_draft.py item-by-item check |
| Short-term | 📣 Official Account Publishing Check | Check author / title / image placeholder / table rendering / publishing time item-by-item |
| Short-term | 🐦 X Platform Speech Collection | CDP screenshot collection of relevant parties’ speech |
| Short-term | 🖼️ Image Recognition | Recognize the content and text of the sent image |
These preset prompts are drafts based on common workflows; just use ✏️ to change them to your own.
How it Works¶
The Host is implemented in lib/index.js, with zero dependencies. It provides a REST API for sticker CRUD and JSON file persistence, and automatically writes preset sticker seeds on first run:
GET /api/sticker-board/health— Health probe (returns plugin version and sticker count, verifies the plugin is loaded)GET /api/sticker-board/stickers— All stickersPOST /api/sticker-board/stickers— CreatePUT /api/sticker-board/stickers/:id— UpdateDELETE /api/sticker-board/stickers/:id— Delete
Data is stored in ~/.dsh/sticker-board.json, and all writes are serialized via a single promise chain to prevent corruption from concurrent edits.
The Client side is implemented in lib/client.js. The React component registers the official conversation.input.dock slot—this is the full-width bar above the composer card, the same seat as the official goal plugin. When a sticker is clicked, it is sent via ctx.conversation.sendSession(session, prompt, [], 'queue'), entering the current session via the same host admission path as manual input.
Suitable Scenarios and Notes¶
Who is it for? People with a batch of fixed tasks that need to run daily but do not require scheduled scheduling (cron). If you need state machines, cron scheduling, or execution records, dsh-task-board (Task Board) is more suitable; this plugin is a lightweight, quick command without these capabilities, and the two can coexist.
A few notes:
- Sticker prompts go through normal queued messages. If you need to interrupt a running turn, please use Interruption / Steer from the input box.
- The plugin runs with the permissions of the current dsh process. It is recommended to check the source code and license in the repository before installing (this project is MIT).
- The plugin only reads and writes local JSON files and does not upload any data.
If you want to modify the code and package it yourself: remember to bump the version number in package.json and then execute npm pack, because pnpm caches tgz files with the same version number.
Conclusion¶
Following the steps above, common tasks have changed from “manually typing a long prompt every time” to “just clicking above the input box”. It does not pursue task orchestration capabilities; it only achieves zero cost for the highest-frequency step, with a clear positioning that complements the task board.
The plugin is included in the community plugin directory: https://www.skillhub.cn/plugins/sanqiPanax/dsh-sticker-board. See source code and README on GitHub: https://github.com/sanqiPanax/dsh-sticker-board.