← Back to home
TypeAura ("we", "our", or "us") is an AI-powered Android keyboard developed by Himanshu Kashyap. This Privacy Policy explains exactly what data the app collects, how it is used, and your rights. By installing and using TypeAura, you agree to this policy.
1. Data We Collect
- Anonymous Device ID — a randomly generated UUID (version 4) created on first install. It is not linked to your name, phone number, email, Google account, Google Play profile, or advertising ID.
- Usage Events — events such as "keyboard_opened", "ai_used", "voice_ai", "theme_changed". No text you type is ever included in these events.
- Device Info — device manufacturer, model name, and Android version. Used only to understand which devices TypeAura runs on.
- Install & Last-use Timestamps — used to calculate usage streaks shown inside the app.
- Plan tier & AI usage counters — which plan you are on (Free, Pro or Max) and the number of AI tokens your requests consumed, counted per day and in total. These are numeric counters used to apply daily usage limits and to show your usage inside the app. They never contain the text you sent.
- Crash Reports — if the app crashes or encounters an error, we collect: the anonymous device ID, app version, error type, first line of the error message, a truncated stack trace (max 8 KB), and whether the error was fatal. This is sent automatically to help us fix bugs. No personally identifiable text is included.
- Hashed device identifier (for purchase restore) — we send a one-way hash (SHA-256) of your device's Android ID. The raw Android ID never leaves your device. This lets us restore a Premium purchase to the same physical device if you reinstall the app, without you having to pay again. It is not linked to your name, phone number, email, or advertising ID.
2. AI Features — Exactly What Text Is Sent
Every AI feature in TypeAura is user-initiated: text leaves your device only when you explicitly tap an AI action. In each case the text is sent over HTTPS to our backend server (typeaurabackend.vercel.app), which forwards it to Groq (our AI provider) for processing and returns the result immediately. This text is never stored on our servers.
These are all of the features that send text for AI processing:
- Translate (keyboard) — the text currently in the input field.
- Clipboard Translate — only the copied text you explicitly choose to translate.
- Voice input — the transcribed text alternatives produced on your device (see section 5). Your audio is never sent to us.
- Floating Lens — Translate — the on-screen text you tap, up to 600 characters.
- Floating Lens — Reply — the tapped text plus a small amount of surrounding chat context (up to 2 nearby messages), used to generate 3 short reply suggestions. See section 4 for exactly what this context is.
- AI Chat — the messages you type in the chat screen, together with up to the last 10 turns of that same conversation so the AI can follow up correctly.
- Smart Reply — the incoming message you paste or type in.
- Email Composer — the subject and points you enter for the draft.
- Tone Changer — the text you enter and the tone you select.
- Live Translate — the text you enter or speak for translation.
- Text tools — the text you enter for the tool you select.
Your AI Chat conversations are saved locally on your device only, in TypeAura's private app storage, so you can resume them. They are not uploaded to our servers and are deleted when you delete the conversation or uninstall the app.
Nothing else you type is transmitted. The keyboard does not log or upload keystrokes, passwords, OTPs, or your messages in the background. Text is sent only for the actions listed above, only when you tap them.
3. Crash Reporting
TypeAura includes an automatic crash reporter that captures unhandled errors so we can identify and fix bugs. When a crash or error occurs, the following is collected and sent to our backend (typeaurabackend.vercel.app/api/crash):
- Anonymous device ID — same UUID used for analytics
- App version — version number and build number (e.g. 2.0.10+11)
- App mode — whether the error occurred in the keyboard or the main app
- Error type — category: flutter_error, platform_error, or zone_error
- Error message — first line of the exception only
- Stack trace — truncated to 8 KB; contains code file paths and line numbers, not user data
- Timestamp — UTC time of the crash
- Fatal flag — whether the error caused the app to stop
Crash reports are queued locally and sent when internet is available. Up to 50 reports are kept locally at a time. No user text, keystrokes, clipboard contents, or personal information is ever included in crash reports.
4. Accessibility Service (Floating Lens)
TypeAura includes an optional Floating Lens feature — a draggable overlay that lets you translate on-screen text in any app. When you enable this feature, the app registers an Android Accessibility Service (BIND_ACCESSIBILITY_SERVICE) for two purposes:
- Reading text: When you tap the lens over text, the Accessibility Service reads the on-screen text at that position and sends it for translation. This text is never stored.
- Reading nearby context (Reply feature only): If you tap Reply to generate reply suggestions, the service additionally reads up to 2 messages displayed immediately above the one you tapped (each truncated to 300 characters), so the AI can understand the conversation it is replying to. For each of those messages it also makes a rough guess of who sent it, based purely on where the message sits on screen (left- vs right-aligned) — it does not read contact names, phone numbers, or profile information. This context is sent with your request, used to generate the suggestions, and never stored. It is read only at the moment you tap Reply, and not at all if you only use Translate.
- Inserting text: When you select a reply suggestion from the Floating Lens popup, the Accessibility Service inserts the chosen reply directly into the currently focused input field of the active app (e.g. WhatsApp, Gmail). If no input field is focused, the reply is copied to your clipboard instead. The reply text is not sent to our servers during insertion.
The service never acts on its own. It cannot and does not autonomously decide, plan, or perform actions in other apps. It performs exactly one action, exactly once, in direct response to you tapping a specific suggestion: writing that text into the field you already have focused. It does not tap buttons, navigate apps, send messages, or take any step you did not explicitly choose.
Strict privacy safeguards built into the code:
- Password fields are explicitly skipped. Our text-extraction code checks
node.isPassword on every UI element and immediately returns null for any password input. Passwords are never read, even if the lens overlaps them.
- Editable input fields (EditText) are explicitly skipped. The lens never reads text you are actively typing into — including banking fields, search bars, OTP boxes, or chat composers. Only displayed/static message text is eligible for translation.
- No event-driven monitoring. Although the service technically receives Android accessibility events (required by the OS to maintain window-content access), our
onAccessibilityEvent() implementation is intentionally empty — every event is discarded immediately. We never listen to typing, focus changes, scrolls, or notifications in the background.
- On-demand only. Window content is queried only when you explicitly tap the Floating Lens — never automatically, never on a timer, never in response to any system event.
- No keystroke logging. The service does not, and cannot, capture what you type — including in our own keyboard.
- No data collection without your action. Disabling the lens stops the service entirely. No background process, no scheduled tasks.
This feature is entirely optional. If you do not enable the Floating Lens, the Accessibility Service is never activated.
Compliance: This use of the Android Accessibility API is disclosed prominently to users during onboarding and requires explicit opt-in via Android Settings. It is used solely to deliver the on-demand text translation and reply features described above, in accordance with Google Play's Accessibility API policy, which requires that accessibility services are used only for the purpose users expect. You can disable the service anytime from Android Settings → Accessibility → TypeAura.
5. Microphone / Voice AI
Voice input works in two steps:
- Audio → Text (on device): While you hold the mic button, Android's built-in
SpeechRecognizer API listens and converts your speech into multiple text alternatives ranked by confidence. We never receive, record, or store your audio.
- Text → Translation (via Groq AI): The transcribed text alternatives are sent over HTTPS to our backend (
typeaurabackend.vercel.app/api/ai), which forwards them to Groq. The AI picks the best alternative, fixes errors (homophones, filler words), and translates the result into the language you selected (Hinglish, English, Hindi, or Mixed). The translated text is returned and inserted into the text field. This transcribed text is never stored on our servers.
The microphone is only active while you physically hold the mic button. No background audio recording occurs.
6. Clipboard Access
TypeAura reads your clipboard to display recent clips in the Clipboard panel and to offer translation of copied text. Clipboard contents are stored locally on your device only (in app storage via SharedPreferences and in-memory) and are never automatically uploaded. They are only sent to our backend if you explicitly tap the Translate Clipboard button.
6a. GIF Keyboard (optional)
The emoji panel includes an optional GIF tab powered by Giphy. It is used only when you open that tab.
- Search & trending: the search term you type in the GIF tab is sent to our backend (
typeaurabackend.vercel.app/api/gif), which queries Giphy on our behalf and returns a trimmed list of results. Our Giphy key stays on the server and Giphy does not receive your device ID or any analytics data from us.
- Loading the GIF images: the GIF previews and the GIF you send are downloaded directly from Giphy's servers by your device. As with loading any image from the internet, this means your IP address and the GIF you requested are visible to Giphy, and their privacy policy applies to that request.
- Local cache: a GIF you send is saved to TypeAura's private cache folder on your device so it can be handed to the app you are typing in. It is shared only with that app, only when you send it, and the cache is cleared by Android along with the app's other cached files.
- No text you type outside the GIF search box is ever sent to Giphy, and we do not send your typed messages, device ID, or analytics to Giphy.
If you never open the GIF tab, no request is made to Giphy at all. The feature can also be disabled remotely by us, in which case the tab shows "GIFs unavailable".
7. Data Storage & Retention
- Analytics data (device ID, events, daily counters) is stored locally in your device's app storage (SharedPreferences).
- Pending analytics events are periodically synced to our backend. We retain analytics data for a maximum of 12 months, after which it is deleted.
- Crash reports are queued locally (max 50) and sent to our backend. They are retained for a limited period for debugging purposes only.
- You can clear all pending analytics data at any time from within the app: Settings → Privacy & Security → Clear Analytics Data.
- To request full deletion of all data associated with your anonymous device ID, use our Delete Your Data page, or email us at the address below. Data deletion requests are processed within 30 days.
8. Third-Party Services
- Groq (AI Provider) — receives the text you submit for AI processing (see section 2) over HTTPS and returns a result. Groq acts as a processor on our behalf; their handling and retention of that text is governed by their own terms. We do not send Groq your device ID, analytics, or any other identifier — only the text of the request itself. Groq's Privacy Policy →
- Giphy (GIF search) — used only by the optional GIF tab (see section 6a). Your search term reaches Giphy through our backend, and your device loads GIF images directly from Giphy's servers, which exposes your IP address to them. Giphy's Privacy Policy →
- Vercel (Backend Hosting) — our API backend is hosted on Vercel. Vercel may log standard server-access data (IP address, timestamp) per their policy. All communication is HTTPS.
- Google Speech Recognition — handles voice input via Android's built-in
SpeechRecognizer API. On most devices this is processed by Google's cloud speech service (audio is transmitted to Google for transcription) unless the user has installed an offline language pack on their device. TypeAura itself never receives, records, or stores your audio — the transcribed text is returned to us by Android's API. Google's Privacy Policy →
We do not sell, trade, or share your data with any third party for advertising or marketing purposes.
8a. Payments (optional)
TypeAura is free to use. If a paid upgrade (Pro or Max) is offered, payments are processed by our payment provider Razorpay. TypeAura never sees or stores your card, UPI, or bank details — these are entered directly into Razorpay's secure checkout. We retain only a payment/order identifier and the Premium expiry date associated with your anonymous device ID and the hashed device identifier described in section 1, solely to unlock your Premium access and to restore it automatically if you reinstall the app on the same device. This feature is optional and may not be enabled in your region or app version.
9. Security
All data transmitted between the app and our servers is encrypted using HTTPS (TLS). No personal data is transmitted in plain text. Our backend is hosted on Vercel, which enforces HTTPS on all endpoints by default.
No API keys are bundled inside the app. All AI provider credentials (Groq) are stored exclusively as server-side environment variables on our backend. Even if the TypeAura APK were reverse-engineered, no third-party service credentials, database URIs, or admin tokens could be extracted — they simply do not exist in the client code.
10. Permissions Explained
- INTERNET — to call the AI translation and crash reporting backend.
- RECORD_AUDIO — for the voice/speech-to-text feature. Active only while you hold the mic button.
- VIBRATE — for key-press haptic feedback.
- SYSTEM_ALERT_WINDOW — to display the Floating Lens translation bubble above other apps.
- BIND_ACCESSIBILITY_SERVICE — used by the Floating Lens feature to (1) read on-screen text you select for translation, and (2) insert a chosen reply suggestion directly into the focused input field of the active app.
- FOREGROUND_SERVICE / FOREGROUND_SERVICE_SPECIAL_USE — to keep the Floating Lens active in the background.
- POST_NOTIFICATIONS — to show the Floating Lens persistent notification (required by Android 13+ for foreground services).
- oplus.permission.settings.LAUNCH_FOR_EXPORT — on realme / OPPO / OnePlus devices only, this lets the in-app setup guide open the correct Accessibility settings screen directly. It grants no access to your data and is ignored on all other devices.
TypeAura requests no location, contacts, camera, SMS, call log, photo, file, or calendar permissions, and does not use QUERY_ALL_PACKAGES. It contains no advertising or tracking SDKs.
11. Children's Privacy
TypeAura is not directed at children under the age of 13. We do not knowingly collect personal information from children. If you believe a child has provided us with information, please contact us and we will delete it promptly.
12. Changes to This Policy
We may update this Privacy Policy from time to time. Any changes will be posted on this page with an updated date. Continued use of the app after changes constitutes acceptance of the revised policy.
13. Contact Us
If you have any questions, requests, or data deletion inquiries regarding this Privacy Policy, please contact us below. You can also submit a deletion request directly via our Delete Your Data page.