A focused, offline CrossFit and functional-fitness timer for Android.
WOD Timer is a local Android timer for CrossFit and functional-fitness workouts. It supports For Time, AMRAP, Every-X-Minutes, and work/rest intervals, with reusable presets.
| Quick start and presets | Active workout |
![]() |
![]() |
- For Time with an optional time cap, AMRAP, Every X Minutes, and work/rest intervals
- Reusable presets with backup and restore
- Sound and vibration cues
- Pause, resume, reset, and background timing
- Automatic immersive landscape timer with a larger clock
- Automatic light and dark themes
- Fully offline operation with no accounts, ads, analytics, or network permission
Open the project in Android Studio, let Gradle sync, and run the app configuration on an Android 8.0/API 26 or newer device or emulator.
To verify the project from a terminal:
./gradlew testDebugUnitTest lintDebug assembleDebugTiming logic uses Android's monotonic clock and should be tested with explicit timestamps rather than real-time waits. When changing the Room database, increment its version, add a migration, and commit the updated schema from app/schemas.
- Kotlin and Jetpack Compose with Material 3
- Room/SQLite local preset persistence
- Coroutines and StateFlow
- Foreground service for active workouts
- Custom PCM workout cues through Android
AudioTrack
The app does not request internet access. Presets remain on the device and no usage data is collected.
Download the signed APK from GitHub Releases. Android may ask you to allow installation from your browser or file manager.
WOD Timer is available under the MIT License.

