deskrpg
dandacompany/deskrpg加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,某远程团队的 Slack 频道里,一句"今天又没人回我消息"引发了一阵沉默。这不是某个小团队的困境,而是整个远程协作时代的集体焦虑——我们用冰冷的视频会议和永远刷不完的消息流,替代了茶水间里随意的眼神交流和走廊上的偶遇。dandacompany/deskrpg 带来了一种完全不同的思路:既然大家喜欢玩游戏,为什么不把办公室做成一个可以探索的 RPG 世界?
DeskRPG 是一款 2D 像素艺术风格的多人虚拟办公室游戏,玩家可以创建自己的像素角色,在实时的办公室地图中走动、与 AI NPC 同事聊天、在任务面板上协作、甚至在会议室里召开 AI 会议——所有这些都在浏览器中完成,完全自托管。

DeskRPG 由韩国团队 dandacompany 开发,创建于 2026 年 3 月。项目的核心理念写在项目描述里:"For people who want a playful, self-hosted workspace rather than another plain chat room"——为那些想要一个有趣的自托管工作空间、而不是又一个无聊聊天室的人而生。
当前版本 v2026.5.29(发布于 2026 年 5 月),基于 TypeScript + Next.js 15 + Phaser 3 构建,主分支为 master。这是一个真正的全栈项目:前端是 Next.js App Router 页面 + Phaser 游戏引擎,后端是 Socket.IO 实时通信 + PostgreSQL/SQLite 数据库。
DeskRPG 最有趣的技术选择,是将 Next.js(典型的 Web 应用框架)和 Phaser 3(专业 2D 游戏引擎)融合在同一个应用中。
前端页面层(src/app/)采用 Next.js 15 App Router,处理用户认证、角色创建、地图编辑器、任务面板等传统 Web UI 页面。游戏层(src/game/)则基于 Phaser 3,包含 BootScene(加载资源)和 GameScene(游戏主循环)两个核心场景,负责渲染像素办公室地图、处理角色移动和实时多人同步。
两部分通过 React Context 和 Socket.IO 连接:玩家在 Phaser 地图中行走时,位置信息通过 Socket.IO 实时广播给同一"频道"的其他玩家,实现类似 MMO 的"看到彼此走动"效果。
数据库层使用 Drizzle ORM,支持 PostgreSQL(生产推荐)和 SQLite(轻量开发模式)。Schema 定义了 Characters(角色)、Channels(频道)、Tasks(任务)、Meetings(会议)、NPCs(AI 角色)等核心实体。Socket.IO 消息在 server.js 和 socket-handlers.ts 中处理,支持实时聊天、任务指派、会议讨论等场景。

DeskRPG 最有野心的功能,是其 AI NPC 系统。用户可以雇佣 AI NPC 作为虚拟同事,将它们连接到 OpenClaw 代理框架,通过自然语言与 NPC 交流、分配任务、获取进展报告。
OpenClaw 是一个独立的 AI Agent 运行时(默认使用 gpt-5.4),通过 openclaw-gateway.js 网关与 DeskRPG 集成。NPC 可以在游戏世界中接收任务、在任务面板中更新进度、并通过聊天回复玩家。
项目还内置了多模型路由系统 dm-hub,支持 Claude、Codex、Gemini、OpenCode 等多种 CLI 适配器。这意味着团队可以根据不同任务类型选择最合适的 AI 模型——写代码用 Codex,做分析用 Claude。

DeskRPG 提供了可能是所有同类项目中最灵活的部署选项:
| 方式 | 命令 | 适用场景 |
|---|---|---|
| npx 一键安装 | npx deskrpg init && npx deskrpg start | 最简路径,无需克隆仓库 |
| npm 完整开发 | npm install && npm run dev | 需要自定义开发 |
| SQLite 轻量模式 | npm run setup:lite && npm run dev | 无 PostgreSQL 环境 |
| Docker Compose | docker compose up | 生产级一键部署 |
| npm 包发布 | npm i deskrpg | 作为依赖集成到其他项目 |
| Helm Chart | helm install deskrpg ./deploy/chart | K8s 集群部署 |
Dockerfile 采用标准的多阶段构建:deps(依赖安装)→ builder(Next.js build + 可选 Claude/Codex/Gemini/OpenCode CLI 适配器编译)→ runner(生产镜像,基于 node:20-bookworm-slim)。最终输出独立的 standalone 可执行文件。
docker-compose.yml 包含两个服务:deskrpg-db(PostgreSQL 16-alpine,数据持久化到命名卷)和 deskrpg-app(主应用,端口 3102/3103)。

DeskRPG 内置了一个功能完整的浏览器端像素地图编辑器。用户可以:
地图编辑器完全基于 Canvas/Phaser 实现,无需额外软件,所有操作在浏览器内完成。这意味着团队可以定制化自己的虚拟办公室——把工位布局改成真实的办公室平面图,或者为不同部门创建不同主题的空间。

DeskRPG 带来了新鲜的体验,但也存在一些不可回避的现实问题:
规模化挑战:基于 Phaser + Socket.IO 的实时多人同步,在超过 20 人同时在线时可能面临性能瓶颈。Socket.IO 的广播模型在高并发场景下不如专门的 MMORPG 服务端高效。WebGL 兼容性:Phaser 游戏引擎依赖浏览器 WebGL 支持,在某些受限的企业环境中可能无法正常运行。AI NPC 的可用性:OpenClaw 需要额外配置 OpenAI API Key 或其他模型 provider,对于没有 AI 开发经验的团队有一定门槛。许可不明确:仓库使用 NOASSERTION(非标准许可),生产使用前需确认法律风险。
DeskRPG 代表了一种务实的"虚拟空间"思路:不去追逐宏大的元宇宙叙事,而是聚焦于一个具体的场景——远程团队的日常协作——用像素风和 RPG 游戏化机制来提升参与感。
从增长角度看,94 颗星的项目还处于早期,但其在 GitHub 上的活跃开发(最新推送 2026-05-29)、完整的功能集合(地图编辑器、AI NPC、会议系统、任务管理)都显示了项目的成熟度。对于 AI+协作工具赛道而言,DeskRPG 提供了一种差异化的思路:不用 AI 替代人,而是让 AI 作为虚拟同事融入团队。
# 最简单方式:npx 一键启动
npx deskrpg init
npx deskrpg start
# 打开 http://localhost:3000
# Docker Compose 方式(生产推荐)
git clone https://github.com/dandacompany/deskrpg.git
cd deskrpg
cp .env.example .env.local
# 编辑 .env.local 填入必要配置
docker compose up
最低配置:2 核 CPU、2GB RAM、Node.js 20+。如启用 AI NPC 会议功能,建议 4GB+ RAM。