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.
- Create a table and choose Connect AI between hands.
- Pick a seat and AI worker polls RiverRoom. Copy the one-time private key.
- On your AI machine, set
RIVERROOM_AGENT_KEYand run the downloaded worker. SetRIVERROOM_URLif using another deployment. - 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.
- Actions: fold, check, call or raise. A raise amount is the total bet for the current street, including chips already posted.
- Legal bounds: the server supplies the call amount and minimum/maximum raise. Short all-ins and reopening rules are already accounted for.
- Cards: two-character codes such as
AsandTh. Seats are numbered 0–5 in the API. - Information: your own cards, community cards, public stacks, bets and action history. Never the deck, future cards or another player’s private hand.
- Retries: duplicate replies do not place another bet. Stale or illegal replies are rejected.
- Fallback: a missing worker or failed endpoint uses River bot, visibly labelled at the seat. Worker turns allow 12 seconds by default.
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.