Docs
What each part of Chitti does, the permissions it asks for and why, and how to build it yourself. Everything here runs on the phone unless the Privacy page says otherwise.
What each part does
Commitments pulled out of your notifications, urgent ones first, with one-tap reply, calendar and reminder actions, and a log of what Chitti did for you.
Type or talk. Answers questions about you from facts you've saved ("what is my branch?"), sets reminders ("remind me to call mom in 30 minutes"), reports what's pending, controls the flashlight, opens apps, and answers general questions with the on-device model.
Tap the mic and speak; Chitti shows the transcript live and answers aloud.
Library holds everything Chitti found in notifications plus the facts you've taught it. From Settings you can clear any kind of stored data (or all of it) and require your fingerprint to unlock the app.
Permissions, and why
Chitti asks only for what a given feature needs. Plain-language reasons below; the exact manifest lives in the repo.
| Permission | Why Chitti asks for it |
|---|---|
| Record audio | Powers Voice and the mic button in Ask. |
| Post notifications | Lets the app notify you. |
| Notification listener | Reads incoming notifications to build the Today list — the core mechanism the app runs on. |
| Accessibility service | Performs the small set of whitelisted actions (opening an app, toggling the flashlight). |
| Read / write calendar | Turns a detected commitment into a calendar event with one tap. |
| Alarms | So a reminder fires at the exact time you asked for. |
| Send SMS | Only used if you ask Chitti to send a text as an automation action. |
| Foreground service | Keeps notification capture and voice alive reliably. |
| Receive boot completed | Restarts background listening after the phone reboots. |
| Ignore battery optimizations | Keeps the background service from being killed by the OS. |
| Internet | Only for the three network cases described on the Privacy page (sign-in, optional backup, Safe Browsing). |
Building it yourself
You'll need JDK 17 or newer, the Android SDK (compile SDK 37), and a phone on Android 8.0 (API 26) or later — plus Android Gradle Plugin 9.4, Kotlin 2.4 and Jetpack Compose. Clone the repo, create a local.properties with your SDK path and Firebase config (Firebase keys are optional in debug — a "skip" sign-in option appears without them), optionally push the Gemma model to the device, then run ./gradlew :app:installDebug. The Gemma model (gemma-1.1-2b-it-cpu-int4.bin, available from Kaggle) is optional; without it, Chitti falls back to a rule-based extraction engine.