A modern, keyboard-driven web application for practicing card counting using the Hi-Lo system. Perfect for blackjack enthusiasts looking to sharpen their counting skills or track counts during practice sessions.
- Running Count & True Count Tracking: Automatically calculates both running count and true count based on cards played
- Keyboard Shortcuts: Lightning-fast counting with intuitive keyboard controls (A, S, D, Z, Space)
- Visual Feedback: Color-coded displays showing positive (green) and negative (red) counts
- Card Distribution Visualization: Real-time progress bar showing the ratio of small, neutral, and large cards played
- Deck Configuration: Support for any number of decks (commonly 6 or 8 in casinos)
- Persistent Settings: Your deck configuration is saved locally and restored on next visit
- Undo Functionality: Easily correct mistakes with the undo feature
- Responsive Design: Works seamlessly on desktop and mobile devices
The Hi-Lo card counting system assigns values to cards:
- Small cards (2-6): +1 to the count
- Neutral cards (7-9): 0 (but tracked for true count calculation)
- Large cards (10, J, Q, K, A): -1 to the count
| Key | Action | Description |
|---|---|---|
A |
+1 Count | Press when you see small cards (2-6) |
S |
Neutral | Press when you see neutral cards (7-9) |
D |
-1 Count | Press when you see large cards (10, J, Q, K, A) |
Z |
Undo | Undo the last counting action |
Space |
Reset | Reset all counters (use when shoe is replaced) |
- Set the number of decks in the shoe (typically 6 or 8 decks in casinos)
- Start counting using the keyboard shortcuts as cards are revealed
- Track the true count which divides the running count by remaining decks
- Reset when the shoe is replaced to start a fresh count
- Node.js (v16 or higher recommended)
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/tchesa/blackjack-counter-tool.git
cd blackjack-counter-tool- Install dependencies:
npm install
# or
yarn install- Start the development server:
npm run dev
# or
yarn dev- Open your browser and navigate to
http://localhost:5173
npm run dev- Start development server with hot module replacementnpm run build- Build for production (output indist/folder)npm run lint- Run ESLint to check code qualitynpm run preview- Preview production build locally
- React 19 - UI framework
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool and dev server
- Tailwind CSS 4 - Utility-first CSS framework
- PostHog - Product analytics
Check out the live application: Blackjack Counter Tool
The true count is calculated by dividing the running count by the number of decks remaining:
True Count = Running Count / Decks Remaining
This metric is more accurate than the running count because it accounts for how many cards are left in the shoe. A true count of +2 with one deck remaining is more advantageous than a true count of +2 with five decks remaining.
This tool is for educational and practice purposes only. Card counting is a skill that requires practice and is not illegal, but casinos reserve the right to refuse service to players they suspect of counting cards. Always gamble responsibly.
This project is licensed under the MIT License - see the LICENSE file for details.
tchesa
- GitHub: @tchesa
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Made with