DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-pushups

Pushups

统计你发送给 DeepSeek Harness 的消息,并将其转化为起立后需要完成的俯卧撑债务。Web GUI 插件,包含编辑器停靠栏计数器、部分偿还、连续记录,以及英文/俄文/中文界面。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:ivanlebedvideo/dsh-pushups#e412d015ce5c32b6bb475e5fb5a28c0fb994919f
README兼容性版本

兼容性与来源证明

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

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

版本

0.1.2stable
2026/10/23

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH 技能中心:按来源(bundled / project / user / custom / runtime)浏览已加载的技能,在 Web GUI 面板中启用或禁用、创建和删除技能。Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Client Ui Market@linxin666/dsh-client-ui-marketWorkshop 浏览卡片:浏览来自 dsh-market.com 的皮肤、宠物和社区插件,并在 GUI 中安装(资源安装到 DSH 主目录,插件通过可选的插件管理器安装)。

README

dsh-pushups

A small DeepSeek Harness (DSH) plugin for the Web GUI: every message you send to the assistant becomes one push-up of debt. When you stand up from the computer, you pay the debt off — in one set or in parts.

The point is not statistics. The point is that the number sits under the composer the whole time, grows when you talk instead of moving, and refuses to disappear on its own.

┌──────────────────────────────────────────────┐
│  ... chat ...                                │
│  ┌────────────────────────────────────────┐  │
│  │  message the assistant                 │  │
│  └────────────────────────────────────────┘  │
│              🏋 Push-ups: 7                  │
└──────────────────────────────────────────────┘

Click the chip, and a dialog shows the lifetime message count, the unpaid debt, the streak of days closed without debt, recent payments, partial-payment buttons (+5, +10, +25, all), a custom amount, and a language switch (English / Русский / 中文 — English by default).

Next to the chip sits a one-click ✓ button: when you have already done the push-ups, it pays the whole debt without opening anything. The dialog stays for the details.

What counts

One admitted human prompt: a session event user/message whose source is { kind: 'user', rpcId: <string> }. This is exactly the signal DSH itself uses for "a human typed this in the Web GUI".

Not counted:

  • retries — user/message is appended once per admitted message, never per attempt;
  • automatic goal continuation rounds (source.kind === 'goal');
  • scheduled, webhook, tool-context and other machine-produced user-role messages;
  • subagent work — child sessions carry no rpcId;
  • messages sent before the plugin was installed (the counter starts at zero on install);
  • prompts sent from other clients (TUI, ACP, SDK) — the rpcId discriminator is Web-only.

Requirements

  • DSH 0.2.0-rc.1 or newer with the web profile;
  • no build step: the Client half is plain JavaScript.

Install

From an absolute path:

plugin_manager
  action: install_bundle
  target: /absolute/path/to/dsh-pushups

From a git checkout:

git clone https://github.com/ivanlebedvideo/dsh-pushups.git

then install that directory the same way. install_bundle adds the package to the profile, selects the bundle and applies its patch; a new bundle activates without a server restart, but reload the page (Ctrl+R) so the browser loads the new Client module.

Disable it at any time:

plugin_manager
  action: set_plugin
  target: pushups
  enabled: false

Data

The ledger is a single JSON file owned by the Host half:

$DSH_HOME/storages/pushups/state.json      # default: ~/.dsh/storages/pushups/state.json

It holds the install timestamp, the lifetime count, the current debt, the streak, bounded per-day counters (400 days) and the last 500 payments. The Host also serves three loopback routes for the Client: GET /pushups/state, POST /pushups/pay, POST /pushups/reset. They are unauthenticated by design — DSH's web server binds 127.0.0.1 and this data is a push-up counter, not a secret.

Agent tool

The Host registers one read-only tool, pushups_status, so the assistant can answer "сколько я должен?" with the live number. It never adds nudges to replies on its own.

Rules baked in

  • 1 message = 1 push-up; no daily cap, no coefficient — a cap is permission to cheat;
  • debt carries over to the next day and never expires;
  • partial payments are allowed;
  • a day that ends with debt breaks the streak; a day closed at zero extends it;
  • "Reset everything" requires a second click and zeroes lifetime, debt and history;
  • nothing blocks sending — blocking would make you write less, not move more.

Limitations

  • Web GUI only; the counter is global across all sessions and projects of this installation.
  • Day boundaries follow the Host machine's local time zone.
  • The streak advances when the Host observes a day rollover (on any message, payment or state read), so it is an honest approximation, not a cron job.
  • No data migration: the state file carries a version and a mismatched version starts fresh.

License

MIT.