Skip to content
dialegein

Tesseract.js

WebAssembly port of the Tesseract OCR engine for browsers and Node.js.

Jobs OCR

Since 2015

Visit Tesseract.js

Opens the vendor's own site.

Jobs covered

Open a task to see exactly what the vendor documentation supports.

OCR Browse all ocr tools

running optical character recognition on images and video frames with Tesseract.js: loading a WebAssembly Tesseract worker in a browser or Node.js, selecting/downloading language data, and returning recognised text with optional word/symbol geometry, hOCR or TSV outputs when enabled. The scope records OCR of image/video inputs and the library/worker model, and explicitly excludes PDF reading or rasterisation, searchable-PDF creation, PDF editing, redaction, digital signatures, accessibility remediation/validation, handwriting guarantees, layout reconstruction and any hosted-service or model-improvement claim

Where your files are processed

No server involved

A JavaScript library that runs the OCR engine as a WebAssembly module inside your own browser or Node process. No vendor service receives the image. Note it fetches language data from a CDN by default, so not every byte is local. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.

A WebAssembly build of Tesseract executed inside the caller's browser or Node.js process via a Web Worker; no Tesseract.js-operated server receives the image. Language data is downloaded from a CDN by default unless langPath is configured, so local processing does not describe all network traffic.

The library is a programming interface only, with no hosted service or account.

What it does

Tesseract.js is a JavaScript library that performs optical character recognition on images and video frames in a browser or under Node.js. It does not reimplement OCR in JavaScript: it loads a WebAssembly build of the Tesseract engine in a Web Worker and returns recognised text.

Word/symbol geometry, hOCR and TSV outputs are available but are not the default text-only result, and the exact output options should be enabled explicitly. Recognition languages and trained data are loaded at runtime, commonly from a CDN unless langPath is configured.

The current npm release is 7.0.0 (latest GitHub release 15 December 2025), Apache-2.0, from the naptha project. It is an OCR library, not a PDF tool: it cannot open PDFs, create searchable PDFs, edit/redact/sign documents or validate accessibility, and it does not improve Tesseract's recognition model.

Best for

Developers who need offline or privacy-sensitive OCR inside a browser app or Node service, and who can either accept language data being fetched from a CDN or self-host those files.

Worth knowing

It cannot read PDFs at all, so you must rasterise pages yourself before OCR; it does not write searchable PDFs or preserve a PDF text layer. Accuracy on poor-quality scans trails commercial OCR engines, handwriting is not a supported strong point, and layout recovery is limited to whatever text/geometry/hOCR/TSV the engine returns.

Language data is fetched from a CDN by default unless langPath is configured, so local processing is not the same as no network traffic. It is an OCR library only: no PDF editing, redaction, signing, accessibility remediation or semantic understanding, and no modification of Tesseract's recognition model.

No hosted service or account is offered; no price applies beyond Apache-2.0.

Details, and where each comes from

Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.

Versions covered
Web · Self-hosted
Website
tesseract.projectnaptha.com
Requires an account
Not applicable
Watermark on the free tier
Not verified
Maximum file size
Not verified
Batch processing
Yes
Data residency
Self-hosted
Open source
Yes
Self-hostable
Yes
Licence
Apache-2.0.

Apache-2.0. The npm package is 7.0.0 (latest GitHub release 15 December 2025), authored by the naptha project; the WebAssembly engine is a separate naptha/tesseract.js-core package.

No company is documented and no hosted service is offered. The project wraps the separate Tesseract OCR engine and does not modify its recognition model.

Redaction
No redaction feature
Programmatic access
Embeddable library · Browser JavaScript
Last availability check
Responded in 158 ms 21 October 2026

Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.

What the redaction verdict rests on

From the vendor's own documentation, read 22 September 2026. Not tested by us.

What that does not establish

The repository README is the source. tesseract.js is the same OCR engine compiled for the browser, so the same reasoning applies: recognition, not modification. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout.

Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty.

https://github.com/naptha/tesseract.js

What the vendor says

Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded - not that we tested the behaviour, unless the note says we did.

  • “Tesseract.js aims to bring the Tesseract OCR engine (a separate project) to the browser and Node.js, and works by wrapping a WebAssembly port of Tesseract.”

    Checked by us - the source says this Read 22 September 2026

    Confirmed verbatim: the sentence appears unaltered in the README, and it is a description of architecture rather than of results, which makes it the more checkable kind of capability claim. Two details in it are worth having: it wraps "a WebAssembly port of Tesseract", so the engine is not reimplemented, and it describes Tesseract as "a separate project", which matters for licensing and for anyone expecting the two to move together.

    The sentence immediately after the claim is a scope limit the claim splits across two entries in this index - see the neighbouring claim about PDF files and the recognition model. Recorded as the project's documentation; no library was installed and no control was run.

    Standing: Re-read: the text is unchanged, but the page publishes values that move

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    0df122b989fe06d09e99809259777b550cda339fc1fb9a0829c62a7bc6c4f795

    How we checked

    Re-verified verbatim on 2026-09-22: https://github.com/naptha/tesseract.js re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-naptha-tesseract-js-08f51277.txt.

    What this hash proves, and what it does not

  • “Most notably, Tesseract.js does not support PDF files and does not modify the Tesseract recognition model to improve accuracy.”

    Checked by us - the source says this Read 22 September 2026

    Confirmed verbatim: the sentence is the second half of the paragraph, following "This project does not modify core Tesseract features." Both halves are limitations and both are the kind a reader needs before choosing: no PDF input, and no model tuning for accuracy. The second one is the more consequential and the easier to misread - a wrapper around Tesseract inherits Tesseract's accuracy rather than improving on it, and a reader who assumed otherwise would be disappointed by results rather than by an error message.

    This is the third library in this batch to document what it cannot do, with pdfplumber and PDFsharp.

    Standing: Re-read: the text is unchanged, but the page publishes values that move

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    0df122b989fe06d09e99809259777b550cda339fc1fb9a0829c62a7bc6c4f795

    How we checked

    Re-verified verbatim on 2026-09-22: https://github.com/naptha/tesseract.js re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-naptha-tesseract-js-08f51277.txt.

    What this hash proves, and what it does not

Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked - it is not a judgement about anyone.

Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.

Visit Tesseract.js Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
2 claims taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 21 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: https://registry.npmjs.org/tesseract.js/latest (7.0.0, Apache-2.0, dependency tesseract.js-core; read 2026-10-16); https://github.com/naptha/tesseract.js (Apache-2.0, created 2015-06-24, last push 2026-05-17, latest release v7.0.0 2025-12-15; read 2026-10-16); README (browser/Node, WebAssembly/Web Worker, no PDF support, no recognition-model modification, language/CDN and output notes; read 2026-10-16).