任务开始时自动弹出的 5 个休闲小游戏(数字华容道、数独、贪吃蛇、舒尔特方格、数字记忆),支持跨会话自动保存进度。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:pwping/moyu_games
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness(DSH)的「摸鱼」小游戏插件。任务执行(一个 turn 或 step 启动)时,屏幕右下角会弹出小游戏窗口,让你在 agent 干活的同时摸一摸鱼。窗口默认贴右下角、可按住标题栏拖动。
这是一个独立的 DSH Web 插件。它只使用官方 @deepseek-ai/* SDK 和官方 shell 槽位(sidebar.footer.action、shell.overlay、settings.section),不依赖任何插件族或 monorepo,任何人都可以安装。
整体视觉使用微信绿(#07C160)主题,包含5款小游戏。
截图
功能
- 自动 / 手动开关(标题右侧,默认自动)。
- 自动:每次任务发起(
task-start)自动弹出游戏窗口。 - 手动:任务发起不再自动弹窗,需点击侧边栏左下角「摸鱼游戏」按钮才打开。
- 开关写入设置命名空间的
autoPopup,与设置页一致。
- 自动:每次任务发起(
- 任务执行时自动弹窗。 宿主订阅
session/event,当turn/start或step/start启动时,通过 SSE 端点/api/moyu-games/events广播一个带单调递增任务号的task-start帧;浏览器在开启自动弹窗时弹出窗口并保持打开,直到你手动关闭(广播带防抖)。手动关闭后,同一任务剩余部分不会自动重弹;点按钮手动打开始终可用。下一个任务到来时(自动模式)会再次弹出。 - 右下角可拖动窗口。 窗口固定在右下角(整体 80% 大小),可按住标题栏拖动(会限制在屏幕内,拖动后停留原位,下次打开回到右下角)。外层是一层全透明、可点击穿透的遮罩,下方任务日志始终可见可操作;只有窗口本身接收输入。
- 游戏本体(5 选 1,顶部 Tab 切换): 数字华容道 → 数独 → 贪吃蛇 → 舒尔特方格 → 数字记忆。
- 数字华容道:经典滑动拼图,点击与空格相邻的数字方块滑入空位,还原为
1..n²(空格在最后)。难度 3x3~10x10,带步数/用时。所有方块统一深微信绿,移动过程中不变色。规则:把数字1-n²-1按顺序排列好即可。 - 数独:9x9 标准数独,支持选择、键盘/数字键盘输入、笔记模式、撤销、擦除、提示;统计正确数/错误数/用时。规则:填入数字 1-9,每行每列每个 9 宫格数字都不重复。「笔记」按钮选中态为深微信绿。
- 贪吃蛇:Canvas 渲染的 30×30 方格蛇,方向键或鼠标控制方向,吃到彩色圆点变长,得分与游戏结束弹窗。规则:方向键或鼠标控制方向,吃彩色圆点变长。
- 舒尔特方格:把打乱的数字按
1..n²顺序依次点击。难度 3x3~10x10,带「下一个数」与用时;点错的数字以深绿放大提示。规则:按1-n²的顺序依次点击数字(速度越快说明专注力越强)。已点中的数字用深微信绿显示。 - 数字记忆:6x6 格子,先记住 N 个数字的位置,再按顺序依次点击;统计错误数与用时。规则:记住数字位置,按
1-N的顺序依次点击(速度越快说明记忆力越好)。
- 数字华容道:经典滑动拼图,点击与空格相邻的数字方块滑入空位,还原为
- 入口。 侧边栏底部「设置」旁的「摸鱼游戏」行(官方
sidebar.footer.action槽位,纯图标+文字、无背景框),以及自动弹窗。 - 配置 在 设置 → 「摸鱼游戏」页面:总开关、自动弹窗、默认棋盘大小。
安装
前置条件
- Node.js
^22.19.0或>=24.0.0(用于构建;仅安装使用已构建的lib/不强制要求) - DeepSeek Harness(DSH) 已安装且
dsh命令可用(dsh --version能输出版本号)
方式一:给 Agent 的精简安装指令
这是插件仓库地址:
https://github.com/pwping/moyu_games帮我安装。
方式二:从本仓库 clone 后安装(推荐,本地开发或自用)
# 1. 克隆仓库到任意目录
git clone https://github.com/pwping/moyu_games.git
cd moyu_games
# 2.(可选)如需从源码重新构建,安装依赖并构建
# 仓库已提交构建产物 lib/,跳过此步也能直接安装
npm install
npm run build
# 3. 用 dsh 注册本插件(指向仓库根目录的绝对路径)
dsh plugin --profile web add /absolute/path/to/moyu_games
# Windows 示例:
# dsh plugin --profile web add E:/Vibe_CODE/moyu_games
# 4. 重启 dsh web 使插件加载
dsh web
# 若已在运行,先停止再重启:Ctrl+C 后重新执行 dsh web
安装完成后:
- 侧边栏底部「设置」旁出现「摸鱼游戏」行
- 自动模式下,任务(turn/step)开始时右下角自动弹出游戏窗口
- 设置 → 「摸鱼游戏」页可调整总开关 / 自动弹窗 / 默认棋盘大小
构建(仅在修改源码时需要)
npm install
npm run build
npm run build 生成 lib/index.js(宿主,一个 cordis 插件)和 lib/client.js(浏览器端,交给 DSH 闭包工厂客户端包)。npm run typecheck 和 npm test 用于校验源码。
安全模型
- 插件只挂载 UI 表面(侧边栏底部操作、右下角窗口、设置页),并打开一条只读的 SSE 流连接到 GUI 加载时所在的同源。它不写任何磁盘内容,不暴露任何状态或变更端点。
- 自动弹窗可通过
autoPopup(窗口内开关/设置页)关闭;窗口始终可手动关闭(按钮或 Escape),关闭后同一任务内不再自动重弹。
实现要点
- 宿主端:
src/index.ts(一个 cordis 插件)+src/stream.ts(SSE 广播器,带任务号与防抖)。注册设置命名空间和/api/moyu-games/events路由,并订阅session/event。 - 浏览器端:
src/client/index.ts注册三个官方槽位并订阅 SSE 流;src/client/ui.tsx渲染底部入口、右下角窗口、5 款游戏与设置页;src/client/game/*是各游戏的纯逻辑引擎;src/client/styles.ts注入微信绿样式表。 tsdown.config.ts构建宿主(ESM,SDK 外部化)和客户端(CJS 闭包工厂,交给window.__ModuleLoader__.load,shell 的冻结模块表保持外部、其余全部内联)。
License
MIT。
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 1260
DSH Web UI 桌面宠物:25 个透明动画、屏幕漫游、点击反应与拖拽,附可复现的素材生成链。
Nagi-ovo/dsh-ads★ 660
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
vlln/whale-girl★ 357
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
yyh-001/dsh-meme★ 171
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
a86582751/dsh-nexttavern★ 165
面向 DeepSeek Harness 的角色扮演工作台:人物卡可以导入(SillyTavern/TauriTavern),也可以从零交互式写出一张;长篇 TXT 能改编成可玩的角色卡,精读或粗颗粒度两种读法;主代理按剧情主动查阅世界书,正文在独立的酒馆阅读 TAB 中呈现;同一对话里探索多条世界线(重新生成、改后发送、显式分支);带作用域的文风预设(16 种自带文风)、角色 Agent 集群、独立决策卡,以及角色卡或小说导出;长篇由固定设定前缀、硬切上下文窗口、可追溯导演笔记与关键词/语义/混合检索撑住,嵌入可用在线服务,也可完全本地运行。面向 Harness 0.1.2-alpha.3,安装需按文档应用显式兼容补丁。
Sutera-Diffusus/dsh-whale-musume★ 120
元气鲸鱼娘桌宠:摸头养成、按工具类型联动的工作状态、494 条台词、30 项成就、成长日记、拖拽惯性、主题适配与无障碍模式。关键词感知与余额关心默认关闭、需手动开启;可选的天气心情只在你填了城市后才会请求 Open-Meteo。无遥测。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。