DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-pushups

Pushups

Counts the messages you send to DeepSeek Harness and turns them into a push-up debt you pay off when you stand up. Web GUI plugin with a composer-dock counter, partial payments, streak and English/Russian/Chinese UI.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:ivanlebedvideo/dsh-pushups#e412d015ce5c32b6bb475e5fb5a28c0fb994919f
READMECompatibilityVersions

Compatibility and provenance

Pushups is published as dsh-pushups and currently resolves to version 0.1.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/23/2026

Versions

0.1.2stable
10/23/2026

Related plugins

Loading related plugins…

Latest
0.1.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/23/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Client Ui Skill Explorer@linxin666/dsh-client-ui-skill-explorerDSH skill center: browse loaded skills by source (bundled / project / user / custom / runtime), enable or disable, create and delete, in a web GUI panel.Client Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundleClient Ui Market@linxin666/dsh-client-ui-marketWorkshop browser card: browse skins, pets and community plugins from dsh-market.com and install them in the GUI (assets into the DSH home directories, plugins through the optional plugin manager).

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.