Rocky — privacy policy
Last updated: 2 October 2026
Rocky is a personal assistant app built by one person for their own household. It is distributed only through Google Play internal testing and is not offered to the public.
Who runs it
Rocky has no company behind it and no shared servers. The app talks to a server the user runs themselves, on their own computer at home. There is no Rocky account, no sign-up, and no hosted backend operated by anyone else.
How the phone reaches that server
The phone reaches the home server over the public internet through a Cloudflare Tunnel, with Cloudflare Access in front of it and a device token as a second lock. Nothing is exposed to the internet without both.
Being straightforward about what that means: a tunnel terminates TLS at Cloudflare's edge, so the connection is encrypted from the phone to Cloudflare and again from Cloudflare to the home server, but Cloudflare is technically able to see the traffic in between. It is not end-to-end encrypted. This was a deliberate trade for a connection that works reliably on mobile data.
What the app collects
Nothing is collected by the developer. The app sends no analytics, no crash reporting, no advertising identifiers and no usage data anywhere. There are no third-party SDKs for tracking or ads.
What the app handles — and where it goes:
| Data | Why | Where it goes |
|---|---|---|
| What the user types or says to Rocky | To answer and to act on it | The user's own server; kept in a database file on their own machine |
| Photos the user sends Rocky | So Rocky can read what is in them (a delivery note, a bill, a recipe) | The user's own server, where the picture is read and then deleted. Only a record the user keeps (a recipe's own photo) is stored |
| Microphone audio | The voice screen and voice memos turn speech into text | Normally streamed from the app directly to ElevenLabs (see below), which turns it into text; a recorded voice memo goes there from the user's own server. When ElevenLabs is not in use (no key, or the month's allowance used up), speech is turned into text on the user's own server (Whisper) or by the device's own speech recognition, and nothing leaves the house. Audio is never stored by Rocky |
| Rocky's spoken answers | So answers can be read out loud in a natural voice | The words to be spoken are sent from the user's own server to ElevenLabs, which returns the audio; a phrase said before is played from a copy on the user's own server. When ElevenLabs is not in use, the device's own voice speaks and nothing leaves the phone |
| Notifications | Reminders and check-ins the user asked for | Sent by the user's own server to their own phone |
| Bank transactions and balances, when the user connects their own bank accounts | To answer questions about money, keep track of bills and subscriptions, and tell the user about what they asked to be told about | Read through Enable Banking (see below) and kept on the user's own server. Only ever read: nothing can be paid or moved. Full account numbers are shown on the user's own screen only |
| Household data the user enters (shopping lists, pantry, recipes, notes, reminders) | The features themselves | The user's own server only |
Where data leaves the house
- Anthropic's Claude. The user's own server sends text — and a photo, when the user sends one — to Claude to produce Rocky's replies, under the user's own subscription and Anthropic's terms.
- Public information fetched on the user's behalf: web searches, recipe pages and the weather for their town.
- A nightly backup of the database to Cloudflare R2 (private object storage on the user's own account, the last 30 kept), so a broken machine does not lose the household's data. This means a copy of everything Rocky knows is held by Cloudflare on the user's behalf - encrypted on the user's own server before it leaves, file names included, with a passphrase only the user holds, so Cloudflare cannot read it.
- Enable Banking (Enable Banking Oy, Finland, a payment-account information provider registered with the Finnish Financial Supervisory Authority), only if the user connects a bank. It acts as a processor: the user approves access at their own bank (neither Enable Banking nor the app ever sees a bank password), the access is read-only - accounts, balances and transactions - and ends after at most 180 days unless the user approves it again. Enable Banking passes the bank's answers to the user's own server and, by its own terms, keeps nothing else but the consent. The user can instead import a file downloaded from their bank, which involves no third party at all.
- ElevenLabs (Eleven Labs Inc.), for the assistants' voices and for turning speech into text, under the user's own ElevenLabs account and ElevenLabs' terms: the words of an answer to be read out, the microphone's audio while the voice screen is listening (sent by the app straight to ElevenLabs with a single-use pass the user's server hands it - the account's key never leaves the server), recorded voice memos, and a short list of household words as spelling hints (the names of the household's people and assistants, shops, shopping lists, places, kitchen items, recipes and companies paid). ElevenLabs' zero-retention option is not available on this account, so ElevenLabs keeps these under its own retention policy. Not used at all when the household has no ElevenLabs key or its monthly allowance is used up.
- Firebase Cloud Messaging sends a content-free "check in" ping so notifications arrive in seconds. The ping carries no message text — it only tells the phone to ask the home server whether anything is waiting. Google therefore sees that a ping happened, never what it was about.
The app itself contacts nothing but the user's own server - and, while the microphone is listening through ElevenLabs, ElevenLabs directly, on the single-use pass described above. Android's speech recognition and text-to-speech, used when ElevenLabs is not, are provided by the device and governed by the device maker's and Google's own policies.
Google account access
If the user connects their Google Calendar, Rocky asks for permission to read their calendar and to create, move and delete events. It never asks for whole-calendar management. Calendar changes are always proposed first and only carried out after the user says yes. The access token is stored on the user's own server and nowhere else, and access can be withdrawn at any time from the user's Google account permissions. Gmail, when connected, is read-only and uses an app password the user creates themselves.
Bank access
Connecting a bank is optional and read-only. The key that identifies the user's own Enable Banking application and the bank sessions are files on the user's own server, readable by that account only, and are never stored in the database or its backups. Each account is visible only to the person who connected it, unless they share that one account with someone else in their household. Access ends on its own after at most 180 days; it can be ended earlier in the bank's own app or website.
Permissions
- Microphone — only while the voice screen is listening or a voice memo is being recorded, to turn speech into text.
- Photos — only the pictures the user picks to send to Rocky.
- Notifications — to show the reminders and check-ins the user set up.
- Internet — to reach the user's own server.
- Alarms — to show time-based reminders.
Keeping and deleting data
All data lives on the user's own server and phone, plus the nightly backup described above. Deleting the app removes its local copy; deleting the database file and the backups on the user's own accounts removes the rest. There is nothing held by the developer to request or delete, because nothing is held by the developer.
Children
Rocky is not intended for children and is not distributed publicly.
Changes
If this policy changes, the updated version replaces this page.
Contact
Questions about this policy: the developer, via the email address on the Play listing.