MumblePop Privacy Policy
Last updated: 7 November 2026
MumblePop is a dictation app. You speak, and it types what you said into whatever app you are using.
MumblePop has no accounts and no analytics, and it never sends the developer anything on its own. Your speech goes to Google, using your own API key. The only things that can reach the developer are a bug report, a feature request, or a copy of your debug data, and only when you choose to send one — see below.
What leaves your phone
1. Your speech, and the text made from it, go to Google. When you dictate, MumblePop sends your audio to Google's Gemini API to be turned into text, using an API key that you supply. It goes to Google, not to the developer. Depending on the setting, the audio is streamed while you are still speaking, or sent as a short clip when you stop. In more detail:
- The audio of each dictation. In the “Tidy + filler words” mode the same audio is sent twice at once, once to be tidied and once word for word, so your filler words can be put back on the phone. If a transcript comes back with part of what you said missing, the app may send that same recording again to repair it.
- The sound of files you choose to transcribe. When you pick an audio or video file, or share one to MumblePop, its sound is sent to Google in parts. A video's picture is never sent: the sound is taken out on your phone first, and converted there if needed.
- A saved recording, or a few seconds of it, when you ask for a transcript again, for missing words in one spot, or for timecodes and speakers.
- Your custom vocabulary (the words from your word lists that are switched on for the app you are typing in), sent along with the audio so the recogniser spells them correctly.
- The text of what you said, sent a second time when a style or your own filter needs tidying (for example Email or List), or when you ask for a transcript that combines the reading text with timecodes. That text goes to a smaller Gemini model, as text only.
- Your name, if you have entered one, included in the instructions for the Email style so the message can be signed off. It is not sent for other styles.
Your spelling lists (the “always write X as Y” lists, including British spelling) are applied on your phone after the text comes back. They are never sent anywhere.
Google's handling of what you send is covered by their terms:
Free keys and human reviewers. If your API key is on Google's free tier, Google's terms say they may use what you send to improve their products, and that human reviewers may read your input and output. Google's own instruction for the free tier is not to submit sensitive, confidential or personal information. In practice: on a free key, do not dictate anything you would not want a stranger to read — passwords, bank or medical details, other people's private information. Keys on a paid tier are excluded from this by Google's terms. That distinction is Google's, not the developer's, and it applies to every app that uses your key.
2. Bug reports and feature requests, only if you send one. MumblePop has a Report screen where you can describe a problem or suggest something. Nothing is sent unless you tap Send, and every extra is a separate tick box that starts off. A report always contains what you typed (the description, plus a title if you add one), the report type, and the app version. Each of these is added only if you choose it:
- A contact (a Discord name or an email address) if you want a reply, and whether replies are okay.
- Device details: manufacturer, model, Android version, language and screen size.
- Permission and setup status: which of the permissions below are on (yes or no), and whether the bubble is turned on.
- Your settings, never including your API key.
- The app you were typing in (its package name, such as com.discord).
- The app's recent log, a few minutes of MumblePop's own log with keys removed, and recent errors (time, model and error message).
- The end of the debug log (the most recent part, up to 500 KB), described under “What stays on your phone”.
- Dictations you pick from your history, a day or a week at a time: the text that was typed, the text the model first heard, your note about it, and the model and style used. You can also choose to attach their audio recordings, up to 30 per report. These are your own words, so only attach ones you are happy for the developer to read and hear.
- One screenshot that you pick yourself.
Every report also carries a random number that the app made when it was installed. It is not linked to your name, your Google account or your phone, and it exists so the developer can limit how many reports one install can send in a day. Like any website request, the server necessarily sees the IP address the report came from; it is used only for that same daily limit.
Where it goes: a server run by the developer (mumblepop-reports.rosestuffs.org), over an encrypted connection. It is not Google and it is not a third-party service. Who reads it: only the developer. Reports are never shared, sold, or used for advertising, and are not used to train anything. How long: each report is deleted automatically after 90 days, sooner if the developer finishes with it. The developer is told when a report arrives by a private message on Discord that includes the title, type and version but not the full report.
If you would rather not send it to the server, the Report screen can instead save the report as a zip file on your phone. You can read what is in it, and then send it however you like, or not at all.
To have a report deleted before the 90 days are up, email the address under Contact with the report number the app showed you after sending (it looks like MP-0042). If you have lost the number, say roughly when you sent it and what it was about.
3. “Max debug data”, only if you send it. A report is about one problem. Max debug data is for when you want to help the developer improve the app with everything: it sends all of your MumblePop data from the period you pick (all of it, the last 30 days, or the last 7 days). Nothing is sent until you tap Send on that screen, which lists all of this first:
- Your history: every transcript, the text the model first heard, and the model, style, filters and timings used.
- Your audio recordings, including ones that failed to transcribe. You can switch recordings off before sending.
- Recent errors (time, model and error message).
- Your settings (never your API key), device details and permission status, as in a report.
- The whole debug log and the app's recent log, with keys removed.
- A note, if you write one.
It goes to the same developer-run server as reports, over an encrypted connection, with the same install number and the same use of your IP address (daily limits only). Who reads it: only the developer, to find and fix problems and to test changes against real dictations. It is never shared, sold, used for advertising, or given to anyone to train a model. How long: unlike reports, it is kept until the developer deletes it, because comparing a fix against the same recordings is the point. To have it deleted at any time, email the address under Contact with the number the app showed you after sending (it looks like DUMP-0007).
Nothing else is transmitted anywhere. There is no telemetry, no automatic crash reporting (a crash is written to the on-phone debug log and goes nowhere unless you send it), no advertising, and no third-party SDK that phones home.
What stays on your phone
- Your API key, in the app's private storage.
- Your history — transcripts, with the model and style used, and the live preview that was shown while you spoke — in a private database on the device. The preview is kept so a transcript with missing words can be checked and repaired; it is deleted with its transcript, and it travels in a history export, a report or Max debug data like the rest of the transcript.
- Your audio recordings, in the app's own media folder so that you can find and play them yourself. You control how long they are kept and how much space they may use, and you can turn off keeping them entirely.
- Your settings, including your name, your fixed spellings and your custom vocabulary. (The vocabulary and, for Email, your name are also sent to Google, as described above; the fixed spellings are not.)
- Usage counts, so the app can show how much of your daily allowance is left. These are counted locally because Google provides no way to read them back.
- A debug log, in the app's private storage, so a problem can be traced after it happens. It records events, not words: when the accessibility service connects or drops, whether the bubble appeared in a text box and if not why, the name of the app you were typing in (such as com.discord), how long each step of a dictation took, which model answered, errors, and the app version. It never contains what you said, what you typed, or your API key. It keeps 30 days by default (you can choose 14 to 90 days and a size limit), and you can view it, clear it or turn it off in Settings. It only leaves your phone inside a report or Max debug data that you send.
You can delete any of it from inside the app, and all of it by uninstalling.
Except what you export or save. When you tap Export, the app writes your transcripts as plain readable text and JSON into its own media folder and into your Downloads folder. A report saved as a file is also an ordinary file you can see and share. That copy is deliberate — it is what lets you move to a new phone, and unlike everything else it survives uninstalling the app — but it is a normal file any app with storage access can read. Delete it when you are done with it. The same goes for Export settings, which writes your styles, lists and other choices to a file the same way. Your API key is only in that file if you tick “Include API key”; anyone holding a file with the key in it can use your key.
The accessibility service
MumblePop uses an Android accessibility service. This is the only way on Android to type into another app's text box without replacing your keyboard, and it is what makes the app work at all.
It is used for exactly these things:
- To know which text box currently has focus, so the bubble can appear beside it and knows where to type.
- To insert your transcript into that box at your cursor, or over the words you have selected, without overwriting the rest.
- To see whether a keyboard is on screen. Only the kind of each window is checked, never what is in it. Some apps hide their text box; a keyboard on screen is the only sign that you are typing there, so the bubble can still appear and put your words on the clipboard.
- To offer a fix for a recent dictation, described below.
The service reads the contents of the focused field, and where your cursor is, only to place your words and to recognise a recent dictation. That text is never stored, never included in your transcript, never written to the debug log, and never transmitted anywhere.
Fixes in other apps. When “Offer fixes in other apps” is on (it is on by default) and you have a dictation from the last 24 hours (you can change this) whose recording is still on the phone, the service reads the text and cursor position of the box you are typing in when you move the cursor or select text there. It never does this in password boxes, in apps you have told it to ignore, or in MumblePop itself. It compares that text, on the phone, with your recent transcripts to tell whether one of your dictations is there. The text is held in memory only while the fix button is showing or a fix you asked for is being made. If you tap a fix, MumblePop sends Google only the audio of your own recording (a few seconds around that spot, or the whole recording to redo it), using your own API key, and types the words that come back into the box, or puts them on your clipboard if the app does not allow it.
It does not read your screen generally and does not log what you type.
It does see the name of the app you are currently typing in — the package name of the focused field, in every app, not only some. It has to: that is how it knows whether you have told it to stay away from this app, and which style or filters you have set for it. Unlike the field's contents, the app's name is written to the on-phone debug log described above (unless you turn the log off), so a problem in one app can be traced. It only leaves your phone if you send a report with the debug log or Max debug data.
In apps you have told it to ignore, the bubble never appears and nothing is ever typed into them.
So that you can choose those apps in the first place, MumblePop can also see the list of apps you have installed that can be opened. It uses that only to draw the list you pick from. The list is never sent anywhere, and only the apps you actually choose are remembered, on the phone.
The other permissions, and why
| Permission | Why |
|---|---|
| Internet | To reach Google's Gemini API, and, only when you send one, the report server described above. |
| Microphone | To record what you say. Nothing is recorded until you start a recording. |
| Display over other apps | To draw the bubble above the app you are typing in. |
| Notifications | Android requires a visible notification while an app records in the background. Also used to tell you when a file you chose has finished converting or transcribing. |
| Run while recording | A microphone foreground service, so a recording is not cut off when you switch apps. It shows the notification above while it runs. |
| Process a file in the background | A data-sync (and, on Android 15 and later, media-processing) foreground service, so a file you chose keeps converting and transcribing when you leave the app. It runs only for a file you started, and shows a notification with a Stop button while it runs. |
| Start at boot | Only so the bubble comes back after you restart the phone. It does nothing if you have turned the bubble off. |
| Usage access (optional) | Only to sort the "apps to ignore" list by what you have opened recently. Declining it costs you the sorting and nothing else. |
| Battery optimisation (optional, and not a permission) | Some phones kill the bubble once the phone sits idle. MumblePop does not ask for the permission that would let it exempt itself — it only opens Android's own battery settings, where you can allow it if you want to. Nothing changes unless you do it yourself. |
The two marked optional can be refused and the app still works.
Children
MumblePop is not directed at children. It requires a Google AI Studio API key, which Google does not issue to children, and the Gemini API terms require users to be 18 or over. Please do not send a report if you are under 18.
Changes
If this policy changes, the date at the top changes with it, and a material change will be noted in the app's release notes.