Skip to content
naina

In-browser OCR · nothing uploaded

Extract text from any document.

PDFs and images, in your browser, free and without limits. Your file never leaves this tab — there is no server to send it to.

Drop a PDF or image, paste, or click to choose

PDF, PNG, JPEG, WebP — several files at once is fine

Nothing leaves this tab. There is no server to upload to — detection, recognition and markdown assembly all run here, in WebAssembly. Open your network panel and watch: once the weights are cached there is no traffic at all.
Script detection is automatic. Leave it on Auto unless you know better. Set it explicitly and choosing wrong returns plausible-looking wrong text, not an error, because the model reads confidently in whichever alphabet you give it. Handwriting is unreliable. Full limitations.

How this works

Nothing is uploaded

The whole pipeline runs in this tab, including PDF rendering. Open your network panel and watch — once the weights are cached, there is no traffic at all. No account, no quota, no upload.

Works offline

Weights are cached by content hash on first use. Come back with no connection and it still reads.

The same code as the server

Detection post-processing, text decoding, reading order and markdown assembly are the same C++ that naina's Python and Node packages run — compiled to WebAssembly, not rewritten in JavaScript.

What it cannot do

Handwriting is weak, and scripts outside PP-OCRv6's character set (Devanagari among them) come back as confident nonsense rather than an error. Latin and CJK print are its strengths.