Skip to content

field_note · jul 18

Private OCR: extract text from images without uploading them

Most OCR tools send your image to a server. Here's why that's a problem for anything sensitive, and how on-device OCR in the browser reads text without the image ever leaving your machine.

Almost every free OCR tool works the same way: you upload your image, their server reads it, you get text back. For a screenshot of a meme, fine. For an invoice, a passport, a medical form, a signed contract, or an internal dashboard, you have just uploaded a private document to a company you know nothing about, to be processed, logged, and possibly retained on infrastructure you cannot see.

That is the quiet cost of "free" OCR, and it is why private, on-device OCR is worth understanding.

What "on-device" actually means

On-device OCR runs the recognition model inside your browser instead of on a remote server. The image is read locally and never transmitted. Concretely:

  • No upload. The bytes of your image do not travel over the network.
  • No account. Nothing to sign into, so nothing to tie the document to your identity.
  • Works offline. If the model is local, it does not need a connection to run.
  • No quota. There is no server metering you, so there is no daily limit.

The trade-off used to be quality, but modern in-browser OCR engines are good enough that for most screenshots and documents you will not notice the difference, and you can trade speed for accuracy when it matters.

Doing it in Chrome

I built TextQuill, a free Chrome extension that does exactly this: the OCR runs on your device, so the image stays in your browser. You can right-click an image, select a region of the screen with Alt+Shift+S, paste from the clipboard, or upload a file, and get editable text back in 16 languages, with a searchable history that is also stored locally. No upload, no account, no ads, no tracking.

When on-device is the only acceptable option

If you handle any of these, cloud OCR is a data-handling decision you probably do not want to make casually:

  • Financial documents (invoices, statements, receipts with account numbers)
  • Identity documents (IDs, passports, licenses)
  • Anything under an NDA or internal-only classification
  • Personal or medical information

For all of it, the safest OCR is the kind where the image never leaves your machine. That is the whole idea.

For the broader set of ways to get text out of an image, see how to extract text from an image in Chrome, or if you mostly work from screenshots, screenshot to text.

TextQuill is free on the Chrome Web Store.

Working through something like this? I help teams ship AI and cloud systems that hold up, and cost what they should.