Cross-platform 9-Ball scorekeeper
A Flutter/Dart casual match scorekeeper for 9-Ball with innings tracking, break tracking, undo support, and an AI trash talk generator powered by the Claude API.
Keeping score during a casual billiards match means someone has to remember the count, or use a phone app that wasn't designed for pool. Most score apps are generic.
A minimal, tap-to-score interface designed for billiards โ split screen for two players, tap to score, long press to undo, track innings and who broke. The AI trash talk generator adds personality at match end.

Enter player names and race length before the match โ defaults to Race to 7

Tap to score, hold to undo, track innings and break โ Allen leading 6-3

AI-generated billiards trash talk from Claude at match completion
Cross-platform โ one codebase for iOS, Android, and Windows
Flutter's language โ familiar from company Shell App work
AI trash talk generator at match completion
API key management via .env file
Intentionally minimal โ no accounts, no cloud, no history. Just score the match.
Soft lock after match complete โ tapping after winner declared does nothing
Long press to undo โ prevents accidental score increments
Race length as number input (1-20) not dropdown โ handicapped races vary
AI trash talk prompt instructs Claude to be billiards-specific and keep it light