OCR It – pull text out of un-copyable documents for your LLM

github.com

140 points by thiagolima a month ago


rickcarlino - a month ago

Is Tesseract still the best choice for local OCR in 2026? I was always underwhelmed with its real-world performance.

tobinfekkes - a month ago

Also available natively to the OS (Windows) with PowerToys, if you want an alternative to a browser extension. One of the unsung heroes of that library.

Jury is still out on which is more trustworthy handling any personal data, Microsoft or Google. Neither.

Barbing - a month ago

  “Pin a region once. Hit a hotkey on every page. Get the whole book as text.”
Much better than the old definition of “region lock”, nice.

HN isn’t a fan of the generated readmes though, though vibed software (thoroughly used) can be all good.

andreashaerter - a month ago

If you use a Linux desktop (I am on Fedora), Gradia[1][2] is definitely worth a look as well.

It has a similar workflow for taking screenshots and then immediately annotating or editing them, without having to open a separate image editor. And: it provides also an local OCR feature (which is why I comment this here), you can extract text from a screenshot with on-screen OCR using Tesseract with the small button beside the "Crop Image" one.

Combined with the syntax-highlighting feature for screenshots of code snippets, the OCR is surprisingly useful in combination if you e.g. quickly discuss some code in a chat when copy is blocked for whatever reason (e.g. somone sent you a screenshot in the first place).

[1] https://gradia.alexandervanhee.be/

[2] https://flathub.org/en/apps/be.alexandervanhee.gradia

Edit: fixed wrong link index numbers

thiagolima - a month ago

I added Firefox support. 0.3.0 builds for both browsers from the same source, and it's submitted for both google/chrome and mozilla/firefox, i am waiting on reviews now, which usually takes a few days.

Until it's approved you guys can download the ready to use releases:

Download ocr-it-firefox-0.3.0.zip from https://github.com/thiagotigaz/ocr-it/releases/tag/v0.3.0

If you'd rather build from source, the steps are in the README: https://github.com/thiagotigaz/ocr-it#install

kalinkochnev - a month ago

Does anyone have suggestions on how I could OCR lots of handwritten math notes with diagrams? I have tons of PDFs waiting for me to manually type them myself and can't justify dedicating weeks to do it.

thiagolima - a month ago

Hi guys, the chrome extension was finally approved and is now available at https://chromewebstore.google.com/detail/ocr-it/pekiamimgjbj...

We are still waiting for the firefox extension to be approved, i will post it here whenever we hear something. In the meanwhile it can be tested with the zip file here https://github.com/thiagotigaz/ocr-it/releases or by building manually.

shimonabi - a month ago

https://learn.microsoft.com/en-us/windows/powertoys/text-ext...

maestroquirk - a month ago

Love how this is just a chrome extension... Just made an API so that you could easily OCR everything with SOTA results (using finetuned VLM) at 1/3rd of the usual costs... Would absolutely love to chat and see if we can help out !

jbverschoor - a month ago

Is this similar to CleanshotX?

fintuner - a month ago

[dead]

- a month ago
[deleted]
thiagolima - a month ago

Half the context I want to give a model is locked inside something I can't select from: a scanned book, a slide deck, a course viewer, a "PDF" that's really page images. Copy-paste gets you nothing, and screenshotting 200 pages by hand isn't a plan.

OCR It is a Chrome extension for that gap. You drag out a capture region once — the text block of the reader, say. After that, one hotkey per page screenshots that exact rectangle, OCRs it, and appends the result to a running transcript. Or start an auto-run and it captures, turns the page, and repeats until the document ends. Then Copy all, or Download .txt, and you have a file to paste into Claude or drop into an agent's context.

Everything runs locally. Tesseract's wasm build and the language data (~10 MB) are committed into the extension, so there are no network requests at all, no API key, and no host permissions at install — single captures ride on activeTab. The irony of an AI-adjacent tool that never talks to a server was not lost on me, but the pages you're capturing are often exactly the ones you don't want to ship to a third party.

Three things turned out more interesting than expected:

- MV3 service workers have no DOM and no Worker, so cropping and OCR live in an offscreen document.

- The next-page control is stored as a point, not a CSS selector. A point survives DOM re-renders and reaches into cross-origin iframes and shadow roots, which nothing the top frame can express does. Routing it was the fiddly part: window.screenX inside an iframe reports the browser window, not the frame, so frames locate themselves by walking same-origin ancestors, and across an origin boundary the parent hands the offset down by postMessage.

- The auto-run waits for each page's OCR before turning. That's what makes end-of-document detection work; a timer-based loop sails past the last page and fills your transcript with copies of it.

Limitations: Chrome's own PDF viewer can't be auto-advanced (it's a plugin no extension can inject into, though capturing from it works fine); the region is a fixed rectangle on screen, so resizing or zooming mid-run breaks it; and accuracy tracks the source — crisp rendered text reads at 93-95% confidence, scans need cleanup before they're worth feeding to anything.

Tests drive a real headless Chrome over CDP, which had its own surprises: Chrome 137+ ignores --load-extension, and headless can't show the optional-permission prompt, so the suite installs a copy with the grant baked in plus a real toolbar click via Extensions.triggerAction to prove the ungranted path still works.

MIT, no build step: https://github.com/thiagotigaz/ocr-it

harsh_patel14 - a month ago

[flagged]