A free, open-source to-do list app for Android. Offline, no account, no ads.
- Lists: organize tasks into color-coded lists, with an Inbox that is always there.
- Tasks: notes, due dates with optional times, priorities (low, medium, high) and subtasks.
- Reminders: notifications with Complete and Snooze buttons. They are rescheduled after a reboot.
- Recurring tasks: daily, weekly (on chosen days), monthly or yearly, every n days, weeks, months or years. Completing one creates the next.
- Search and filters: search titles and notes across all lists, and filter by status, list, priority or due date.
- Sorting: each list sorts by date created, due date, priority or title.
- Home screen widget: shows what's due today or overdue, and you can tick tasks off without opening the app.
- Themes: dark by default, with a light theme or follow-system option, and optional wallpaper colors on Android 12+.
- Private by design: everything stays on your device. There are no accounts, no network access and no tracking.
- Android 8.0 (API 26) or newer
Taskora isn't on an app store yet. To try it, build it from source.
You need:
- JDK 17 or newer
- The Android SDK with platform 36.1 (Android Studio installs it, or use
sdkmanager "platforms;android-36.1")
git clone https://github.com/JamesLunaa/taskora.git
cd taskora
./gradlew assembleDebug # APK in app/build/outputs/apk/debug/
./gradlew installDebug # install on a connected device or emulator./gradlew test # unit tests (JVM)
./gradlew connectedAndroidTest # database and repository tests (needs a device or emulator)
./gradlew lintSome phone makers freeze apps in the background and delete their scheduled alarms. When that happens, reminders never fire. On these phones Taskora shows a warning under the reminder with a Fix button that opens the app's settings. There, allow unrestricted or background battery use. Each brand names this setting differently; see dontkillmyapp.com for brand-specific steps.
For reminders to the minute, also allow Alarms & reminders when Taskora asks. Without it, Android may deliver reminders a few minutes late.
Kotlin, Jetpack Compose with Material 3, Room, Hilt, DataStore, Glance (widget) and Navigation Compose. The project uses a single :app module with an MVVM structure:
app/src/main/java/io/github/jameslunaa/taskora/
├── data/ Room database, repositories, settings storage
├── domain/ models and pure logic (recurrence, sorting, filters)
├── reminders/ alarm scheduling, notifications, receivers
├── widget/ Glance home screen widget
├── ui/ Compose screens and theme
└── di/ Hilt modules
Bug reports and pull requests are welcome. Please run ./gradlew test lint before opening a pull request.
Taskora is licensed under the Apache License 2.0. See NOTICE for attributions.
The bundled Archivo font is licensed under the SIL Open Font License 1.1.

