A focused Android inbox for your Instinct email conversation, powered directly by your Gmail account.
Download the APK · DevLog · Issues
Independent community software. You need an active Instinct email channel. This app does not create or restore an Instinct account.
- A clean, searchable chat view of the Gmail thread with drafts, replies, copy, older history, and editable voice dictation.
- Attach up to 8 files, 12 MB combined. Files remain encrypted on the phone until sent or removed.
- Image attachments appear inline in drafts and sent/received messages. Encrypted local previews are resized for chat; original files remain available in Gmail. Remote email images stay blocked.
- Reply alerts, configurable foreground and background checks, appearance choices, and a Gmail guide for preventing duplicate Gmail notifications.
- Clear delivered, failed, and unconfirmed send states. Unconfirmed email is never retried automatically.
- Local-only encrypted account settings, message cache, drafts, and pending sends.
- An optional focused WhatsApp bridge that mirrors only the exact Instinct chat name you configure and sends replies through WhatsApp's official Android notification action.
- Download the current APK from Releases.
- Open it on Android 11 or newer and allow the install prompt if Android asks.
- Open Instinct, then connect Gmail.
Release APKs retain the app identity for future upgrades. GitHub Actions artifacts are development builds and use a different signing key.
- Tap Connect my Gmail.
- Enter the Gmail address Instinct recognizes and your exact
@mail.instinct.comaddress. - Create a Google app password named Instinct, then paste its 16-character value into the app.
- Allow notifications and send a message.
Use an app password, never your regular Google password. App passwords require 2-Step Verification and may not be available for every Google account. Google's instructions
Instinct connects directly to Gmail IMAP and SMTP over TLS. It has no relay server, trackers, remote email images, cloud backup, or device transfer. Android Keystore encrypts the local connection details and cache. Disconnect clears app data. Revoke the app password in your Google Account when you are done.
This is periodic Gmail sync, not instant push. While the app is open it checks as often as every 15 seconds. Background checks run about every 15 minutes and Android battery controls may delay them. The app cannot modify Gmail notifications, labels, or read status.
The WhatsApp bridge requires Android notification access, which lets Android expose notifications from every app to Instinct. The code discards notifications unless they come from the official WhatsApp or WhatsApp Business package and exactly match the configured chat name. It stores matching text locally with encryption. WhatsApp remains the transport and source of truth. The bridge cannot import old chat history, send attachments, confirm delivery, or send when WhatsApp has not supplied a live inline-reply action. In that case, use Open Instinct in WhatsApp once and wait for the next reply. No unofficial WhatsApp login or protocol is used.
Requires Java 17+, Android SDK 36, and Node 22+ for the public DevLog.
git clone https://github.com/aribradshaw/instinct-android.git
cd instinct-android
./gradlew :app:assembleDebug :app:testDebugUnitTest :app:lintDebug
npm ci
npm run build:devlog
npm run check:publicOn Windows, use gradlew.bat. The debug APK is at app/build/outputs/apk/debug/app-debug.apk.
See CONTRIBUTING.md and SECURITY.md. The project is MIT licensed.