Provable, not just promised

What's actually private, and what isn't.

Most apps say "we respect your privacy" and stop there. Here is the whole picture: what leaves your device, who receives it, what we keep, and where the honest limits are. No marketing words you can't check.

Data flow

What leaves your device, per action.

An AI that runs in your browser still has to send some things to answer you. Here is exactly what, and to whom, for each thing NOLO can do.

Action
What leaves your device
Who receives it
What they keep
Chat message
Your message and the parts of the conversation needed to answer. No name, no email, no account.
Groq on Fast and Plus. On Pro, OpenRouter, which passes it to CoreWeave (or to DigitalOcean if CoreWeave is down). Always through NOLO's server, so your raw IP never reaches them.
Nothing. None of them trains on your messages, and all are on zero data retention: we switched it on at account level with Groq, and every request through OpenRouter can only reach endpoints that keep nothing. Full detail.
A long answer, when you close the app
The same message and context as above, plus the answer as it is written. Sent so a long reply can finish without your phone being awake.
Cloudflare, running NOLO's code at the edge. It holds that one chat in the clear while the answer is being written, because the answer is produced on the server side and there is no key we could withhold from it.
Nothing once it reaches you. The copy is erased the moment your device confirms it has the answer, and self-destructs after 12 hours if nobody collects it. You can switch this off in Settings ("Keep answering when you leave") and it is always off in anonymous mode. Scheduled tasks are the exception: they always run here (next row).
A scheduled task or routine (only if you create one)
What you ask NOLO to do and when, its settings and, only if you switch on "Include my memory", a copy of up to 30 of your saved memories. When it runs, that text goes to the model as a new message: not your chat history.
NOLO's own server, which stores it encrypted. When it is due it always runs on Cloudflare, even with "Keep answering when you leave" switched off, because nobody is there to wait for it: Cloudflare holds the task and its answer in the clear until your device collects it. The model is the one of the mode you chose, as for a chat message, and if you allowed notifications your browser's push service gets an encrypted notice it cannot read.
Cloudflare erases the run the moment your device collects the answer, and after 7 days if nobody does. Our server keeps a routine until you delete it, and a one-off task until it has run and your device has the answer (30 days after it ran at the latest). "Delete all my data" removes them all. Not available in anonymous mode.
Web search
Only the search keywords NOLO builds from your request, not your whole chat.
Tavily, through NOLO's server.
A query log, with no link to who you are. Tavily may use queries to improve its own service and may pass one to another search index if its own can't answer.
Image generation
The text prompt for the image.
fal.ai, running a proprietary image model, through NOLO's server. But your browser then loads the finished image straight from fal's CDN, so fal does see your IP at that moment.
fal collects the prompts submitted to it. The image link expires after about an hour; your copy stays in your local gallery.
Voice dictation
The short audio clip you record, only while you hold the mic.
Groq (Whisper), through NOLO's server.
Nothing, under the same zero-retention setting as chat. NOLO never stores the audio either.
Live data
The symbol, place or query (a stock ticker, a city for weather).
Open-Meteo, Finnhub, CoinGecko, TheSportsDB, OpenStreetMap and Wikimedia, all through NOLO's server. Four widgets refresh in your browser instead (currency, sunrise, holidays, map tiles) and those four do see your IP.
A normal API request; no profile of you.
Just opening the app
Nothing you typed. But the page pulls its typefaces from Google Fonts, and features like PDF reading or charts pull their library from a public CDN.
Google Fonts, and Cloudflare cdnjs / jsDelivr, directly from your browser, so they see your IP.
Standard CDN request logs. No content, nothing you typed. We'd rather name it than let you find it in the network tab.
Drive sync (opt-in)
An obfuscated copy of your chats (not end-to-end encrypted), only if you turn sync on.
Your own Google Drive (a private app folder). NOLO doesn't download it or keep a copy.
It lives in your Drive until you delete it. See the honest limit below.

If you never turn on sync, never schedule a task and never use a tool, the only thing that ever leaves your device is the message you send to get an answer.

On our side

What NOLO's own servers store.

We do keep a little, and we'd rather tell you exactly what than pretend it's zero. It's pseudonymous: tied to your anonymous ID, never to a name, email or raw IP, and never the content of your chats.

Per-message usage record

We store a daily counter per anonymous ID: credits consumed, images generated, and your plan. This is how daily limits and billing work. We never store the text of your messages or the answers. An automated job deletes the old rows every night.

Scheduled tasks, only if you create one

The one piece of your own text we hold: what you asked NOLO to do later, its title and settings, and a copy of up to 30 saved memories only if you switched on "Include my memory". All of it is encrypted (AES-256-GCM) with a key that only our server holds. Our server can decrypt it, because it has to read a task to run it, so this is encryption at rest, not end-to-end. The answer is not stored here: it waits on Cloudflare until your device collects it.

Daily usage & image counters30 days
Rolling-window counters7 days
Rate-limit buckets (hashed IP)7 days
Your ID, plan & subscription stateuntil you ask us to delete it
Scheduled tasks you create (encrypted)until done or deleted
Your IP address, in the clear, in our databasenever
The content of your chatsnever

Your IP only ever reaches our database as a salted one-way hash, and that bucket is deleted within a week. The honest footnote: our host, Vercel, does log the IP of every request to any website, ours included. That is unavoidable for anything hosted on the internet, and we would rather write it here than let "we never store your IP" quietly do more work than it should.

The honest part

Where the limits actually are.

Anyone can claim "fully private". These are the places where NOLO is not, stated plainly so you can decide for yourself.

Your history is on your device, but it is not encrypted at rest

Chats are stored in your browser's local storage in plain form. That keeps them off our servers, but it also means anyone with access to your unlocked device could open them. If that matters to you, use a device passcode and clear NOLO when you're done.

Drive sync is obfuscated, not end-to-end encrypted

When you turn on sync, your chats are scrambled on your device before they reach your Google Drive. But the key is derived from your Google account identifier, not from a password only you know, so it's obfuscation, not end-to-end encryption: Google, which holds both the file and that identifier, could read it. Treat it as "much better than plain", not "mathematically impossible for anyone".

Scheduled tasks are encrypted at rest, not end-to-end

A task has to run while NOLO is closed, so our server holds the key to read it. A stolen copy of our database would not show your tasks; NOLO itself can read them. And every run goes through Cloudflare, which sees the task and its answer in the clear until your device collects the answer, for up to 7 days, even if "Keep answering when you leave" is off.

Image generation uses a third-party, proprietary model

The chat models are open-weights and we name them. Image generation is the exception: it runs on fal.ai's proprietary model. The prompt still goes through our server without your identity, but it's fair to know that one capability isn't open-weights, and that your browser then loads the finished image from fal's CDN, which is one of the few moments a third party sees your IP.

We do run analytics. Cookieless, but real

NOLO uses Vercel Web Analytics and Speed Insights on the site and in the app: page visited, referrer, rough country, device type, load timings. No cookies, no visitor ID, nothing that follows you to another site, and never a word of what you type. An earlier version of this page said "no analytics". That was wrong, and this is the correction rather than a quiet deletion.

A handful of third parties do see your IP

Your messages never reach a provider with your IP attached, because our server stands in the middle for that. But your browser loads typefaces from Google Fonts, feature libraries from a public CDN, generated images from fal's CDN, and four live widgets refresh themselves directly. Each of those sees an IP address. The privacy policy lists every one and exactly when it happens.

Don't trust, verify

Check it yourself in two minutes.

You don't have to take our word for any of this. The browser already gives you the tools to watch what NOLO does.

Open the network panel

In NOLO, press F12 and open the Network tab, then send a message. Your message goes to NOLO's own API and nowhere else. No ad networks, no third-party profilers, no advertising SDKs. What you will see: Google Fonts, a library CDN, and NOLO's own cookieless analytics, all listed above and in the privacy policy.

Clear the storage

In the same panel, open Application → Storage and clear it. Your chats vanish, because that's the only place they live. There's no server copy to delete.

Check what was sent

Click any request to /api/chat and read the payload. There's no email, no name, no login token, just your anonymous ID and the message you chose to send.

Name the model

Ask NOLO which model is answering. It will tell you, the chat models are open-weights, so you can look up exactly what's running and judge it for yourself. See the comparison.

FAQ

Straight answers.

No, and we won't claim it. We keep pseudonymous daily counters (your anonymous ID, credits used, your plan) for 30 days so limits and billing work, and our host logs every request including your IP, as every host does. We never log the content of your messages and never write your IP to our database in readable form. "No content logs, no identity" is accurate; "zero logs" would be a lie.

We don't. Sync stores an obfuscated copy in your own Google Drive app folder, and NOLO never downloads it or keeps a copy. Two honest caveats: the key is derived from your Google identifier rather than a private password, so it's obfuscation, not end-to-end encryption, and Google could read it; and while you are signed in, our server sees that identifier and a Drive access token, so this rests on what our code does, not on mathematics.

No, and they don't keep them either. Requests through OpenRouter (the Pro model, served by CoreWeave, and photo reading on Fast and Plus) can only reach endpoints that store nothing. Groq would be entitled to hold data for 30 days for abuse monitoring, so we switched Zero Data Retention on at account level and it stores nothing at all. The one exception, and we'd rather name it than average it away, is fal: the image provider does collect the prompts sent to it. None of them can tie any of it to a person anyway, because there is no account and no IP of yours for them to tie it to. Provider by provider, it's all in the privacy policy.

To enforce daily limits, process payments and stop abuse, the bare minimum to run a service without an account. It's pseudonymous and short-lived, and you can see precisely what it is above.

Not the privacy model. The Android app is the same web app running inside a secure Android container, so there is still no account and your chats still live on your device. Two things are different: Google Play handles the download and gives us aggregate install and crash statistics under its own policy, and if you subscribe inside the app, Google Play Billing takes the payment. In that case we receive only a purchase token and a product ID, not your name, email or payment method, and you cancel or request a refund through Google Play rather than through us.

Not across the web, and not as a person. There are no advertising SDKs, no attribution SDKs, no third-party trackers and no cookies for tracking. What exists is cookieless page analytics on our own domain, described in the limits above, and pseudonymous usage counters so daily limits work. Nothing profiles you, nothing follows you elsewhere, and nothing is sold.

Every single company, by name, with what each one receives and keeps, is listed in section 7 of the privacy policy. If that list ever changes, that page changes. It is meant to be complete at all times, not aspirational.

Private by design. Honest about the rest.

Open it, watch the network, read the payload. Then decide.