Echo — Privacy Policy

Last updated: 2026-08-02 Contact: canthou.echo@gmail.com


The short version

Echo records what you say, sends that recording to Google to turn it into a reminder, and gets an answer back. We do not keep the recording, and we do not keep the reminder. Both stay on your phone. What our server keeps is the minimum needed to know who you are and how many captures you have used today.

We have no analytics, no advertising, no crash-reporting SDK, and no tracking of any kind. This is verifiable: pubspec.yaml contains no analytics, Firebase, Crashlytics, Sentry or similar dependency.


1. What stays on your phone, and never leaves it

These never reach our server:

Data Where
Your voice recordings App storage (recordings/). Kept so a reminder can play back in your own voice.
Your reminders — titles, text, times, categories App storage (reminders.json)
Diagnostic logs App storage (logs/echo.log), capped at ~6 MB and rotated. Only ever leaves your phone if you copy and send it.
Your settings Android SharedPreferences

If Android's system backup is enabled on your device, Google may include your reminders and settings in your own Google account backup. That is Android's backup, not ours — we never see it. Recordings are excluded from it.

Deleting the app deletes all of the above.


2. What we send to Google (Gemini), and what happens to it

When you record a reminder, the audio is sent — over HTTPS — to our server, which immediately forwards it to Google's Gemini API to be transcribed and turned into a structured reminder. The result comes straight back to your phone.

Our server does not store the audio or the transcript. It holds them in memory only for the duration of the request. This is not a policy claim you have to trust: the database schema in server/db.py has no column for audio, transcripts or reminder text, and server/gemini.py writes nothing to disk.

Google processes this audio under the paid Gemini API terms. Echo runs on a paid Gemini plan, under which Google does not use this data to train or improve their models. That is the single most important sentence in this policy, and it is only true because the account is paid — the free tier carries no such guarantee.

The terms are Google's Gemini API Additional Terms of Service, which say of paid services: "Google doesn't use your prompts … or responses to improve our products." The unpaid tier says the opposite in the same document — so if the billing plan ever changes, the paragraph above becomes false and must change with it. (Link and wording verified 2026-08-02.)

We never send your recordings anywhere else, to anyone else, for any purpose.


3. What our server stores about you

The complete list, from the schema:

Data Why Table
Your Google account ID (an opaque identifier) To recognise you across sign-ins users.google_sub
Your email address To contact you about the waitlist or your account users.email
Account status and tier Waitlist and access control users.status, users.tier
Account creation date Waitlist ordering users.created_at
How many captures you made each day — a number only To enforce the daily allowance usage_daily
Which days you tapped "claim free captures" So the bonus cannot be claimed twice a day daily_claims
Who invited you / whom you invited The referral bonus referrals
Your invite code So it stays the same each time you open the screen users.invite_code
Bonus captures you have spent — a number So a one-time bonus is not granted twice users.bonus_spent
Your lifetime capture and active-day counts — two numbers Decides when a friend's invite has earned its bonus; shown to you on the invite screen users.lifetime_captures, users.lifetime_days

That is the complete list of what we store about your account. No reminder content, no transcripts, no audio, no location, no contacts, no device identifiers, no advertising ID.

Server logs

Like essentially every website, our server keeps short-lived technical logs of the requests it receives. Each line records the IP address the request came from, the time, which endpoint was called and whether it succeeded — never the audio, the transcript or anything you said.

They exist so we can tell a real outage from an attack and fix things when they break, and we keep them no longer than needed for that. We do not use them to build a profile of you, and we do not combine them with your account record.

An IP address counts as personal data under GDPR, which is why it is named here rather than filed under "technical details". Our lawful basis is legitimate interest in keeping the service running and secure (§5).

We also keep two anonymous tables — how many people used Echo on a given day, and how long each signup group kept using it. They carry no account id, no email and nothing else that could point back to a person, which is why they are kept after the per-person rows are deleted. See §4.

We never sell your data, never share it with advertisers, and never use it to build a profile of you.


4. Retention — how long we keep things


5. Your rights

You can, at any time:

Our lawful basis for processing (GDPR Art. 6)


6. Children

Echo is not directed at anyone under 16, and we do not knowingly collect their data. If you believe a child under 16 has given us data, contact us and we will delete it.


7. Changes

If this policy changes materially — especially anything in §2 or §4 — we will say so in the app before the change takes effect, not only by editing this page.