Tesseract.js is a pure JavaScript OCR library with 38,000+ stars on GitHub that extracts words in more than 100 languages from images — entirely in the browser or in Node.js.
Tesseract.js brings the battle-tested Tesseract OCR engine to the web platform by wrapping its WebAssembly port. That means text recognition happens on the client: no server round trips, no per-page API fees, and no documents leaving the user’s machine — a real privacy advantage for receipts, IDs and business documents. The API centers on asynchronous workers: create a worker for a language, recognize images from URLs, files, buffers or canvas elements, and reuse the worker across many images. It loads via CDN script tag, ES modules or npm, works with bundlers like webpack, and runs server-side in Node.js (version 7 requires Node 16+) for batch pipelines. Demos on the project site show still-image and real-time video recognition. The library has been a staple of the JavaScript ecosystem for years and remains maintained, with releases continuing into 2026.
Tesseract.js is completely free and open source under the Apache License 2.0. There is no API key, no usage metering and no paid tier — you can even serve the engine files from your own CDN.
Web and Node.js developers who need OCR inside an app — receipt scanning, document intake, accessibility tooling — without standing up an OCR backend or paying a cloud vision API.