Does FlowRead Upload My PDFs?

No. Your PDF file is not uploaded. It stays in your device's storage, and opening or reading it involves no copy of the document being sent anywhere. When you select a passage and ask for a definition, translation or explanation, that passage and a short run of surrounding text is sent to our servers so a language model can answer — never the file, and never the rest of the document.

Updated · 6 min read

Installing a reading app means pointing it at documents you may not want anyone else to have: unpublished research, client contracts, medical letters, work material under NDA. It is fair to ask exactly what moves. Here is the precise answer, including the parts that are less convenient to say.

What leaves your device, and when

When you…What is sentWhat is not sent
Import or open a PDFNothing from the documentThe file, its text, its title
Read, scroll, zoom, bookmarkNothingYour position, your reading habits
Highlight a passageNothing by defaultThe highlighted text
Ask Define, Translate or ExplainThe selected passage plus nearby contextThe file, other pages, the rest of the document
Sign in (optional)Your email addressAnything about your documents
Every outbound request FlowRead makes during normal reading. If an action is not in this table, nothing leaves.

The distinction that matters is between a document and a passage. Tools that let you ask questions about a whole PDF have to upload and index the whole PDF; that is how they work, and it is a reasonable trade if the document is not sensitive. FlowRead answers questions about the sentence you are looking at, which is a smaller question that needs a much smaller amount of text.

The one request you might not expect

Being straight about an awkward detail: the reader currently downloads its rendering engine from a public CDN when you open a document. FlowRead displays PDFs using PDF.js, the open-source renderer that also powers Firefox's built-in viewer, and today that code is fetched over the network rather than bundled into the app.

What that means concretely: the CDN sees a request for the viewer code, from your IP address, at that moment. It does not see your document, its name, or anything in it — the file never goes near that request. But it does mean two things worth knowing: opening a document is not yet a fully offline operation, and a third party can infer that someone at your address opened a reader.

What we record about AI requests

Every AI request writes a usage record, because an app that calls a paid model without counting the calls goes broke or gets abused. That record is deliberately made of metadata only.

  • Recorded: which action ran, which provider and model answered, how many tokens it used, how long it took, whether a cached answer was reused, and whether the request failed.
  • Not recorded: the text you selected, the surrounding context, the custom question you typed, or the answer you got back.

This is enforced in code rather than by policy: the telemetry layer strips any field whose name looks like content — text, prompt, message, selection, context — before anything is written or emitted. The ledger can tell us that a definition was requested; it cannot tell us what word.

What we cannot see, structurally

Some guarantees come from policy and some come from architecture. These are the architectural ones, which are the sort worth trusting, because breaking them would take a deliberate rewrite rather than a change of mind.

  • Your library. The list of documents you have, their names and your progress live on your device. There is no server-side copy to browse.
  • Documents you never ask about. No request is made for a file you simply read, so there is nothing for us to have.
  • Whole-document features are switched off. The document-indexing and document-chat operations exist in the codebase and ship disabled. They cannot be triggered by reading; enabling them would be an explicit, visible choice.
  • Model provider keys never reach the app. The mobile app holds no provider credentials and talks only to our backend, so it cannot send your text to a model vendor directly even if something went wrong.

Where your highlights and notes live

On your device, in app storage, identified by the content of the document rather than its file path. That last detail is why your highlights survive moving or renaming a file, and it is also why they are not sitting in an account somewhere by default.

If you are signed in, highlights and reading progress for documents the backend already knows about can be mirrored so they are not lost with the device. That mirroring is best-effort and additive: the copy on your device stays the source of truth, and reading keeps working when the network does not.

How to check any of this yourself

You should not have to take a company's word for its own privacy claims. Three checks anyone can run, and they work on any reading app, not just this one.

  1. Watch the upload, or its absence

    A tool that needs your whole document has to transfer it. Open a large PDF — 40 MB or more — and watch how long it takes before features become available. Instant means the file did not go anywhere.

  2. Cut the network

    Turn on airplane mode and use the app. Whatever still works is genuinely local. Whatever stops needed a server, and now you know which is which.

  3. Read the retention terms, not the headline

    'We do not share your data' is not 'we do not keep it'. Look for how long documents are stored, whether they train models, and whether deletion is immediate. Ours are in the privacy policy.

One more thing: FlowRead has not shipped yet

This page describes an app that is coming to iOS and Android, not one you can install today. It is published now because the data-handling design is a reason to be interested or not, and you should be able to judge it before you are invested. If it sounds right, join the waitlist.

Claims about other products were checked against their own public documentation on . Vendors change plans and privacy terms without notice — if you spot something out of date, tell us at support@getflowread.app and we will fix it.

Frequently asked questions

Does FlowRead upload my PDF files?
No. The file stays on your device. Importing, opening and reading a document involve no copy of it being sent anywhere. Only the passage you explicitly select for an AI action is transmitted, along with a short run of surrounding text.
What exactly gets sent when I ask for a definition?
The text you selected, plus a bounded amount of the text immediately before and after it so the answer can reflect how the term is used in context. Not the page, not the chapter, not the file.
Can FlowRead staff read my documents?
Not the documents, because they are never received. AI requests are recorded as metadata only — operation, model, token counts, timing — and the telemetry layer strips content-shaped fields in code before anything is stored.
Does FlowRead work without an internet connection?
Your library, reading position, highlights and notes are all local and do not need a connection. Two things currently do: AI lookups, because the model runs on a server, and opening a document, because the reader still fetches its rendering engine from a CDN. Bundling that engine is planned before launch.
How is this different from ChatPDF?
ChatPDF uploads and indexes your entire document so you can ask about any part of it, which is genuinely useful and a reasonable trade for documents you do not mind sharing. FlowRead keeps the file on your device and only sends what you highlight, which means it cannot answer questions about pages you have not read.
Will you add whole-document features later?
Possibly, as something you switch on per document rather than something that happens because you opened a file. The code for indexing and document chat exists and ships disabled precisely so it cannot be reached by accident.

FlowRead is coming to iOS and Android

A local-first PDF reader that explains what you are reading without uploading your documents. Join the waitlist to hear when it ships.

Join the waitlist

Keep reading