Tsuzuku means "to continue" or "to keep going".
A private, offline-first Android habit tracker, focus timer, and minimal launcher built with Kotlin, Jetpack Compose, Material 3, Room, and DataStore.
| Area | What Tsuzuku does |
|---|---|
| π― Habit tracking | Create habits, add descriptions, pick icons/colors, check in daily, and review active or managed habits. |
| π₯ Streak engine | Calculates current streaks, best streaks, total completions, and retroactive check-ins from local logs. |
| π Insights | Shows global habit stats, consistency score, weekly activity, top habits, yearly heatmaps, and per-habit calendars. |
| π§ Focus mode | Runs timed focus sessions, tracks completed/failed sessions, monitors phone pickup events, supports allowed mistakes, and can use Do Not Disturb. |
| π Minimal launcher | Optional HOME launcher mode with a clock, quotes, widgets, Phone access, Camera shortcut, and a limited allowed-app list. |
| π Reminders | Local Android reminders with configurable reminder time and notification permission handling on Android 13+. |
| π¬ Motivation | Bundled bilingual quotes and mantras, available offline in the app and launcher. |
| π Privacy | Habit names/descriptions are encrypted before storage, and core habit/focus data stays on the device. |
| π¦ Portability | JSON backup and restore for habits, logs, and focus sessions from the Settings screen. |
| π¨ Personalization | Material 3 themes, custom accent color support, launcher widgets, and focus-environment options. |
Tsuzuku is growing as a focused productivity ecosystem, not just a habit checklist. The goal is to keep the app calm, private, and useful across the full loop of building habits, protecting attention, and reviewing progress.
| Milestone | Status | Direction |
|---|---|---|
| π± Tsuzuku Habits | β Done | Core habit creation, daily check-ins, streak tracking, local reminders, insights, and backup/restore. |
| π§ Tsuzuku Focus | β Done | Timed focus sessions with progress tracking, phone-pickup discipline, focus history, and distraction controls. |
| π Tsuzuku Launcher | β Done | A minimal Android launcher that keeps essential apps available while reducing distractions. |
| π§© Tsuzuku Widgets | β In Progress | Lightweight home/launcher widgets for habits, streaks, focus sessions, quotes, and quick check-ins. |
| π€ Tsuzuku AI Integration | ποΈ Planned | Optional assistance for habit ideas, reflection prompts, summaries, and productivity guidance with privacy-first defaults. |
| β¨ More soon | π Upcoming | More refinements based on real use, feedback, accessibility, and long-term habit-building needs. |
Future work will continue to follow three principles:
- π Privacy first: user data should stay local unless a feature clearly asks for permission.
- π§ Focus over noise: every feature should help users act, reflect, or continue.
- π οΈ User control: backups, AI features, launcher behavior, reminders, and widgets should remain configurable.
Download the latest signed APK from the Releases page.
Development builds from the dev branch are published as debug artifacts by GitHub Actions.
- π» Kotlin and Jetpack Compose
- π¨ Material Design 3
- ποΈ Room for local habit and focus-session storage
- βοΈ AndroidX DataStore for launcher preferences
- π AlarmManager and BroadcastReceiver for local reminders
- β±οΈ Foreground service for active focus sessions
- π¦ Moshi for JSON import/export
- π§ͺ Robolectric and Roborazzi for JVM and visual tests
- π GitHub Actions for debug/release APK builds and releases
Current Android configuration:
| Property | Value |
|---|---|
| Application ID | com.agupta07505.tsuzuku |
| Version | 2.0 |
| Min SDK | 24 |
| Target SDK | 36 |
| Compile SDK | 36.1 |
| Java target | 11 |
- JDK 17
- Android Studio Ladybug or later
- Android SDK matching the project compile SDK
git clone https://github.com/agupta07505/Tsuzuku.git
cd Tsuzuku
./gradlew assembleDebugOn Windows PowerShell:
.\gradlew.bat assembleDebugThe debug APK is generated at:
app/build/outputs/apk/debug/app-debug.apk
Run unit tests:
./gradlew testDebugUnitTestTsuzuku/
|-- app/src/main/java/com/agupta07505/tsuzuku/
| |-- MainActivity.kt # Main Compose app and tab routing
| |-- LauncherActivity.kt # Optional Android HOME launcher entry
| |-- data/ # Room entities, DAOs, repositories, quotes
| |-- focus/ # Focus runtime manager and foreground service
| |-- launcher/ # Launcher preferences, models, and view model
| |-- notification/ # Local reminder receiver and helper
| |-- security/ # Local encryption helpers
| |-- ui/
| | |-- components/ # Reusable Compose components
| | |-- screens/ # Tracker, habits, stats, focus, launcher, settings
| | `-- theme/ # Material 3 theme and palettes
| `-- util/ # Date and streak helpers
|-- assets/
| |-- screenshots/ # README and listing screenshots
| `-- icons/ # Branding assets
|-- .github/
| |-- ISSUE_TEMPLATE/ # Bug, feature, and feedback templates
| |-- workflows/android.yml # APK build and release workflow
| `-- PULL_REQUEST_TEMPLATE.md
Tsuzuku is designed around local-first use:
- ποΈ Habit and focus data is stored in the app's local Room database.
- π Habit names and descriptions are encrypted before being written to storage.
- π Reminders are scheduled locally through Android system APIs.
- π¦ JSON backup and restore is user-initiated from local files.
- βοΈ The app does not need a cloud account for core habit, focus, or launcher features.
- π« Release signing files, local Gradle properties, generated APKs, personal backups, and other private developer files should never be committed.
Some dependencies for networking or Firebase AI are present in the Gradle catalog for future or optional work, but the current habit tracker and focus workflows are built to function offline.
Contributions are welcome. Start with the Contributing Guide, then use the relevant template:
- π Report a bug
- π‘ Request a feature
- β Share feedback
- π Security policy
- π Code of conduct
Tsuzuku is licensed under the MIT License.
Made with β€οΈ by Animesh Gupta.












