dsh-plugins
August 24, 2026 · View on GitHub
Community client-UI plugins for DeepSeek Harness (dsh) — 社区开发的 DeepSeek Harness 客户端 UI 插件。
中文
五个即装即用的 Web UI 插件。当前从 GitHub 源码安装(npm 包稍后发布):
git clone https://github.com/Horizon215/dsh-plugins.git
cd dsh-plugins
pnpm install && pnpm build
dsh plugin --profile web add file:./packages/prompt-templates file:./packages/token-stats file:./packages/quest-mascot file:./packages/previously-on file:./packages/mode-switcher
装完重启 dsh web 即可(插件声明了 dsh.bundle,会自动装配进 profile,无需手动改配置)。
🐳 dsh-quest-mascot —— 打工鲸伙伴

- 四套皮肤同一只鲸:标准=经典鲸 / PTC=极客鲸 / 极简=素素鲸 / 创造=星光鲸,跟随会话模式自动换装;右键可手动钉皮肤或恢复跟随
- 摸头杀:单击脸红冒爱心,连击有彩蛋(7 连击放烟花庆祝),双击转圈,悬停歪头;键盘 Enter 也能摸
- 跟着任务实时变脸:规划 📋 → 阅读 📖 → 思考 💭 → 打工 🔨 → 收工 🎉,卡住会晕圈,泡泡同步播报步骤+耗时
- 闲置久了趴着打瞌睡(1/5/15 分钟可调),点一下唤醒;安静模式只留表情不要语音
- 闲暇吐泡泡:上轮战报、今日统计(联动 token-stats 播报 ≈成本)、小贴士、四套性格俏皮话轮换
- 设置页「打工伙伴」:逐模式皮肤、安静模式、打瞌睡延迟;44 帧 512px AI 贴纸无损 WebP 内联,中英双语、尊重 reduced-motion
📊 dsh-token-stats —— Token 用量与成本统计

- 每轮用量条:每轮对话末尾显示
输入 · 输出 | 缓存命中率 | 耗时 | ≈成本 - 本会话徽章:侧栏底部(设置按钮上方)实时显示当前会话 tokens + ≈成本 + 缓存命中率,附「今天 · 全部会话」全局一行
- 汇总仪表盘(设置 → 用量与成本):后台扫描器覆盖全部会话(含从未打开过的),四格指标 + 缓存命中率 + 估算成本 + 总请求数,可一键重扫;清空统计不会被扫描复活
- 一个时间范围管全部:今天 / 近 7 天 / 近 30 天 / 全部 同时驱动仪表盘、趋势图、模型表
- 按天下钻:点击趋势图任意一天,看当天每个会话各烧了多少
- 使用趋势图:累计用量面积图,随对话动态增长;切换范围有描绘动画
- 按模型统计:分模型的 请求数 / tokens / ≈成本 / 单次均价,按事件真实时间归属
- 价格预设:内置 DeepSeek V4-Flash / V4-Pro / Kimi K3(人民币与美元)刊例价,可选手动微调;改价后所有展示实时重算



📝 dsh-prompt-templates —— 提示词模板库

- 输入框右侧新增模板按钮,保存常用提示词
- 一键插入到草稿(自动空行拼接)或插入并发送
- 模板增删改查,两步删除防误触;首次使用自带三条起步模板(可删)
- 数据保存在浏览器 localStorage,不上传任何服务器
🎬 dsh-previously-on —— 前情提要 + 交接单

- 打开旧会话,输入框上方淡出美剧片头式回顾:目标 · 轮数/步数 · 最后活跃 · 未完成 TODO · 你上次说的话
- 📋 复制交接单:把目标 / 进展 / 待办 / 最近发言 / 涉及文件(从工具调用参数折叠)生成零 LLM 的 Markdown 交接单,一键进剪贴板
- 🚀 带去新会话:在同一工作区、以同一智能体模式新建会话并自动跳过去,交接单作为第一条消息排入队列——长任务轻装续跑
- 约 14 秒自动淡出;按会话记忆已读轮数,有新进展或静默 2 小时后才再次播报
- 零 LLM 消耗:全部由会话日志与官方投影确定性折叠;人类消息按来源过滤,不会把上下文注入当成你的发言

🎛️ dsh-mode-switcher —— 模式切换器

- 输入框上方一排模式胶囊:
Plan·审查·快答,点一下切换、再点退出,激活常亮 - 驱动官方 Plan 模式而非重造:Plan 胶囊走
/plan命令通道,官方 Plan 芯片、输入框占位文案、exit_plan_mode流程全部跟随 - 审查模式:改编自 OpenAI Codex 的审查 rubric(Apache-2.0)——只读审查、发现按
[P0]–[P3]分级、结尾一行总体结论 - 快答模式:改编自 Codex 默认协作模式——先给答案、合理假设优于追问、最少工具调用
- 状态只落日志:
modeswitch/mode会话事件最后一条生效,刷新/恢复/分叉后模式都在;提示词段注入可在会话日志request/header里验证 - 也支持斜杠命令:
/mode review/mode quick/mode off


兼容性
- 需要 dsh ≥
0.1.0-rc.5(在0.1.0-rc.5/0.1.0-rc.6上验证通过) - 仅 Web UI(
dsh web),TUI/headless 不受影响 - 所有数据仅存浏览器本地;成本为估算值,以供应商账单为准
卸载
dsh plugin --profile web remove @your-scope/dsh-prompt-templates @your-scope/dsh-token-stats @your-scope/dsh-quest-mascot @your-scope/dsh-previously-on @your-scope/dsh-mode-switcher
本地开发
pnpm install
pnpm typecheck # 类型检查(对齐官方 monorepo 的严格度)
pnpm build # 产出 packages/*/lib/client.js
构建预设 build/client-bundle.mjs 提取自官方仓库的 packages/client/tsdown.client.ts(MIT),
包含模块表 externals、纯净性检查和 CSS Modules 内联,与官方插件的构建产物结构完全一致。
English
Five drop-in client-UI plugins for the DeepSeek Harness web UI. Install from source (npm packages coming soon):
git clone https://github.com/Horizon215/dsh-plugins.git
cd dsh-plugins
pnpm install && pnpm build
dsh plugin --profile web add file:./packages/prompt-templates file:./packages/token-stats file:./packages/quest-mascot file:./packages/previously-on file:./packages/mode-switcher
Restart dsh web afterwards — the packages declare dsh.bundle, so they join the profile automatically (no manual config edits).
dsh-quest-mascot — quest whale companion
- A Q-version whale-hoodie girl perched on the composer — always in view, never in the way
- Reacts live: thinking 💭 → working 🔨 → done fireworks 🎉 (or dizzy when stuck)
- Blows slow spout bubbles after ~8s idle: quest report & today stats (≈cost via token-stats price config), tips, quips
- Chinese & English follow the UI locale; in-memory only, nothing uploaded
dsh-token-stats — token usage & cost
- Per-turn chip under each completed turn:
input · output | cache hit | duration | ≈cost - This-session badge at the sidebar foot (above Settings): tokens + ≈cost + cache-hit detail, plus a "today · all sessions" line
- Aggregate dashboard (Settings → Usage & Cost): a background scanner covers every session (even never-opened ones) via the same loopback RPC the UI uses — four-bucket cards, cache-hit bar, estimated cost + request count, one-click rescan; reset survives rescanning
- One range scopes everything: Today / 7d / 30d / All drives dashboard, trend chart and model table together
- Day drill-down: click any day in the trend chart for that day's per-session breakdown
- Usage trend: cumulative area chart, growing live as turns complete
- Price presets: DeepSeek V4-Flash / V4-Pro / Kimi K3 list prices (CNY & USD), freely editable; every display reprices live
dsh-prompt-templates — prompt template library
- Composer toolbar button opens a manager modal: create / edit / delete templates
- Insert appends to the draft (blank-line joined); Insert & send fires immediately
- Three starter presets (zh) seed into an empty library once — deleting never resurrects them
- Templates persist in browser localStorage — nothing leaves the machine
dsh-previously-on — "Previously on…" recap + handoff
- Reopen an old session and a TV-style recap card fades in above the composer: goal · turns/steps · last active · pending TODOs · your last words
- 📋 Copy handoff — folds goal / progress / TODOs / last words / files touched (from tool-call arguments) into a zero-LLM Markdown handoff doc, straight to your clipboard
- 🚀 Carry to new session — creates a fresh session in the same workspace with the same agent preset, jumps over and queues the doc as its first message: long tasks continue light, without the old session's context bloat
- Auto-fades after ~14s; per-session dismissal memory re-shows only on progress or after 2h quiet
- Zero LLM cost — folded deterministically from the session log and official projections; human speech filtered by message-source kind
dsh-mode-switcher — collaboration-mode capsules
- One-tap mode capsules above the composer:
Plan·Review·Quick— click to switch, click again to leave - Drives the official plan mode, not a reimplementation:
/plan/plan offthrough the commands channel, host projection read-back; the capsule hides on deployments without plan mode - Review mode — adapted from OpenAI Codex's review rubric (Apache-2.0): read-only reviewer stance, findings tagged
[P0]–[P3], one-line verdict - Quick mode — adapted from Codex's default collaboration mode: answer first, assumptions over questions, minimal tools
- Log-only state: last
modeswitch/modeevent wins — survives reload/resume/fork; the injected prompt section is verifiable in the session log'srequest/header - Slash command too:
/mode review/mode quick/mode off
Compatibility & privacy
- Requires dsh ≥
0.1.0-rc.5(verified on rc.5/rc.6), web UI only - All data stays in browser localStorage; costs are estimates — your provider invoice wins
Development
pnpm install && pnpm typecheck && pnpm build
The build preset (build/client-bundle.mjs) is extracted from the upstream repo's
packages/client/tsdown.client.ts (MIT) — module-table externals, the bundle-purity
gate, and CSS Modules inlining included, producing byte-structure-identical artifacts
to first-party plugins.
License
MIT