LeakSnipe tracks every hand you play, reads the table live while you're seated, and gives an AI coach direct query access to your own database — from your desk, or from your phone, mid-session.
Hands import the moment they're written. BetACR/ACR watch folders are auto-discovered; CoinPoker, GGPoker, PokerStars, 888poker, Ignition and ReplayPoker are supported alongside.
Every hand is indexed and searchable — by position, result, stakes, opponent, or a tag you set yourself.
Street-by-street replay with an opponent hole-card visibility toggle. Double-click any hand into its full action log.
Range Studio, Monte Carlo equity, CFR+ solves on toy subgames, and stack-depth charts from 5BB to 100BB.
Leak alerts and positional breakdowns turn "I think I'm too loose from the blinds" into an actual number.
This isn't a canned report. The coach holds direct tool-call access to your live hand history — it runs real queries against your actual database, not a cached summary written last week.
Career stats, position-scoped VPIP/PFR, and specific hands are pulled live — every answer is grounded in a query, not a guess.
Equity claims run through the actual Monte Carlo engine. No percentage reaches you without being calculated first.
A live tunnel connects the coach straight to your desktop's database — the actual table, not an export — reachable from a phone through a standard MCP connector.
Versioned migrations, a Tauri desktop shell, and a Windows overlay HUD that anchors to the table while you play. Nothing is required to leave your machine.
Every imported hand mirrors to object storage and a relational index the moment it lands — searchable by player, position, and outcome within seconds.
A direct connection from the coach to your desktop database — not a nightly export. Career stats update as fast as you can ask for them.
| Position | Hands | VPIP | PFR | AF | Fold to C-bet | WTSD | Flag |
|---|---|---|---|---|---|---|---|
| UTG | 184 | 14.1% | 11.9% | 1.4 | 51% | 24% | |
| CO | 311 | 27.3% | 19.8% | 1.6 | 44% | 29% | |
| BTN | 402 | 39.4% | 28.1% | 1.7 | 41% | 33% | |
| SB | 298 | 21.7% | 15.0% | 1.2 | 53% | 22% | |
| BB | 356 | 18.5% | 8.3% | 1.1 | 57% | 18% | Leak |
Every hand you play passes through the same pipeline before it becomes a lesson. Track puts it on record; Improve is the only stage allowed to change how you play the next one.
Hand histories import the moment your poker client writes them to disk. LeakSnipe watches your BetACR/ACR hand-history and tournament-summary folders directly — auto-discovered on first launch, no path-hunting required — and layers in CoinPoker, GGPoker, PokerStars, 888poker, Ignition, and ReplayPoker alongside.
Every hand lands in a local SQLite database behind versioned migrations, so the schema can grow without ever touching the hands you've already imported. Watching runs incrementally in the background, and re-scanning a folder never double-counts a hand you've already logged.
A hand you can't find is a hand you can't learn from. Every import is indexed on hero cards, board, result, position, table, date, and any tag you attach — so "show me every 3-bet pot I lost from the cutoff in the last two weeks" is a filter, not an afternoon.
Click a hand for its stat line. Double-click for the replayer.
The replayer walks every street in order — actions, bet sizing, pot growth — with a toggle to show or hide opponent hole cards, so you can test a read before you know if it was right.
Away from the replay, the live HUD does the same reading in real time: a Windows overlay that anchors to your BetACR tournament tables, rotates seats around you as players sit and leave, and surfaces position-scoped VPIP/PFR badges you can lock into click-through mode or drag into place once and forget.
Once a spot is isolated, LeakSnipe hands it to the theory engine. Range Studio holds a full 13×13 matrix with mixed-frequency actions, custom action colors, side-by-side range comparison, and saved charts you can reuse.
The Monte Carlo equity engine runs No-Limit Hold'em, Omaha Hi-Lo 8-or-better, seven-card stud, and stud hi-lo, with multiway pot odds and tournament ante support built in — not bolted on. A CFR+ solver handles small exact and abstracted subgames, backed by a lightweight neural value net trained on the samples it generates, and stack-depth charts run 5BB through 100BB so a push/fold decision at 12BB isn't answered with 40BB math.
This is the only stage that writes back. Leak alerts and positional summaries turn a hunch — "I think I'm too loose from the blinds" — into a number with a sample size attached, and the same classification engine that profiles your opponents runs against your own game too.
Fix the leak, and the next hand you play starts the loop over at Track.
Every answer is the output of a real function call against real data — the hand history, the equity engine, or the live desktop database itself. Nothing here is a cached write-up waiting to be recited.
Ask a question and the coach doesn't reach into a pre-written script — it reaches for a tool. get_player_stats pulls career VPIP/PFR/AF/WTSD/fold-to-cbet/3-bet straight from the database, broken out by position. search_hands and get_hand pull the exact hands behind a claim. calculate_equity runs the real Monte Carlo engine instead of estimating a percentage from memory. run_cfr_solver and predict_value reach for the solver and the neural value net for spots that need more than a hand count. web_search is there too, but only for outside strategy context — it's never asked to substitute for your own numbers.
Routine analysis — a hand review, a quick stat pull — runs through whichever provider is configured, with local Ollama models available as a no-key fallback so nothing is ever fully blocked on an API key. Provider choice is yours: Anthropic, OpenAI, Gemini, DeepSeek, or ASI:One, switchable without losing the coach's memory of you.
That memory is durable, not just conversational. Sessions carry forward per player profile, so a leak flagged last week doesn't need to be re-explained this week.
The desktop SQLite file is authoritative. Every hand it imports mirrors out to Cloudflare object storage as raw JSON and into a relational index for fast lookups by player or position — both updated the moment the hand lands, not on a nightly batch.
For anything that needs the live number, not a synced one, a bearer-token-gated tunnel connects straight to the desktop database itself, so a query run from your phone reads the same table your HUD is reading from right now.
The whole surface is exposed as a standard MCP connector — no bespoke app, no separate login. Add it once in Claude's connector settings and the coach has the same database access whether you're at your desk mid-session or asking from the rail on your phone.
The desktop database is the only copy that matters. Everything else — object storage, the relational mirror, the live tunnel — exists to make that one file reachable, never to replace it.
A Tauri application wraps a React interface around a Python analysis engine, running as a local sidecar over a REST API. Hand parsing, equity calculation, the CFR solver, and the coach's tool-calling all live in that Python layer — the desktop shell is the window onto it, not a separate implementation.
The primary live HUD runs as a separate Windows overlay — a pywin32 layer that predates the Tauri shell and remains the more battle-tested path for BetACR tournament tables. It anchors to the table window, rotates seats to keep you oriented as players join and leave, and supports a locked click-through mode alongside free dragging with persistent offsets per seat layout. A Tauri overlay exists too, but it's marked experimental on purpose — the two are never meant to run at once.
A background process watches the local database for hands that haven't left yet and pushes each one to a Cloudflare Worker the moment it's found. The worker fans that hand out three ways: the raw JSON lands in object storage, a parsed relational copy lands in a SQL mirror, and a search-oriented index entry gets written for lookup by player or position. A hand is fully synced within seconds of being imported, not batched overnight.
The MCP surface is a single Cloudflare Worker speaking the Model Context Protocol directly — no session infrastructure beyond what the protocol itself needs. It registers cleanly as a connector without requiring a real login flow, because there's exactly one user it's ever meant to serve.
The one endpoint that reaches back to the desktop is deliberately narrow: read-only, bearer-token gated, and restricted to SELECT and schema-inspection queries — nothing that touches this table can write to it. A named tunnel carries that traffic from the public connector straight to the sidecar running on the desktop, so "live" means the actual file on disk, not a copy of it.
The same six categories every serious tracker watches, scoped to the seat you were actually sitting in — because a leak invisible in the aggregate is often glaring at one specific position.
Voluntarily Put Money In Pot — how often you enter a pot by any means besides the blinds.
Too high and you're playing hands that don't belong in your range. Too low and you're leaving winnable pots on the table.
Pre-Flop Raise — how often you raise before the flop, as a subset of VPIP.
The gap between VPIP and PFR is your calling frequency. A wide gap usually means too many limps and flat-calls with hands that wanted to raise or fold.
Aggression Factor — the ratio of your bets and raises to your calls, postflop.
Low AF plays passive and predictable. Unusually high AF can mean over-bluffing a range that doesn't support it.
How often you fold to a continuation bet after calling or checking to the raiser.
Past the mid-40s%, you're profitable to bluff on any two cards.
Went To Showdown — how often a hand you saw the flop with ends at showdown.
Read alongside money won at showdown to tell a calling-station leak apart from a hand that legitimately kept improving.
How often you re-raise a raise before the flop.
Too low and opponents open-raise you profitably all day. Too high and you're one all-in away from finding out your range doesn't hold up.
Every stat above is broken out across all seven standard positions — UTG, MP, HJ, CO, BTN, SB, BB — because the same career VPIP can hide a BB that's folding far too much and a BTN that's opening far too wide. Alerts carry their own sample size, so a spike off twelve hands doesn't get flagged the same way a leak confirmed over three hundred does. The classification engine behind it — auto-typed, refinable by hand if you disagree — is the same one profiling your opponents, pointed at your own game.
| Position | Hands | VPIP | PFR | AF | Fold to C-bet | WTSD | Flag |
|---|---|---|---|---|---|---|---|
| UTG | 184 | 14.1% | 11.9% | 1.4 | 51% | 24% | |
| CO | 311 | 27.3% | 19.8% | 1.6 | 44% | 29% | |
| BTN | 402 | 39.4% | 28.1% | 1.7 | 41% | 33% | |
| SB | 298 | 21.7% | 15.0% | 1.2 | 53% | 22% | |
| BB | 356 | 18.5% | 8.3% | 1.1 | 57% | 18% | Leak |