- AI processing
- Speech recognition and translation use AI models running on your computer; no cloud AI
- Conversation data
- Only on your computer; our server has none
- Audio
- Only in RAM, never written to disk, never sent out
- Network
- Four places; none of them receives audio or transcripts
- Servers store
- Email (when you buy), orders, licenses, hashed machine ID
- Kept for
- Until you ask us to delete it
- Checked
- Proxy and nettop on macOS; Windows not measured yet
- Code signing
- macOS ad-hoc signed, not notarized; Windows not signed
What data stays on your computer?
Audio, transcripts and translations never leave your computer. The app also has no sign-in, no ads, no analytics and sends no automatic crash reports.
| Data | How it is handled |
|---|---|
| System audio being captured | Only in RAM while translating. Never written to disk, never sent over the network. AI Translator does not record meetings to a file either. |
| Transcript and translation | Shown on screen and held in memory for the session. History is off by default; if you turn it on (a Pro feature), it is stored on your computer, encrypted with SQLCipher. |
| Keys, tokens, quota counters | The history encryption key, license token, trial token and quota counters live in Keychain (macOS) or Credential Manager (Windows). |
| Logs | Stored on your computer and free of transcript content. You decide whether to send them to us. |
| Glossary, settings, models | Stored on your computer. Models are downloaded once and run entirely on your computer. |
Where does the app connect?
To exactly four places, and none of them receives audio or transcript content. Speech recognition and translation need no network. While translating, the app may only send scheduled requests to our own servers (an update check, and a license check when one is due).
| Connects to | What for | What is sent |
|---|---|---|
| api.aitranslator.io.vn | License server: Free trial registration, buying, activating, deactivating, recovering keys, license checks; occasionally asks the server for the time | Hashed machine ID, device name, key; plus your email when you buy or recover a key |
| releases.aitranslator.io.vn | Downloading models, checking for and downloading app updates | File download requests only |
| PayOS payment page (pay.payos.vn) | VietQR payment when you buy a plan | Opens in your browser, not inside the app |
| aitranslator.io.vn (this website) | External links (policies, support, download page) open in your system browser | The app sends nothing |
How did we check that?
On macOS we ran the app behind a traffic-capturing proxy (mitmproxy), measured in parallel with nettop, and translated a session using a sample English sentence played on repeat. The build was release 0.1.0, ad-hoc signed, on a MacBook Pro M4 Pro with macOS 26.6.2, on 6 October 2026.
- A 15 minute 42 second session (158 segments, 0 errors): 3 outbound requests, all to our two servers (a license check and an update check). During translation there was only 1 request, the scheduled update check. This run took place before we moved to our own domain; a 5-minute repeat on our own domain gave the same result.
- nettop watched 7 processes (the app, WebView and both engine processes): no outbound data stream was seen.
- Marker words from the sample sentence: found neither in the app's log nor in the recorded requests.
Limits of this test
Measured only on macOS, one machine, one ad-hoc signed build. Windows has not been measured. This is an internal check, not an independent audit; the proxy mode cannot see WebView requests or non-HTTP traffic, so we covered that with nettop.
What do our servers store, and for how long?
Our servers store the data below. The Free trial row applies to every device that registered for the trial; the other rows exist only if you buy a plan or activate a key.
| Data | Purpose |
|---|---|
| Email at purchase, time you consented to email processing | Sending and recovering keys; proof of consent |
| Orders: order code, plan, amount, time, status | Issuing and renewing licenses, reconciliation, accounting |
| License: key, plan, expiry, quota cycle | Granting the paid plan |
| Activated devices: hashed machine ID, device name, last check | One device per key, abuse prevention |
| Free trial: hashed machine ID, start and end times, last time the app called | One trial per device. No email or device name. |
| License change log | Support and incident investigation |
| Rate-limit counters (hashed values only, expire after about 3 hours) | Blocking key guessing and spam |
Kept for: until you ask us to delete it; we never delete personal data on our own. We do not receive your card or bank account numbers and we do not send your email to PayOS. If you only use Free, our servers hold no email or device name for you.
How do I delete my data?
Delete data on your computer
Go to Settings › Privacy. Delete all data removes history and glossary; Delete models and data also removes downloaded models (on macOS, do this before you drag the app to the Trash). Your license, quota and settings are kept.
Ask us to delete server data
Email support@aitranslator.io.vn from the same email you used to buy, so we can confirm it is you. Our Privacy policy also gives you the right to know what is stored, to withdraw consent and to complain, as set out in Vietnam's personal data protection law. We handle requests within the time the law sets.
What we do
We remove your email and device name. Your license still works, but can no longer be recovered by email.
After deletion we still keep: the hashed machine ID (only to prevent abuse: one device per key, one Free trial per device), the time you once consented to email processing, and the order row at accounting level (order code, date, amount). Technical logs that expire on their own and Resend's mail logs are outside our deletion, under those parties' own policies.
Who else processes data?
| Party | Role | Data |
|---|---|---|
| PayOS (Vietnam) | Processes VietQR payments | Order code, amount, order description. Not your email. |
| Cloudflare | Runs the license server and database; stores and serves models and updates | The data in the table above; technical logs that expire on their own |
| Resend | Sends the email that contains your key | Your email and the message (with the key); mail logs kept under Resend's own policy |
Cloudflare and Resend operate servers outside Vietnam, so data may be processed abroad. We do not sell your data and do not share it for advertising.
Other protections
- Digital signatures: app updates are signature-checked before anything is written to disk; the model manifest is signed with Ed25519 and each file is checked against SHA-256; license tokens are signed with Ed25519 and can be verified offline. The app contains only the public key.
- Two engines in two separate processes: speech recognition opens no network port; translation (
llama-server) listens only on 127.0.0.1 and uses a random API key on every run. - Sensitive keys stay out of the app: the payment API key and signing keys live only on our servers; connections to our servers use HTTPS.
- Detecting a tampered app: on macOS the app checks that its ad-hoc signature is intact and the bundle id is right; a build whose signature does not match runs only the Free plan. This is an integrity check and does not replace a Developer ID signature.
Code signing today
| Platform | Status | What it means for you |
|---|---|---|
| macOS | Ad-hoc signed, not notarized (we do not have an Apple Developer ID yet) | macOS blocks the first launch: you need to click Open Anyway in System Settings › Privacy & Security. After each update, macOS asks again with 5 Keychain dialogs and 1 audio-recording dialog. |
| Windows | Not released, no code-signing certificate yet | At release, SmartScreen may warn at first. |
An ad-hoc signature does not tell Apple who the developer is, so get the installer only from us and compare the SHA-256 checksum we send with it. We plan to move to a Developer ID when we can, with no date yet. See the macOS installation guide.
What we do not promise
- No system is absolutely safe. If an incident affects personal data, we will notify as the law requires.
- We have not checked whether the subtitle bar is visible to viewers when you share your screen. If that worries you, hide the bar with its shortcut before sharing.
- If the law or your company policy requires it, you are responsible for telling the other people in the meeting that you use a translation tool.
Found a security issue? Follow the steps on the Contact page.