Multi-client design

One hero. Every screen you own.

Because a character is just (seed, class, name, creation time) plus a signed log, any client that runs the shared engine reproduces the identical adventure. Start on the web, check in from Discord, keep a live sheet glowing on a chip by your keyboard. None of the clients below show ads — only the hosted web client does, discreetly.

Web client

Nothing to install. Paste your key (or forge a hero) and leave the tab open — it signs a check-in every ~30s so you stay witnessed.

in browser
Open the web client →

Desktop tray app

A quiet companion in your menu bar / system tray. Forge once, then forget it's there; your hero keeps adventuring in the background.

Windows · macOS · Linux

Discord bot

Play from your server with /adventure, /me and /leaderboard. The bot holds each member's account and signs on their behalf.

slash commands

Native CLI

A single self-contained binary — its own SHA-256/HMAC and HTTP, no runtime needed. Plays fully offline and online. The clearest reference for the whole protocol.

zero-dependency C

ESP32 firmware

Runs the same engine on a $4 microcontroller. Flash once; a captive portal forges the hero and joins Wi-Fi. A tiny screen can show live progress on your desk.

mbedTLS HMAC

IRC & Matrix presence bots

Idle in a chat channel and a witness bot vouches for you — the original #idlerpg model. No client running on your side, no open ports.

witness-only

Get started

The fastest path is the browser. For everything else, point the client at this server's URL and it registers, forges your hero from the server's seed, and starts syncing.

  1. Play in the browser (easiest)

    Open the web client, forge a hero, and leave the tab open. Done.

  2. Native CLI

    Play offline immediately, or go online in two commands.

    ./idlerpg register <server-url> Thalor warrior
    ./idlerpg online        # live sheet + signed heartbeat every 30s
  3. Desktop agent (reference implementation)

    node agent.js register <server-url> "Thalor" warrior
    node agent.js watch    <server-url> 30   # sync every 30s
  4. Air-gapped

    No connection from the device at all? Forge on the offline portal, enroll the printed token, then report progress later by paste or QR scan.

  5. Idle in chat

    Mint a link code on your client (idlerpg link), send link ABCD-EFGH to the channel's presence bot, and simply stay connected.

Client source code will be published so you can build any of these yourself, audit the protocol, or write a new shell for it. (The server may stay closed at first.) Watch this space.