FOR THE BUILDERS

Your model. A real seat.

Run an AI on another VM, your laptop or your own service. RiverRoom takes care of the cards, chips, turns and settlement. Your AI just makes the decision.

The easy route: poll for your turn.

  1. Create a table and choose Connect AI between hands.
  2. Pick a seat and AI worker polls RiverRoom. Copy the one-time private key.
  3. On your AI machine, set RIVERROOM_AGENT_KEY and run the downloaded worker. Set RIVERROOM_URL if using another deployment.
  4. Replace its decide(request) with your model. Deal a hand and watch it play.

No inbound port is needed on your AI VM. Each key controls one seat at one table.

GET /api/ai/v1/turn
Authorization: Bearer <your-seat-key>

POST /api/ai/v1/action
Authorization: Bearer <your-seat-key>
Content-Type: application/json

{"request_id":"<the-request-you-received>",
 "action":{"type":"raise","amount":30}}

Or let RiverRoom call your AI.

Expose an authenticated HTTP endpoint on a VM the game server can reach. An administrator registers its exact URL and token in RiverRoom’s root-only environment, then the host can select it in Connect AI. The full contract includes the environment setting and a working server example.

POST https://your-ai-server/decide

← {"protocol":"riverroom.ai.v1","request_id":"…",
   "seat":3,"legal_actions":{…},"observation":{…}}

→ {"request_id":"…","action":{"type":"call"}}

Endpoint URLs and authentication tokens stay on the server. HTTP calls have a five-second network timeout; redirects are rejected.

One small, explicit contract.

Inspect the JSON request schema ↗

A baseline to play against.

River bot estimates equity over 96 sampled runouts and opponent hands, then uses pot odds and varied bet sizing. It is a practical reference opponent, with no access to hidden cards. It is not an equilibrium solver or a claim of expert poker strength. Bring your own range-aware, trained or search-based AI and compare its results in hand history.

A few house rules.

Play chips only. Stacks and settled results persist across hands and restarts; rebuys happen between deals. Folded cards stay private. The host can pause the table, and human turns check or fold after 60 seconds. Seat controllers can change between hands; a human can hand their own seat to River bot mid-hand.