dshbase

Plugin directory / UI & Skins / dsh-plugin-snake

dsh-plugin-snake

Verified · install-tested on dsh ghbhiee

✓ Actively maintained

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-18Last push
Cross-platformPlatform

What it does

Snake game panel for the DeepSeek Harness web UI — a floating game panel in the shell overlay seat

✅
Our take
Works — verified, early-stage project

Snake game panel for the DeepSeek Harness web UI — a floating game panel in the shell overlay seat It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-plugin-snake

A Snake (贪吃蛇) game panel for the DeepSeek Harness web UI, as an out-of-tree plugin.

A floating 🐍 button in the frame's overlay layer opens a self-contained Snake
game: arrow keys / WASD to steer, Space to pause, swipe gestures on touch
screens. The high score is persisted in localStorage.

Install

The plugin is hand-written JavaScript with no build step, so it installs
straight from GitHub — nothing to download or compile:

dsh plugin --profile web add github:ghbhiee/dsh-plugin-snake

Or from a local clone (a link:, so edits are picked up on the next restart):

git clone https://github.com/ghbhiee/dsh-plugin-snake.git
dsh plugin --profile web add ./dsh-plugin-snake

Restart the web profile afterwards — plugins are assembled at boot, never
hot-loaded:

systemctl restart dsh-web          # or: launchctl kickstart -k gui/$(id -u)/com.tokencv.dsh-web

Sibling plugins install the same way:
dsh-plugin-workbench,
dsh-plugin-mobile-shell,
dsh-plugin-cli-session.

How it works

Two halves, discovered through package.json:

Half Entry Runs in Role
host exports["."] → lib/index.js Node An empty cordis plugin. It exists so the bundle row resolves and dsh can discover the browser half.
browser exports["./client"] → lib/client.js the page Registers into the shell.overlay seat and renders the game.
  • cordis.patch.yml contributes the one bundle row (id: snake,
    name: dsh-plugin-snake), which is what makes the package get imported.
  • The browser half wraps itself in window.__ModuleLoader__.load({ id, factory })
    — id must equal the package name — and is served at
    /plugins/dsh-plugin-snake/client.js?rev=<content-hash>, so a code change
    invalidates the browser cache by itself.
  • It registers a component rather than touching the page: the host app renders
    every entry registered into shell.overlay as its own React children. The one
    piece of direct DOM work is injecting a de-duplicated <style> tag.
  • react comes from the loader's shared externals (require("react")), never
    bundled — two React copies would break hooks.

Editing

There is no build: lib/*.js is the source, hand-written CJS for the
browser half and ESM for the host half. Edit it, then restart the web profile.

npm run check     # node --check on both entry points

Because the browser half is plain JavaScript, it uses React.createElement(...)
directly instead of JSX.

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-plugin-snake for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:ghbhiee/dsh-plugin-snake

Headless (CLI) profile:

dsh plugin --profile headless add github:ghbhiee/dsh-plugin-snake

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in UI & Skins

Browse all 7819 plugins →