--- title: pokerish categories: - Games --- **pokerish** is a Texas Hold'em poker simulation: a game engine, a WebSocket server and an optional raylib table GUI in one binary. Remote clients, human players or bots, connect over WebSockets and talk JSON. ## Game modes - **Cash game** (default): 2–10 seats, empty seats filled by auto bots, busted players rebought; the game never ends. - **Tournament** (`--tournament`): sit-and-go with rising blinds, antes, a countdown and winner-takes-all elimination. ## Features - All-in-one server; `--headless` skips the GUI. - A raylib play client for humans and several reference bots, from a minimal example to a GTO bot with opponent modeling. - Human-like thinking delays with `--simulate`. - Hand history export in PokerStars format (`--export-dir hands`). - Seeded determinism for tests and experiments. ## Building It is C++17 and needs `make`, `cmake`, `libwebsockets` and the raylib platform packages. The third-party libraries are submodules: ``` $ git clone --recursive --depth 1 https://github.com/hugoocoto/pokerish $ cd pokerish $ make ``` This builds the server, the bots and the human client. It runs on Linux, macOS and Windows (MSYS2). ## Documentation | Document | Contents | |---|---| | [HOW_TO_HOST.md](https://github.com/hugoocoto/pokerish/blob/main/HOW_TO_HOST.md) | Running the server: flags, modes, tournaments | | [HOW_TO_BOT.md](https://github.com/hugoocoto/pokerish/blob/main/HOW_TO_BOT.md) | Writing a bot | | [API.md](https://github.com/hugoocoto/pokerish/blob/main/API.md) | The WebSocket/JSON protocol | ## See also - [Source code](https://github.com/hugoocoto/pokerish)