CHALK is an unofficial companion Android app for Pokémon Champions (ranked doubles / mobile VGC). While you play, it reads the battle screen with on-device OCR and automatically logs every ranked match — no manual entry — then turns your history into stats you can actually use.
Everything runs locally on your phone. Match parsing, storage, and stats never leave the device; the only network traffic is fetching Pokémon sprite images.
- Automatic match logging — result, your team, the opponent's revealed Pokémon, moves, items, and abilities, detected live from the battle screen.
- Per-team stats — win rates, lead pairings, Pokémon usage, and matchup trends for each team you run.
- Team import — set up your team from two in-game team-sheet screenshots or a Poképaste link, with Regulation legality checking.
- Live damage calculator — open a page on your computer (same Wi-Fi) that fills itself in as the battle happens: HP, boosts, items, abilities, and forms.
- Export — take your match data with you as CSV or spreadsheet-ready rows.
- Grab
chalk-v1.0.apkfrom the latest release. - Open it on your phone and allow installing from your browser/file manager when Android asks ("Install unknown apps").
- Requires Android 10 (API 29) or newer.
A Google Play listing is in progress.
Because the APK is installed outside an app store, Android locks the optional Usage access permission behind "Restricted settings" — the toggle appears greyed out with an "App was denied access" dialog. This permission is optional (it only lets CHALK auto-detect when Pokémon Champions opens); you can skip it and start the Live Tracker manually. To unlock it anyway:
- Go to Settings → Apps → CHALK (long-press the app icon → App info works too).
- Tap the ⋮ three-dot menu in the top-right corner of the App info screen.
- Tap "Allow restricted settings" and confirm (it may ask for your fingerprint/PIN).
- Go back to the Usage access screen (or tap Grant access in CHALK again) — the "Permit access to app usage data" toggle will now be enabled and you can turn it on.
If "Allow restricted settings" doesn't appear in the menu, try flipping the Usage access toggle once first (triggering the denial dialog), then check App info again.
git clone https://github.com/nimnim111/chalk.git
cd chalk
./gradlew assembleDebug
# APK: app/build/outputs/apk/debug/app-debug.apkOr open the project in Android Studio and hit Run. Release builds are signed via a local keystore.properties (not in the repo); without it, use the debug build.
| Permission | Why |
|---|---|
| Screen capture (MediaProjection) | Reads battle text while tracking is on. Frames are processed in memory, never stored or uploaded. |
| Usage access (optional) | Notices when Pokémon Champions opens so CHALK can offer to start tracking. |
| Camera (optional) | Photographing team sheets during import. |
See PRIVACY.md for the full privacy policy.
- Kotlin, Jetpack Compose + Material 3, Room, ML Kit text recognition, NanoHTTPD (live calc server).
./gradlew testDebugUnitTestruns the unit tests.- Docs: docs/OCR_ROADMAP.md, docs/PRODUCTION_ROADMAP.md, design reference in docs/DESIGN_HANDOFF.md, release runbook in SHIP.md.
CHALK is a fan-made tool. It is not affiliated with, endorsed, or sponsored by Nintendo, The Pokémon Company, or Game Freak. Pokémon names are trademarks of their respective owners.