Privacy Policy
Draft, to be checked by a lawyer. Text in [square brackets] are my details, which I must fill in before I take any payments. This policy describes how ZYR Assistant is built today. If it changes, this page changes with it.
1. The short version
- Who I am. ZYR AI is the name under which I, [your full legal name], an individual in India, make and offer ZYR Assistant ZYR AI is not a company. In this policy “I”, “me” and “ZYR AI” mean me.
- The app runs on your PC. It sends no analytics, telemetry or advertising data to me or to anyone else.
- Your account. To use ZYR Assistant you create an account on my website with your email address. Clerk, the account service I use, checks the address with a one-time code. I get your email address, your account id and your plan, and nothing about how you use the app (section 8).
- Your API keys stay on your PC. They are sent only to the AI or voice service they belong to. I never receive them.
- Your camera is only used for hand control, after you allow it. The video is processed in memory on your PC and never saved or sent.
- What you ask goes to the AI service that answers, and your voice goes to the speech service you chose (sections 4 and 6).
- The phone app. If you pair it, your phone and your PC talk through a relay that I run on Cloudflare. Every message is encrypted end to end, in five layers, with keys that only your phone and your PC have. The relay, and I, can't read them (section 7).
- I don't sell your data, and I don't collect your conversations, screen, files, code, voice or camera images.
2. Who is responsible for your data
For the information I hold myself (sections 8 and 9), the person responsible (the “data fiduciary”) is me: [your full legal name], [full postal address], India. Email: zyr.agent@proton.me. I handle privacy questions and complaints myself (section 13).
Because the app runs on your PC, most of the information below never reaches me. I hold only what is needed for your account and, once payments start, your subscription.
3. What stays on your PC
The app keeps these in %APPDATA%\JARVIS on your PC. None of it is sent to me:
- Settings and API keys (
.env), in ordinary text. Anyone who can open your Windows account can read it. Each key is sent only to the service it belongs to. - Your activation key (
activation.dat). - The recent conversation (
history.json) and facts you asked it to remember (memory.json). - Coding agents' chats (
agents.json), group chats (groups.json) and today's count of agent messages (usage.json). - Paired phones (
mobile.json): each phone's name, its 256-bit key and its private relay channel names. - A log of what the app did (
jarvis.log), how fast each AI service answered (provider_speed.json) and window positions (ui.ini). - Your wake-word template (
wake_word.npz), only if you teach the app a wake word: numbers that describe how the word sounds, not recordings.
The activation key, conversation, memories, agent and group chats, usage count, paired phones, wake-word template and log are encrypted with AES-256, with a key (data.key) locked to your Windows account. The settings file (.env), including API keys, is not encrypted.
Files and photos you send from your phone are saved in Downloads\J.A.R.V.I.S., and voice notes from your phone in Documents\J.A.R.V.I.S. Notes. Coding agents keep working copies or snapshots of your project under %LOCALAPPDATA%\JARVIS\agents so you can undo their changes. These are removed when you keep or undo the changes.
Settings → Privacy → Delete my local data deletes the conversation, memories, agent and group chats, usage count, paired phones, log and wake-word template. It keeps your settings, API keys and activation key, unless you choose to delete everything. Uninstalling doesn't necessarily remove the data folder, so delete it first, or remove the folder yourself.
4. Microphone and voice
- The microphone is only used while the app is listening. The app shows when the microphone is on, and you can turn it off at any time with the microphone button.
- The app measures sound levels on your PC to notice speech. It doesn't record or keep audio.
- Speech to text. By default, each sentence you speak is sent to Groq to be turned into text. Choose On-device (Windows) in Settings → Privacy to keep speech on your PC; it is less accurate. If no Groq key is set, the on-device recogniser is used.
- On-device wake word. If you turn it on, audio is sent for transcription only after your PC has recognised your wake word itself.
- Spoken replies. With the default Microsoft voice, the text of each reply is sent to Microsoft's online speech service. With ElevenLabs, the text goes to ElevenLabs. With the Windows voice, nothing leaves your PC.
5. Camera and hands
- The camera is only used for hand control (the file hologram and the boxing game), and only after you allow it in the app's own permission window. The app shows when the camera is on, and the camera turns off when you close hand control. You can withdraw the permission in Settings.
- Each frame is handed to Google's MediaPipe hand tracker, which runs as a separate program inside a Windows sandbox with no network access. Frames are analysed in memory and never saved, uploaded or shared. The model comes with the app.
- The app doesn't look for, recognise or store faces.
- I don't use your camera images or your voice to train anything.
6. What the desktop app sends, and to whom
When a feature needs an online service, the app contacts that service directly from your PC. These are all the connections the app makes:
| When | What is sent | To |
|---|---|---|
| You ask something (typed or spoken) | Your request, your last few messages, facts you asked it to remember, and the results of tools it used (for example the text of a page or file it read). While it works your PC, also a text description of the screen built on your PC: window titles and the names, values and positions of controls in the front window. This can include text that is visible on screen. No picture is sent. | The AI service that answers: Google Gemini, NVIDIA, OpenRouter or Groq, in the order you chose. If one is busy, the next one gets the same material. |
| You speak (default setting) | The audio of that sentence | Groq |
| It speaks (default voice) | The text of the reply | Microsoft's online speech service, or ElevenLabs if you chose it |
| You ask for a web search, the weather or a web page; or you turned on the weather in the greeting | The search words, your place name, or the page address. These services see your IP address. | DuckDuckGo, wttr.in, or the site you named |
| Update check (you can turn it off in Settings) | A request for the newest version number, with no personal information. If there is one, the signed update is downloaded. | GitHub (github.com) |
| You start, message or group-chat coding agents | The task or message, a map of your project made on your PC (file, class and function names), and the files the agent reads or changes in the folder you allowed | The coding service you chose: Claude Code or the Claude API (Anthropic), Codex (OpenAI), OpenCode (with the model service you set up in it), or OpenRouter, with your own sign-in or key |
| A phone is paired | Everything in section 7, encrypted end to end | The ZYR Assistant Relay, run by me on Cloudflare |
| Once a day, while the app runs | A check that your activation key still stands: only the key’s SHA-256 fingerprint and a random id for this PC (not derived from anything about it), named “Windows PC”. If the key was cancelled on your dashboard or your plan has ended, the app tells you and closes. | The ZYR Assistant Relay, which looks it up in my account database (section 8) |
| Only if you turn on “Show ZYR Assistant on my Discord profile” | The app's state (for example “Listening”) and how many coding agents are working, never what you said, a task or a file | The Discord app on your PC, which shows it on your Discord profile |
Like any internet connection, these services see your IP address and the time. Each of them has its own privacy policy and decides for itself how long it keeps data and what it uses it for. Some free tiers of AI services may use what you send to improve their products, so read their terms before you add a key. The app's connections use HTTPS with certificate checks. A page whose address starts with http:// is fetched as you asked.
Opening my website from the app (for example “Manage account”) opens it in your browser; section 8 covers what happens there.
7. The phone app (ZYR Assistant Mobile) and the connection between your phone and your PC
The phone app, for Android, lets you use your PC from anywhere. It has no account of its own and holds no API keys. It sends what you ask to your PC, and your PC does the work with its own settings, as if you had typed it there.
How the connection is protected
- Pairing. You pair once with a one-time code shown in Settings → Pair on your PC. The code is valid for 10 minutes and works once. The code itself is never sent: it only protects the first exchange, in which your phone and your PC each make a fresh key pair and agree on the phone's own 256-bit key (an ECDH P-256 key exchange). That key never travels, not even encrypted. Unpairing, on either side, deletes it.
- Five layers of encryption. Every message, both ways, is encrypted and authenticated in five nested layers of AES-256-GCM. Each layer has its own 256-bit key, derived from the phone's key and tied to that layer and to the direction, plus its own random nonce and tag. This needs phone app 1.8 and ZYR Assistant 2.10 or newer; older versions use one layer of AES-256-GCM. Once a phone has used five layers, a one-layer message for it is refused.
- Refused messages. A message is refused if it isn't encrypted with that phone's key, if any part of it was changed, if it is more than two minutes old, or if it repeats an earlier one.
- Your OK. Anything that needs your OK, such as running a command, shutting the PC down, closing an app or typing into it, is asked on your phone first.
The relay
- Your phone and your PC meet through the ZYR Assistant Relay, which I run on Cloudflare Workers. Each paired phone has its own private channel, with a random name only that phone and your PC know.
- The relay passes each encrypted message on. It keeps ordinary messages for at most two minutes, so a phone that was briefly offline still gets the answer, and then deletes them. It passes on live messages (touchpad moves, keys, typed text, screen pictures and file pieces) without keeping them at all.
- The relay can't read any message. I don't log or keep what passes through it.
- Cloudflare, which hosts the relay, processes connection details such as IP addresses under its own privacy policy.
- You can point both apps at your own copy of the relay instead.
What travels from your phone to your PC
- Chats: your requests, typed or spoken, with the last few turns of that chat.
- Remote: touchpad moves and clicks, keys and typed text, slide-clicker keys, media and volume keys, brightness, power actions, which app to open, which window to switch to, hide or close, file-name searches, voice notes, links to open, clipboard text you choose to send, and your routines.
- Files and photos you choose to send (up to 25 MB each, in encrypted pieces). With “Photo to text”, your PC reads the text in the photo with Windows' own text reader, on your PC, and puts it on the PC's clipboard.
- Your phone's battery level while the app is open, shown in your PC's Status panel.
- Your answers to questions that need your OK, and requests for the Memory screen.
What travels from your PC to your phone
- Answers to what you asked, and progress steps.
- Your PC's status: name, version, CPU, memory, battery and uptime.
- For the Remote: the titles of open windows, the names of installed apps, the names, sizes and folders of files matching your search, your clipboard text when you ask for it, and the health card (disk space, and the apps using the most memory and CPU).
- The facts your PC remembers, when you open the Memory screen.
- Pictures of your PC's main screen, only while you watch it: in a voice call after you tap Screen, or in Remote → Screen + touchpad. They come about 2 a second in a call and up to about 12 a second in Screen + touchpad, with where the mouse pointer is. They are shown and not saved on the phone, and the relay doesn't keep them. A red banner shows on your PC the whole time. It stops about 20 seconds after the phone stops asking, and Settings → Pair → “Let my phone see this screen” turns it off. Everything visible on that screen is included, so close what you don't want to show.
- When you ask Zyr: a ring (loud, even on silent), a screen lock (only after you allowed it in the phone app; this uses Android's device administrator permission for locking only), a file you name (up to 25 MB, saved in the phone's Downloads › J.A.R.V.I.S.), a link or text, a reminder (kept and shown by the phone itself), a notification, or turning Do Not Disturb on or off (after you allow it once in Android settings).
On your phone
- The pairing key and your chats are stored in the app's private storage, encrypted with a key held in the Android Keystore. Simple preferences, routines and quick actions are stored unencrypted in the app's private storage.
- The app can be locked with your fingerprint, face or PIN. This is Android's own prompt: the app never sees your fingerprint or face. Android blocks screenshots and screen recordings of the app.
- In a voice call, the phone listens with its own speech recognition service (on most phones Google's), under that service's terms, and only while the call is open and the app is on screen. Voice notes use Android's own “speak now” box in the same way. Answers are read aloud by the phone's own voice.
- Photos for “Photo to text” are taken with your phone's camera app, so ZYR Assistant doesn't get camera access itself. Your phone's clipboard is read only when you tap “Send my clipboard”.
- The app checks GitHub for a newer version when it opens, with no personal information. Android installs an update only if it is signed with the same key as the app.
If you control your PC through the phone, what the PC does is described in sections 3 to 6. Settings → Pair on your PC turns off the screen pictures and the whole Remote, and unpairing ends everything.
8. Your ZYR Assistant account and my website
- Clerk (Clerk, Inc., United States) runs sign-in and sign-up for me, and processes your account data on my behalf. It collects:
- your email address, and your name if you give it;
- the one-time codes sent to you;
- your password, if you set one, which Clerk keeps only as a secure hash that nobody can read;
- when you signed up and signed in;
- the IP address, browser and device of each sign-in, to keep your account safe.
- Your dashboard shows your plan, your activation key, your security settings and the browsers you are signed in on. It doesn't show places or IP addresses. “Hide personal info” blurs your email and account id, and that choice is remembered only in your browser.
- Your activation key. When your dashboard asks for a key, it sends your sign-in token to the ZYR Assistant Relay. The relay checks it with Clerk's public keys and signs a key containing your account id, email address and plan. The relay stores nothing. You paste the key into the desktop app, which checks the signature on your PC and keeps the key there, encrypted. The app doesn't send the key anywhere.
- My account database. I keep a small database on Supabase (Supabase, Inc.), used only by the ZYR Assistant Relay:
- for each account: its id, email address, plan and when the plan ends;
- for each activation key: whose it is, the plan, when it was made and when it ends, and whether you cancelled it. Only a SHA-256 fingerprint of the key is kept, never the key itself;
- for each PC using a key: its random id, the name “Windows PC”, and when it was first and last seen.
- Hosting. My website is hosted by Vercel, which sees your IP address and browser details when you visit, under its own privacy policy. The website uses only fonts already on your device: it loads nothing from Google Fonts or any other font service.
- Cookies. The sign-in uses the cookies Clerk needs to keep you signed in. They are strictly necessary. I use no advertising or tracking cookies and no analytics.
- What I use it for: to let you sign in, to know your plan, to send you important notices about your account and, once payments start, your receipts, and to prevent abuse. I don't send marketing emails unless you ask me to.
- Where it is stored. Clerk, Vercel and Cloudflare may store or process this data outside India, for example in the United States. My Supabase database is in South Korea (Seoul).
- How long. As long as your account exists. Delete it in Account settings on your dashboard, and Clerk deletes it; ask me and I delete your rows in my database too, apart from records I must keep by law (section 9).
9. Payments
Checkout isn't open yet. When it opens, payments will be processed by a payment provider, [payment provider name], under its own privacy policy and the Reserve Bank of India's rules. I will never see or store your card, UPI or bank details. From the payment provider I will receive only what I need to run your subscription: your email address, your phone number if you give one at checkout, the plan, payment status and dates, and a payment reference. I will keep these records for as long as the law requires me to keep accounting and tax records.
10. Why I use information, and your consent
I use the information in sections 8 and 9 to provide your account and the software, to answer you, and to meet legal duties. Everything else here happens on your PC, or through services you choose, and each such feature is something you switch on, ask for or allow. You can withdraw your consent at any time: turn the feature off, withdraw the permission, unpair your phone, delete your local data, or delete your account. Withdrawing doesn't undo what already happened.
11. Your rights
You can ask me for a summary of the personal data I hold about you and who it was shared with, and you can ask me to correct, complete or erase it. You can raise a complaint, and you can nominate someone to use these rights for you if you die or can't act. Write to zyr.agent@proton.me.
For data on your PC, use Settings → Privacy. For data held by Groq, Google, NVIDIA, OpenRouter, Microsoft, ElevenLabs, Anthropic, OpenAI, Discord, Clerk, Vercel, Cloudflare or Supabase, contact them.
12. Children
ZYR Assistant is for people aged 18 and over. I don't knowingly provide it to, or collect data about, anyone under 18. If you believe a child is using it, contact me and I will delete the account.
13. Questions and complaints
Write to me at zyr.agent@proton.me, or by post to [full postal address]. I will reply within 48 hours and aim to resolve the matter within one month. If you are not satisfied, you can complain to the Data Protection Board of India, or go to the consumer authorities.
14. Security
Files on your PC are protected by your Windows account, so keep your PC locked and your account private. Updates are signed, and the app ignores any update that isn't. Phone ↔ PC messages are encrypted end to end (section 7). Anyone holding your unlocked phone can use the paired app, so keep your phone locked (the app can ask for your fingerprint or PIN), and unpair a lost phone in Settings → Pair on your PC.
No system is perfectly secure, and I can't promise that nothing will ever go wrong. If I learn of a breach affecting data I hold, I will tell the people affected and the authorities, as the law requires.
15. Changes to this policy
If I change this policy in a way that matters, I will update the date above and show a notice in the app or on my website. Earlier versions are available on request.
16. Which laws apply
This policy is written to meet India's Digital Personal Data Protection Act, 2023 and its Rules, which are coming into force in stages. It is also written to meet the Information Technology Act, 2000 and its rules on reasonable security practices and sensitive personal data, which apply until the new law fully replaces them. I aim to follow the stricter standard now.