DeepSeek Harness Plugin

skiuniverse/dsh-running-liang

Stars ★ 0 Category Just for Fun Added 2026-08-15 npm dsh-running-liang

A Chrome-dino-style runner for the DeepSeek Harness Web UI: play while the agent replies, score from 梁子 to 梁圣 on a persistent progress strip.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-running-liang

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:skiuniverse/dsh-running-liang

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English | 中文

Poor folks play cars, rich folks play watches, the richest play Liangda Runner. 穷玩车,富玩表,顶富就玩梁大快跑。

Developed 100% via vibe coding by DeepSeek Harness + DeepSeek-V4-Flash. For fun only.

Liangda Runner gameplay

A Chrome-dino-style mini-game for DeepSeek Harness Web: while the agent is replying, a progress strip sits above the input bar (same row as the goal bar) with a play key — click it, run, jump (Space/), duck (), score from 梁子 toward 梁圣, and watch the progress bar survive the game and every reply.

Inspired by Chrome's Dino Run — the offline T-Rex Runner game shipped in the Chrome browser (Chromium project).

Install

dsh plugin --profile web add dsh-running-liang

or GitHub-only:

dsh plugin --profile web add skiuniverse/dsh-running-liang

Restart dsh web, send a message, and press the strip's play key.

How it plays

  • Waiting window: the strip (and the game once expanded) lives while the session is running; on turn end the game pauses with a brief overlay, then collapses back to the strip.
  • Fold = pause: clicking the play key (or ×) folds the panel and pauses — expanding again reopens PAUSED; any key or a click on the surface resumes. Collapsing never resets speed or score.
  • Blur-pause: focusing the input OR clicking anywhere outside the game panel pauses; keys only control the game while focus is outside input fields.
  • Speed tiers: every round (turn) restarts at tier 0, climbing one tier every 15 s of game time up to tier 4 (1.0/1.2/1.5/2.0/2.5× speed; 1.0/1.2/1.5/2.5/5.0 pts per second — the HUD shows the score rate). Hold the jump key for longer airtime; duck in the air to fall faster.
  • Obstacles: cacti/rocks on the ground; low and high flying birds from tier 3 — jump the low ones, duck the high ones.
  • Death: collision shows a settlement screen — the remaining progress to 梁圣 (x%) or the 梁圣 seconds you had survived (x.xxs); any key (or a click) restarts. Score, tier and saint status reset on restart.
  • 梁圣: reach the threshold (default 150) and the strip shows 100% · <seconds> — surviving seconds since reaching 梁圣 in this round (not a lifetime total).

Avatar

  • Built-in default: a stick figure with a DeepSeek-whale face, shipped in assets/avatars/.
  • Custom: drop images into ~/.dsh/plugins/dsh-running-liang/avatars/ (created on demand) or upload them from Settings → Plugins → plugin configuration → Liangda Runner. Pick any avatar there; a missing file falls back to the default.

Configuration

In Settings → Plugins → plugin configuration → Liangda Runner: threshold (梁圣 threshold, default 150), tierInterval (seconds per tier, default 15), allowIdlePlay (test switch: allow starting the game while the agent is idle), and customizable jump/duck keys (jump defaults Space, always jumps too; duck defaults ArrowDown). The tier table and physics are fixed constants.

Development

npm install
npm run typecheck   # tsc --noEmit
npm test            # vitest (engine / tiers / layout / store / render / avatar-files)
npm run build       # lib/index.js (host) + lib/client.js (browser bundle)
npm run check       # pre-publish self-check

Architecture notes: the client registers into the official DSH slots — conversation.input.dock (the strip + growing game panel, same flow as the goal bar) and settings.plugin.item (the settings card under Plugins → plugin configuration); the host registers a webServer route /dsh-running-liang/avatars (list / serve / upload). Long-lived state lives in localStorage; avatar files live on disk so they survive browser storage wipes.

License

MIT — see LICENSE.

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →