DSH Game Center
August 23, 2026 · View on GitHub
English | 中文
Put swappable AI Agents at a real poker table inside DeepSeek Harness.
Models, personas, strategies, rules, rooms, and interfaces remain replaceable plugin capabilities.
DeepSeek Harness · Quick start · Architecture · Friend rooms
DSH Game Center is an experimental game runtime and interface built on DeepSeek Harness. Texas Hold'em is the first playable game: sit at a two-to-eight-seat table, assign a different model, character, or strategy to every Agent seat, and watch the Harness drive each decision through the same legal-action boundary.
This is an open-source Agent playground using non-cash tournament chips. It is not a real-money poker platform.
What you can do
- Play against actual Harness Agents. A language-model seat calls the selected DSH model on its turns instead of replaying a hard-coded NPC script.
- Change the player, not the game. Mix models, published character profiles, structured strategies, or a trusted solver adapter at one table.
- Run auditable poker rules. The Host owns private information, legal actions, betting, side pots, showdown, settlement, and deterministic replays.
- Bring people into the same match. An optional temporary friend room turns the current DSH process into an internet-accessible table; unused seats can still be filled by Agents.
- Extend the harness. Games, Agent catalogs, decision engines, room transport, and UI surfaces are separate plugin capabilities rather than one poker-specific monolith.
See it running
![]() |
![]() |
| The DSH Host chooses human and Agent seats. | Guests play from a mobile browser. |
Meet the table
The bundled roster is deliberately more like a familiar home game than a solver benchmark. Each character is fictional, versioned, and replaceable.
| Agent | Style | Table tell |
|---|---|---|
| A-Hui | Loose-aggressive | Opens too many pots to prove he really does have a range. |
| Mr. Wang | Polarized | Shrugs off small pots, but hates being pushed off one. |
| Zhou | Tight-passive | Can wait an hour for a hand without getting bored. |
| Xiaolin | Loose-passive | Has already called this far, so one more card feels reasonable. |
| Ajie | Tight-aggressive | Stays quiet until he finds an edge, then keeps applying pressure. |
| Xiao Gu | Balanced | Knows the charts and still overthinks the easy spots. |
Quick start
The current distribution runs from this repository checkout. The Host needs Node.js 22.19+ or 24+; local Agent play does not require cloudflared.
git clone https://github.com/lmong11/dsh-game-center.git
cd dsh-game-center
npm install --global pnpm@11.7.0
pnpm install
pnpm run build
Start a local table against Agents:
pnpm dsh --profile game-center
Open the local address printed in the terminal, enter Game Center, select Play against Agents, configure the seats, and start the table. Model-backed seats use the provider configured in DSH; structured seats can run without making a model request.
Three decision engines
| Mode | How a seat acts | Best for |
|---|---|---|
| Language model | Sends a seat-safe view and finite legal-action list to the selected DSH model. | Model behavior, persona experiments, and token-cost comparisons. |
| Structured | Uses a versioned numeric strategy and records its complete action distribution. | Fast, reproducible opponents and regression tests. |
| Solver | Calls a trusted external adapter and falls back explicitly when it is unavailable or invalid. | Bounded solver experiments without coupling one solver to the game. |
Every ordinary seat receives only its own private cards and public table state. Agents cannot see another live hand, the seed, or the undealt deck.
Why a Harness game
Poker is useful here because every decision has incomplete information, a cost, a deadline, and a measurable result. The interesting part is not only whether an Agent can play; it is whether the surrounding Harness lets you replace and compare the parts safely.
| Capability | Replaceable boundary |
|---|---|
| Game | Rules, state projections, legal actions, settlement, and replay format. |
| Agent | Identity, version, model, strategy controls, resource budget, and session history. |
| Decision source | Language model, deterministic policy, or solver adapter. |
| Room | Local durable table or optional temporary public sharing layer. |
| Interface | Lobby, roster, table, replay, and future game surfaces registered through slots. |
The Hold'em implementation is documented in @deepseek-ai/dsh-game-holdem. The broader DSH architecture is described in the development guide, architecture documentation, and Cordis paper A Programming Paradigm for Spatiotemporal Composability.
Temporary friend rooms
Install cloudflared using the official Cloudflare instructions, confirm that cloudflared --version works, and start the friend-room profile:
pnpm dsh --profile friend-room
In Game Center, select Play with friends, configure the table, and copy the invitation URL. Guests only need a phone or computer browser; they do not install DSH or create an account.
Current MVP constraints are intentional:
- The Host process, computer, and network must stay online.
- The temporary public URL changes after a restart and has no reconnection recovery.
- The Host is authoritative, so this mode is for trusted friends and non-cash chips only.
Project status
Both DeepSeek Harness and Game Center are in developer preview. Expect compatibility-breaking changes, unfinished surfaces, and intentionally narrow product limits while the plugin boundaries stabilize.
Feedback and bug reports are welcome in this repository's issues. For upstream Harness discussions, use the DeepSeek Harness community and add the dsh-plugin topic to related plugin repositories.
Contributing
See CONTRIBUTING.md. For agents working in this repository, follow AGENTS.md.
License
MIT. Third-party dependencies and their licenses are disclosed in THIRD_PARTY_NOTICES.md.

