pokerth is a free, open source gaming project written in C++ and released under AGPL-3.0. It has 655 GitHub stars, 252 forks and 4 open issues, and was last pushed 2 days ago. On this registry it ranks #12 of 12 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is pokerth?

PokerTH is an open-source Texas Hold'em poker game and engine written in C++ with Qt, for players who want to play against computer opponents or against other people over the internet, and for hosts who want to run the multiplayer server themselves.

What it is

PokerTH is a poker game written in C++ with Qt, published on GitHub under the AGPL-3.0 licence and filed in this registry under Miscellaneous / Gaming. The project has existed since 2006, carries 655 stars, 252 forks and 4 open issues, and its latest release is 2.1.9. It implements the popular Texas Hold'em variant for 2 to 10 players: a single player can face up to nine computer opponents, or real people can meet on the official server at pokerth.net, or on any dedicated server the host runs. The README is explicit that the game carries no ads, no real-money gambling and no tracking, with the project homepage and forum at pokerth.net serving as the community hub.

The concrete problem it addresses is multiplayer card play that does not depend on a commercial, advertising-funded or gambling platform. Players who want private tables host their own pokerth_dedicated_server binary, and anyone willing to run the heavier pokerth_official_server gets the user database that pokerth.net itself uses. Internally the repository builds two desktop clients that speak the same protocol and share the whole engine, networking and database layer below the GUI. The current client is pokerth_qml-client, a Qt Quick / QML application in src/gui/qt6-qml that scales from phone to desktop across all platforms; the classic pokerth_client in src/gui/qt is built on Qt Widgets, and 2.1.9 is its final release. In that sense the QML client supersedes the long-standing Widgets client while the engine underneath remains shared.

Key capabilities

  • Texas Hold'em for 2–10 players, played single player against bots, over a local network, or over the internet.
  • Tournament-style games with start money, blind levels raised by hand count or by minutes, manual blind orders, action timeouts and configurable GUI speed.
  • Public, registered-only, invite-only and ranking games, each with optional spectators.
  • A lobby containing the player list, the game list, chat, emoji reactions and private messages that persist per account.
  • Opt-in chat translation on demand, documented in docs/third_party_services.md.
  • Appearance options: 20 table themes, 11 card decks, several card backsides, and theme import/export as ZIP archives.
  • 29 languages with the full UI translated, on Linux, Windows, macOS, Android and iOS.
  • Two server binaries: pokerth_dedicated_server for anybody who wants to host games, and pokerth_official_server, which adds the user database used by pokerth.net.

Who uses it and how

  • Solo players run Texas Hold'em against up to nine bots locally, with no account, server or network connection required.
  • Friend groups and clubs that need private tables use invite-only or registered-only games on a self-run pokerth_dedicated_server, and can allow observers as spectators.
  • Community hosts running public or ranking games deploy pokerth_official_server so that accounts and private messages persist in a user database rather than living only in the lobby session.
  • Desktop users install ready-made packages: Flatpak net.pokerth.PokerTH, Snap pokerth, AppImage, .deb or portable ZIP on Linux; an installer on Windows that contains both clients; a DMG on macOS that also contains both clients.
  • Android users install the APK from the PokerTH F-Droid repository at https://www.pokerth.net/fdroid/repo.
  • Release engineering runs through reproducible Docker images and GitHub Actions workflows rather than by hand, for example the MinGW cross build in docker/windows.

Getting started

Ready-made packages for every platform are linked from pokerth.net/download, including Flatpak net.pokerth.PokerTH, Snap pokerth, AppImage, .deb and portable ZIP on Linux, an installer for Windows, a DMG for macOS and an Android APK from the F-Droid repo. To build from source, configure with CMake in Release mode using Ninja, build the required target, then run sudo cmake --install ./build, or run bash clean_build.sh first for a clean build that places the test certificate and data directory inside build/.

How it compares

No other poker or card-game project is named in the facts supplied for this page, and no list of paid products that PokerTH replaces was provided, so it stands alone in this registry on that evidence. The distinguishing points that can be stated are its own: AGPL-3.0 licensing, an engine that runs fully offline against bots, and a server binary that a host can operate instead of depending on a single official service.

When to use it — and when not to

A self-hoster must operate the pokerth_dedicated_server or pokerth_official_server binary and its account database, and anyone building from source needs to supply Qt 6.7.0 or newer (6.9.2 LTS recommended), Boost 1.83 or newer with thread, filesystem, date_time, program_options, iostreams, asio, regex, random and uuid, Protocol Buffers 2.3.0 or newer with protoc at build time and libprotobuf at runtime, OpenSSL, CMake 3.15 or newer and a C++23 compiler. Players who want a commercial client with official tournament circuits or real-money play should not pick this, because the README states there is no real-money gambling and no advertising. Anyone expecting the classic Qt Widgets desktop interface to keep receiving features should also look elsewhere, since 2.1.9 is its final release, and iOS users must build from source via build_ios_qml.sh because there is no App Store build yet.

project readme (upstream, from github) — read inline

PokerTH

The open source Texas Hold'em engine — play against the computer or against other people over the internet.

License: AGPL v3 Release Qt C++

Website & Forum · Download · Issues · ChangeLog


About

PokerTH is a poker game written in C++ with Qt. You can play the popular Texas Hold'em poker variant against up to nine computer opponents or against real people on the internet — on the official server at pokerth.net, or on any dedicated server you run yourself.

The project has been around since 2006, is licensed under the AGPLv3, and carries no ads, no real-money gambling and no tracking.

Features

  • Texas Hold'em, 2–10 players — single player against bots, local network or internet play
  • Tournament-style games — start money, blind levels raised by hand count or by minutes, manual blind orders, action timeouts and configurable GUI speed
  • Public, registered-only, invite-only and ranking games, with optional spectators
  • Lobby with player list, game list, chat, emoji reactions and private messages that persist per account
  • Chat translation on demand (opt-in, see docs/third_party_services.md)
  • Looks — 20 table themes, 11 card decks, several card backsides, import/export of themes as ZIP
  • 29 languages, with the full UI translated
  • Cross platform — Linux, Windows, macOS, Android and iOS
  • Own server — a dedicated server binary you can run anywhere (docs/server_setup_howto.txt)

Download

The ready-made packages for every platform are linked from pokerth.net/download. Depending on your system:

Platform Package
Linux Flatpak (net.pokerth.PokerTH), Snap (pokerth), AppImage, .deb, portable ZIP
Windows Installer (contains both clients)
macOS DMG (contains both clients)
Android APK from the PokerTH F-Droid repo: https://www.pokerth.net/fdroid/repo
iOS see build_ios_qml.sh — no App Store build yet

The two clients

This repository builds two desktop clients that speak the same protocol and share the whole engine, networking and database layer below the GUI:

Target GUI Status
pokerth_qml-client Qt Quick / QML (src/gui/qt6-qml) current client, all platforms, scales from phone to desktop
pokerth_client Qt Widgets (src/gui/qt) the classic desktop client; 2.1.9 is its final release

Server side there are two server binaries: pokerth_dedicated_server for everybody who wants to host games, and pokerth_official_server, which adds the user database used by pokerth.net.

Building from source

Requirements

  • Qt ≥ 6.7.0 (6.9.2 LTS recommended)
  • Boost ≥ 1.83 — thread, filesystem, date_time, program_options, iostreams, asio, regex, random, uuid
  • Protocol Buffers ≥ 2.3.0 (protoc at build time, libprotobuf at runtime)
  • OpenSSL
  • CMake ≥ 3.15, a C++23 compiler, Ninja recommended

Linux

cmake -DCMAKE_BUILD_TYPE=Release -S . -B ./build -G Ninja
cmake --build ./build --config Release --target all
sudo cmake --install ./build

Individual targets instead of all: pokerth_qml-client, pokerth_client, pokerth_dedicated_server, pokerth_official_server, pokerth_chatcleaner.

For a clean build including the test certificate and the data directory inside build/, run bash clean_build.sh first. See INSTALL for details.

Other platforms

The release builds are reproducible through Docker images and GitHub Actions workflows rather than by hand:

Platform Where
Windows docker/windows (MinGW cross build)
Android docker/android, build_android_qml.sh
macOS / iOS build_macos_combined.sh, build_ios_qml.sh
AppImage / deb / ZIP / Snap / Flatpak docker/linux

Every one of these also exists as a manually triggered workflow in .github/workflows.

Repository layout

Path Contents
src/engine poker engine — hands, betting rounds, bot logic (local and network variant)
src/net client and server networking (Boost.Asio, TLS, WebSocket for the browser client)
src/db, src/dbofficial server database interface and the asynchronous MySQL backend of the official server
src/gui/qt Qt Widgets client
src/gui/qt6-qml QML client (pages/, components/, C++ backend in cpp/, translations in i18n/)
src/core, src/config logging, crypto, avatar handling, configuration files
src/chatcleaner chat filter service used by the official server
pokerth.proto the network protocol — the single source of truth for client and server
data graphics, sounds, fonts, themes, card decks
docs server setup, styling howto, keyboard shortcuts, third-party services
tools, preview server log analysis, screenshot and theme preview automation
tests protocol test suite (Java) driving a running server

Running a dedicated server

cmake --build ./build --target pokerth_dedicated_server
./build/bin/pokerth_dedicated_server

The server reads its settings from the PokerTH config file and writes its log next to it. The complete walkthrough — ports, firewall, TLS certificate, server list entry — is in docs/server_setup_howto.txt.

Helper tools around the server:

  • pokerth_bot — headless client for load and protocol tests
  • pokerth_globalnotice — sends a notice to everyone on a server
  • tools/analyze_server_log.py — renders a server log as SVG

Themes and styles

Game table, card deck and card back are three separate style categories, and all of them are pure data — an XML file plus its graphics, no code. The QML client ships 20 table themes, 11 card decks and 16 card backs in data/gfx/qml; the Qt Widgets client has its own sets in data/gfx/gui and data/gfx/cards.

In the QML client "Settings" → "Style" lists the installed styles with their preview, imports a new one from a ZIP archive and exports any of them back into one. An imported style is copied into the user data directory and therefore survives an update.

Building your own is described in docs/gui_styling_howto.txt — the XML tags, the sizes and naming conventions of the graphics, how to test a style and how to get it into the style gallery on pokerth.net.

Translations

The UI is available in 29 languages. Translations live in src/gui/qt6-qml/i18n for the QML client and in ts for the Qt Widgets client, as standard Qt .ts files that can be edited with Qt Linguist. New or corrected translations are very welcome as pull requests.

Contributing

Bug reports and feature requests belong in the issue tracker; questions and discussion are best placed in the forum.

For pull requests:

  • Base your work on the stable branch.
  • Keep the existing code style — bash run_astyle.sh formats C++ sources.
  • Any change to the network protocol means touching pokerth.proto, and client and server have to stay compatible with the released versions.
  • New user-visible strings need to be added to the translation files as well.

License

PokerTH is free software, licensed under the GNU Affero General Public License version 3 or later — see COPYING. An additional permission under section 7 allows linking against OpenSSL.

The artwork, sounds and fonts shipped in data have their own, partly different licenses and authors; they are listed in [data/data-copyright

readme truncated — read the full docs on github

Frequently asked questions

Is pokerth free to use?

pokerth is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pokerth do?

PokerTH is a poker game written in C++/Qt.

What is pokerth written in?

pokerth is primarily written in C++. Its source is publicly available at https://github.com/pokerth/pokerth, and it has 655 GitHub stars.