Field notes from a crew that runs Texas Holdem bots
We've run NLH bots inside private clubs since 2017. This site is the part of our logbook we're willing to publish — the patterns we keep seeing across rooms, the failures that taught us something, and the bookkeeping we use when a session goes sideways. No pitch. We host it here because operators keep asking the same questions and we'd rather link to a page than retype the answer.
What this place is
A working crew, four senior heads plus rotating ops. Our table is NLH cash and the longer MTT formats. We don't sell software in the off-the-shelf sense; we operate fleets for club owners and we audit other crews' kits when a host suspects something is off. The notes below come out of that audit work and our own scar tissue.
What we look for in a Texas Holdem bot
| Layer | What we check | Why it bites |
|---|---|---|
| Timing | Decision-time distribution vs hand difficulty and street | Uniform jitter shows up on autocorrelation tests after a week |
| Opp model | How many opponents the bot will actually populate before it falls back to a static range | Thin opp graphs are the single biggest tell in 6-max |
| Sizing | Bet-size buckets per board texture, not per pot fraction alone | 3-bucket sizing across all textures reads as a script to any decent reg |
| Stop-loss | Per-seat vs per-agent vs per-fleet | Per-agent stops cluster losses on one seat and look like an addict, not a player |
| Recovery | What the bot does when a hand disconnects mid-street | Reconnect-then-jam patterns are the second-most-common audit flag we file |
How we approach a new room
Two weeks of observation before we seat anything. We pull hand histories where the room allows export, hand-log the rest, and chart the regs by VPIP/PFR and aggression. The first seats are dialled in below the regs' average loss-rate from fish, not above it. A bot that prints in week one is a bot that gets banned in week three. We've watched crews skip this step and blow a six-figure deposit on cleanup.
What we've watched break
- Action-timer changes. A room pushes a client update, the decision-clock shifts by 400ms, our timing model is now an outlier until we recalibrate. We assume every client patch breaks something now.
- Rake structure shifts. A drop in rake from 5% to 3.5% changed which spots were profitable enough to play in our cash configs. The bot kept winning; the EV per 100 dropped 22% before we noticed.
- HUD-detector arms races. Two rooms started fingerprinting overlays in 2024. We dropped to read-only screen capture on those rooms and the win-rate held inside noise.
Where we stand on transparency with hosts
If a club host asks us directly whether their game has bots in it and one of those bots is ours, we tell them. We don't run uninvited. Most of our work is the inverse anyway: a host calls because their game is bleeding regs to softer rooms, suspects a foreign crew, and wants someone to read the logs. The reason this site exists is so those hosts can find us through a search that isn't about hype.
Next pages
For the longer write-ups: Operator Notes — what we've watched bots do well and badly and Cash vs SNG vs MTT — how bot behaviour differs by format.