Handwriting OCR
Photograph a handwritten page and get an editable draft back — cursive included. Ordinary OCR returns near-noise on joined-up writing; this reads most of the words. It is a rough transcription for you to correct, not a finished document, and it all runs on your device.
Your page
Drop a photo or scan of handwriting here — or click to choose
JPGPNGWEBPTIFFYour files are never uploaded — everything runs on your device.
Handwriting model
Text
How to turn handwriting into text
-
Add the page
Drag in a photo or scan of the handwritten page (JPG, PNG, WebP), or click to choose one. It loads straight into your browser — nothing is uploaded.
-
Start the read
The first run downloads about 250 MB of handwriting model, which then stays on your device. The page is split into lines and each line is read in turn, so you see the progress line by line.
-
Correct the draft
The text lands in an editable box. Read it through and fix the words it got wrong — then copy it or download it as a .txt file.
What you get
Cursive, not just block capitals
Joined-up handwriting is where ordinary OCR gives up: on our test pages it read about 7% of the words in cursive. This model reads roughly 70% of them. That gap is the whole point of the tool.
A draft to edit, not a result to trust
Expect roughly 60–70% of the words to be right on a real photo — better on neat block printing, worse on messy or cursive writing. The output opens in a large editable box because correcting it is part of the job.
Private and free
No account, no limits, no watermark. The page is never uploaded — the model runs in your browser, and after the first download it works offline.
The model behind it
Powered by TrOCR-small-handwritten, Microsoft's transformer OCR model, released under MIT in the unilm repository. It runs at full fp32 precision because the quantised build reads cursive noticeably worse — we ship the larger, better one.
Frequently asked questions
- How accurate is it, really?
- On photos of real handwriting it gets roughly 60–70% of the words right. Neat block printing does better — around 80%. Cursive and semi-cursive land near 70%. Messy writing, bad lighting or a steep camera angle push it lower. Put plainly: expect to correct something like one word in three, and read the whole thing before you rely on it.
- Why not just use the normal image-to-text tool?
- Because it cannot read handwriting. The standard OCR engine is trained on printed characters, and on cursive it recovers about 7% of the words — noise. It is still the better choice for anything printed or typed: it is about fifty times smaller and finishes in a second.
- Why is the download so big, and why is it slow?
- Reading handwriting needs a much larger model than reading print — about 250 MB against about 5 MB. It downloads once and is then cached on your device. Each line of the page is read separately, so a full page takes roughly half a minute with a graphics card, or about a minute without one.
- Does it work in languages other than English?
- Not well. The handwriting model was trained on English, so it will try to force other languages into English words. Accented characters and non-Latin scripts are not supported.
- What kind of photo works best?
- Straight-on, well lit, and close enough that the writing fills the frame. The page is split into lines before anything is read, so a skewed or curled page hurts twice: lines get missed, and the ones that are found are harder to read. Flattening the page and shooting from directly above makes a real difference.
- Is my page uploaded anywhere?
- No. The model runs entirely in your browser on your own device. Your page is never uploaded, and nothing is kept once you close the tab.
- Is it free?
- Yes — completely free, no account, and no limits. Everything runs on your device, so there is nothing for us to meter.
- Which model does it use?
- TrOCR-small-handwritten: a vision-transformer encoder with a language-model decoder, about 235 MB at fp32. We deliberately do not ship the quantised version — it drops word accuracy from roughly 76% to 66% on our test pages. It runs on WebGPU where available, and on WebAssembly otherwise.
Curious how this differs from ordinary OCR? Classical OCR scores 1.1% on cursive; this does not. Printed or typed instead of handwritten? Use image to text — about fifty times smaller and a second a page. Working from a PDF? Use the PDF tools.