Skip to content

Repository files navigation

Tsuzuku logo

Tsuzuku 🌿

Tsuzuku means "to continue" or "to keep going".

Latest release Total GitHub release downloads Build status License Issues

A private, offline-first Android habit tracker, focus timer, and minimal launcher built with Kotlin, Jetpack Compose, Material 3, Room, and DataStore.


πŸ“Έ Preview

Home dashboard Habits screen Tsuzuku launcher Launcher activation screen Launcher allowed apps Launcher focus settings Focus mode Insights overview Insights heatmap Settings screen Settings customization About screen About and links screen


✨ Features

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.

πŸš€ Future Roadmap

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

Download the latest signed APK from the Releases page.

Development builds from the dev branch are published as debug artifacts by GitHub Actions.


πŸ› οΈ Tech Stack

  • πŸ’» 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

🧱 Build From Source

Prerequisites

  • JDK 17
  • Android Studio Ladybug or later
  • Android SDK matching the project compile SDK

Commands

git clone https://github.com/agupta07505/Tsuzuku.git
cd Tsuzuku
./gradlew assembleDebug

On Windows PowerShell:

.\gradlew.bat assembleDebug

The debug APK is generated at:

app/build/outputs/apk/debug/app-debug.apk

Run unit tests:

./gradlew testDebugUnitTest

πŸ—‚οΈ Project Structure

Tsuzuku/
|-- 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

πŸ”’ Privacy Model

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.


🀝 Contributing

Contributions are welcome. Start with the Contributing Guide, then use the relevant template:


πŸ“„ License

Tsuzuku is licensed under the MIT License.

Made with ❀️ by Animesh Gupta.

About

A private, offline-first Android habit tracker, focus timer, and minimal launcher built with Kotlin, Jetpack Compose, Material 3, Room, and DataStore.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

18 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages