dsh-pet
PC2005-cloud/dsh-petDSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
等待 Agent 回复时的恐龙快跑小游戏:常驻进度条从「梁子」冲向「梁圣」,折叠即暂停、任意键恢复。
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.
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).
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.
100% · <seconds> — surviving seconds since reaching 梁圣 in this round (not a lifetime total).assets/avatars/.~/.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.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.
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 settings-card registration carries the legacy list id and the current keyed-slot key; the host serves the matching settings namespace so current DSH versions can discover the card. The host also registers a webServer route /dsh-running-liang/avatars (list / serve / upload). Long-lived state remains in localStorage; avatar files live on disk so they survive browser storage wipes.
MIT — see LICENSE.