Find the fastest Stake.com mirror site + optimal NordVPN region for lowest latency. CLI tool with desktop GUI.
- 16 Stake mirrors tested concurrently (TCP + HTTPS + DNS)
- GeoIP lookup β see where each mirror's server is located
- NordVPN recommendations β best EU server city per mirror
- Stake API integration β GraphQL latency via
curl_cffi(Chrome TLS fingerprint bypasses Cloudflare) - Live dashboard β real-time auto-refreshing terminal UI with
rich.live - History tracking β SQLite-based latency history with uptime stats
- Rich CLI β color-coded sorted table, fastest on top
- Export β save results to JSON or CSV
- Desktop GUI β Electron-based cross-platform desktop application
# Activate venv
source .venv/bin/activate
# Basic ping test (no API key needed)
python -m src.main
# With API latency tests
cp .env.example .env # add your STAKE_SESSION_TOKEN
python -m src.main --api
# With $0 Dice bet latency benchmark
python -m src.main --api --benchmark-bets
# Export results
python -m src.main --export json
python -m src.main --export csv
# Live dashboard (refresh every 30s)
python -m src.main --live 30
# Live dashboard with API tests
python -m src.main --live 30 --api --skip-vpn
# View uptime history stats
python -m src.main --history
# Skip NordVPN / GeoIP
python -m src.main --skip-vpn --skip-geoip
# Custom rounds and timeout
python -m src.main --rounds 5 --timeout 15# Development mode
cd gui
npm install
npm start
# Production build (creates installers in gui/dist/)
npm run build:mac # macOS
npm run build:win # Windows
npm run build:linux # Linux-
Open Stake.com in your browser
-
Open DevTools (F12) β Application β Cookies
-
Copy the
sessioncookie value -
Create
.envfile:STAKE_SESSION_TOKEN=your_session_token_here -
Run with
--apiflag
| Flag | Description |
|---|---|
--config FILE |
Custom config file (default: config.yaml) |
--rounds N |
Number of ping rounds (default: 3) |
--timeout N |
Timeout in seconds (default: 10) |
--api |
Enable Stake API latency tests |
--benchmark-bets |
Enable $0 Dice bet latency test |
--skip-geoip |
Skip GeoIP lookups |
--skip-vpn |
Skip NordVPN recommendations |
--export json/csv |
Export results to file |
--output-dir DIR |
Output directory (default: results/) |
--live SECONDS |
Live dashboard with auto-refresh |
--watch SECONDS |
Legacy continuous monitoring |
--history |
Show uptime stats from history.db |
--no-history |
Don't save results to history.db |
βββββ¬βββββββββββββββ¬βββββββββ¬ββββββββββββββββββ¬βββββββββββββββββββ¬βββββββββ¬βββββββββ¬βββββββββ¬ββββββββ
β # β Mirror β Status β IP β Location β TCP β HTTPS β API β Best β
βββββΌβββββββββββββββΌβββββββββΌββββββββββββββββββΌβββββββββββββββββββΌβββββββββΌβββββββββΌβββββββββΌββββββββ€
β 1 β stake.bet π β β UP β 104.22.10.123 β London, UK β 12.3ms β 45.6ms β 89.1ms β 12.3msβ
β 2 β stake.ac π β β UP β 172.67.182.45 β Amsterdam, NL β 18.7ms β 52.3ms β 95.4ms β 18.7msβ
β ... β
βββββ΄βββββββββββββββ΄βββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββ΄βββββββββ΄βββββββββ΄βββββββββ΄ββββββββ
π FASTEST MIRROR: stake.bet β 12.3ms
π― RECOMMENDED: NordVPN β London, UK β stake.bet (Est. 27.3ms)
Edit config.yaml to add/remove mirrors, change settings, or modify NordVPN target regions.
- Python 3.12+ with asyncio
- Pydantic v2 (data validation and serialization)
- curl_cffi (Chrome TLS fingerprint β bypasses Cloudflare)
- aiohttp + aiodns (async HTTP/DNS)
- rich (beautiful CLI output + live dashboard)
- SQLite (history tracking)
- PyYAML + python-dotenv (config)
- Electron + Node.js (desktop GUI)
- electron-builder (cross-platform packaging)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Desktop GUI (Electron) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Mirrors Tab β β Dashboard β β History Tab β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β JSON-RPC
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Python API Bridge (src/core/api.py) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Core API (src/core/__init__.py) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β OrchestratorConfig | run_scan() | ScanResult β β
β β Serializers (Pydantic) | HistoryDB β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Core Services β
β βββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Pinger β β GeoIP β β Stake β β NordVPN β β
β βββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Codex CLI can use the repo root AGENTS.md and the tracked .codex/config.toml defaults in this workspace.