Skip to content

Latest commit

 

History

607 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeskRPG

한국어 문서: README.ko.md

DeskRPG home screen

DeskRPG is a 2D pixel-art virtual office you can self-host. Create LPC characters, enter shared channels, walk around a live office map, hire AI NPC coworkers backed by Hermes agents, assign tasks, receive reports in-world, and run AI meetings in a browser.

DeskRPG is built for people who want a playful, self-hosted workspace rather than another plain chat room.

  • Website: https://deskrpg.com (planned)
  • Source code: https://github.com/dandacompany/deskrpg
  • Version: v2026.9.9

What You Can Do

  • Create your own pixel-art office avatar with LPC-based character customization.
  • Join or self-host shared office channels with live multiplayer movement.
  • Hire AI NPCs, bind them to Hermes agent profiles, and talk to them in-world.
  • Delegate tasks, request reports, resume stalled work, and review progress in a task board.
  • Run AI meetings in a dedicated meeting room with meeting notes and multi-agent discussion.
  • Build or upload your own office maps with the browser-based map editor.

Screenshots

DeskRPG getting started DeskRPG NPC chat and tasks
Getting Started NPC Chat and Tasks
DeskRPG meeting room DeskRPG map editor
Meeting Room Map Editor

Quick Start

Choose one of these six ways to start DeskRPG.

Option 1: npm Install Runtime

This is the simplest self-hosted path if you want DeskRPG as an installed app instead of a cloned repo.

npx deskrpg init
npx deskrpg start

DeskRPG stores mutable runtime state under ~/.deskrpg/:

  • ~/.deskrpg/.env.local
  • ~/.deskrpg/data/deskrpg.db
  • ~/.deskrpg/uploads/
  • ~/.deskrpg/logs/

Open http://localhost:3000.

Published npm package: deskrpg

Option 2: Local Run with PostgreSQL

git clone https://github.com/dandacompany/deskrpg.git
cd deskrpg
npm install
cp .env.example .env.local
npm run setup
npm run dev

Open http://localhost:3000.

This is the best option if you want to run the full app directly from the repo.

Option 3: Local Run with SQLite

git clone https://github.com/dandacompany/deskrpg.git
cd deskrpg
npm install
npm run setup:lite
npm run dev

SQLite stores data in data/deskrpg.db.

Option 4: Docker with PostgreSQL

Recommended if you expect multiple users or want a more durable database.

cp .env.example .env.docker
docker compose --env-file .env.docker up -d

Before the first run, open .env.docker and set:

  • JWT_SECRET
  • POSTGRES_PASSWORD

DeskRPG will open on http://localhost:3102.

The default image is dandacompany/deskrpg:latest. If you want to pin a release, change DESKRPG_IMAGE in .env.docker to something like dandacompany/deskrpg:2026.4.6.

If you prefer the explicit file path version, you can run:

docker compose --env-file .env.docker -f docker/docker-compose.external.yml up -d

Option 5: Docker with SQLite

Recommended if you want the simplest single-machine setup.

JWT_SECRET=change-me docker compose -f docker/docker-compose.lite.yml up -d

DeskRPG will open on http://localhost:3102.

To pin a specific image version, add DESKRPG_IMAGE=dandacompany/deskrpg:2026.4.6 before the command.

Use SQLite if you want to get started quickly. Use PostgreSQL if you want a setup that is easier to keep long term.

Environment

Important environment variables:

  • JWT_SECRET
  • POSTGRES_PASSWORD (PostgreSQL Docker setup)
  • DESKRPG_ALLOW_HOST_HERMES_PROFILES (optional; lets a loopback gateway read ~/.hermes/profiles on the host — off by default)

For production, always set a real JWT_SECRET.

Gateway URL and token are not environment variables. They are registered inside the app on the My Gateways page and then attached to a channel from Settings -> Channel Settings -> AI Connection.

Hermes Connection

AI NPCs, task automation, and AI meetings all run through a Hermes gateway.

DeskRPG does not ship a bundled agent runtime. Run a Hermes Agent API server yourself — on the same machine or on any host you can reach — and note two things from it:

  • the base URL it listens on (for example http://127.0.0.1:8642)
  • the API key of the profile you want DeskRPG to use

Hermes config is machine-scoped but auth is per profile, so each profile carries its own key.

Connecting it to DeskRPG then takes three steps.

1. Register the gateway

Open My Gateways from the top-right menu and choose New gateway:

  • Display name — anything you will recognise later
  • Hermes Gateway URL — for example http://127.0.0.1:8642
  • Token — the API key for that gateway

Save, then run the connection test. A failed test tells you what went wrong rather than just failing, so read the message before changing anything.

2. Add Hermes profiles

A gateway can serve several agent profiles, and each profile has its own key. Add them on the same page — profiles are what NPCs actually bind to. Registering the gateway alone is not enough.

3. Attach the gateway to a channel

Enter a channel, then Settings -> Channel Settings -> AI Connection, pick your saved gateway, test, and save. The header badge changes to AI Connected once it takes.

Now you can hire NPCs. Each NPC is bound to one Hermes profile at hire time, and you can rebind it later without firing it.

How DeskRPG Works

1. Characters

  • Every user enters as a character.
  • Character appearance is LPC-based and composed from layered sprite parts.
  • Character creation is required before entering a channel.

2. Channels

  • A channel is a shared office space.
  • Channels can be public or restricted depending on access and group rules.
  • Channel maps come from map templates.

3. AI NPCs

  • NPCs live inside channels.
  • Each NPC is bound to one Hermes profile, and can be rebound later without being fired.
  • One-on-one conversations are stored per character, so history survives a server restart.
  • NPCs can be called over, sent back, edited, reset, and fired from in-app menus.

4. Tasks

  • You can assign work to NPCs through conversation.
  • Tasks move through 대기, 진행중, 중단, 완료.
  • NPCs can be nudged automatically or manually to continue working.
  • Important reports are delivered in-world by the NPC walking over to the player.

5. Meetings

  • DeskRPG includes a dedicated meeting room.
  • AI meetings are channel-scoped and orchestrated through the channel's Hermes gateway.
  • Meeting notes are stored and visible from the header.

6. Map Editor

  • The browser map editor supports Tiled-style map workflows.
  • You can upload templates, manage project-linked assets, and reuse maps for new channels.
  • This is a major subsystem of the project, not a side tool.

Product Notes

  • Login is required even if you have an invite code.
  • Invite codes are channel access helpers, not anonymous access tokens.
  • The current default in-app office tiles and object textures are generated in code at runtime.
  • LPC avatar sprite assets are bundled separately and have their own credits and license notes.

Licenses And Credits

Support

  • YouTube: @dante-labs
  • Email: dante@dante-labs.com
  • Buy Me a Coffee: https://buymeacoffee.com/dante.labs

About

2D pixel art multiplayer virtual office game — create characters, join channels, chat with AI NPCs, and collaborate in real-time

Resources

Stars

97 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages