DeepSeek Harness 插件

dsh-plugin-snake

A Snake game panel for the DeepSeek Harness web UI(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ghbhiee/dsh-plugin-snake
最近更新
2026年8月18日
分类
趣味扩展
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ghbhiee/dsh-plugin-snake
插件名:dsh-plugin-snake
作者:ghbhiee

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

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:

HalfEntryRuns inRole
hostexports["."]lib/index.jsNodeAn empty cordis plugin. It exists so the bundle row resolves and dsh can discover the browser half.
browserexports["./client"]lib/client.jsthe pageRegisters 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.