{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreifllbk7bce6nsqbsvqtowh42iacp3vs3b2m2vuzcicomyxudnw4sy",
"uri": "at://did:plc:fuaxi56ej27ymlesklypt3ar/app.bsky.feed.post/3mfaxew6xlbv2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreifcwlmlpdijkzdmcrpvqux3yhupdmr4wjvhoye2nwv6ffp4snj2h4"
},
"mimeType": "image/png",
"size": 261770
},
"description": "To my delight and surprise, local Qwen3-VL:8b WER is acceptable, even on my cryptic handwriting",
"path": "/usable-local-ai-handwriting-recognition/",
"publishedAt": "2026-02-20T01:28:10.000Z",
"site": "https://www.autodidacts.io",
"tags": [
"100DaysToOffload",
"View more posts in this series.",
"using local LLMs (aka “AI”) for OCR of typewritten manuscripts",
"my essay on Sonder",
"Dostoyevsky",
"productive insomnia",
"Matthew effect",
"Boris Smus’s prompt",
"OCR Arena leaderboard"
],
"textContent": "****Note:**** this post is part of #100DaysToOffload, a challenge to publish 100 posts in 365 days. These posts are generally shorter and less polished than our normal posts; expect typos and unfiltered thoughts! View more posts in this series.\n\n\n\n\nI recently wrote about using local LLMs (aka “AI”) for OCR of typewritten manuscripts. A few days later, I tried the same set-up with an essay that I’d written in the middle of the night, and was stunned at how good the results were.\n\n_Specifically, the first draft ofmy essay on Sonder, which was written “almost in a frenzy”, as Dostoyevsky might say, while half asleep, following the technique described in my essay on productive insomnia. Since I had no plans to run OCR on it, or show the draft to anyone, I was optimizing for speed, not legibility._\n\nMy handwriting is … not renowned for its legibility. I write quite a bit, and tend toward fast and sloppy. I have hoped that _eventually_ an OCR would be able to process my handwriting, but until now, nothing was even close.\n\nUsing the same command and prompt as I used for typewritten documents, the word error rate was far worse than typewritten, but definitely worthwhile. As before, I was processing JPG files scanned at 600dpi. It took ~20–30 mins to process 4 pages. I later tried it on another essay, with `deepseek-ocr`, and processing time was _much_ faster, and accuracy seemed relatively equivalent.\n\nQwen3-VL has a bad habit of including its thinking in the output even when it’s not supposed to. It even had the gall to correct “michael effect” to “Matthew effect”. (It was right, of course; I suspected I had mis-remembered the name, and would have caught it in fact checking.) This crossed a line: I don’t want OCR editing my text, even if it makes it better! This was especially offensive because the handwritten text it was correcting without my consent was my forthcoming essay, _Underrated reasons to dislike AI,_ and non-determinism featured prominently.\n\nI ran it again, using Boris Smus’s prompt to keep Qwen on the rails:\n\n\n time ls **.jpg | sort -n | xargs -I{} ollama run qwen3-vl --hidethinking \"./{}\\n$(cat path/to/dotfiles/prompts/qwen-handwriting-ocr.txt)\" >> output.txt\n\n\nThe quality regressed a tad in other ways (Tesseract became Tessera), but this got Qwen to stop talking to itself and correcting me. I could bask in my typos.\n\nClaude Opus is, of course, better. But if you want your writing to stay on your device, local vision models can now OCR handwriting decently well on consumer hardware. And Qwen3-VL:8B is currently the top open-weights model on the OCR Arena leaderboard.",
"title": "PSA: local AI handwriting recognition is usable now",
"updatedAt": "2026-02-20T04:57:43.264Z"
}