← All reviews
Certificate ID
RV-17
Published
13 Jun 2026
Founder-tested

NanoNets / docstrange

Tested by @balajiloganathan. Reviewed by RepoVerifier.

One run, on one machine, by the tester named above. Your results may differ on a different setup.

1400 GitHub stars at review

Result: Overhyped

01 Claim tested

Claims "100% private local processing." Local mode needs CUDA, so no Apple Silicon. Cloud mode wants Google auth and hit rate limits on a fresh account.

02 Measurements

Criteria as recorded for this run.
CriterionRecorded
Claim held1
Docs2
Runs1
Gotchatrue
Install4

Recorded before the five-criterion scorecard.

03 Environment

os
macOS Apple Silicon
user
repoverifiertest
python
3.13
package_version
1.1.8

As reported by the tester.

The version of the repo tested is recorded only if the tester listed it.

04 Observations

Claims 100% private local processing and free cloud API. Tested on macOS Apple Silicon, Python 3.13, docstrange 1.1.8. Local mode requires CUDA — no Apple Silicon support. Cloud mode requires Google auth and hit rate limits on first use with a fresh account. Nothing works out of the box.

What This Repo Claims

"Offers a free cloud API for instant processing or a 100% private, local mode."

That's the core promise. Two paths: cloud for convenience, local for privacy. 1.4k stars. Backed by Nanonets, a funded OCR company.

The job seeker stack use case is obvious — parse a resume locally, feed it to ollama, tailor a cover letter without your CV leaving your machine. That's exactly what we tested for.

What I Tested

Environment: macOS Apple Silicon, repoverifiertest user, Python 3.13, docstrange 1.1.8

Task: Extract markdown from a simple test PDF locally, with no data leaving the machine.

What Happened

Local Mode — CUDA Only

The README says gpu=True enables "100% local processing — no data sent anywhere." We ran it:

extractor = DocumentExtractor(gpu=True)
RuntimeError: GPU preference specified but no GPU is available.

Please ensure CUDA is installed and a compatible GPU is present.

Apple Silicon has no CUDA support. No fallback. No MPS (Metal Performance Shaders). No CPU local mode despite the README implying one exists (cpu=True throws unexpected keyword argument).

The source code confirms it — DocumentExtractor.__init__() accepts only gpu: bool. Cloud is the default. There is no local CPU path.

Cloud Mode — Rate Limited on First Use

Default init sends your document to Nanonets cloud. No API key needed to start, but it immediately prompts Google OAuth: 🌐 Opening authentication page...

⏳ Waiting for authentication...

After completing Google auth with a fresh account: Rate limit exceeded (10k/month). Please try again later.

Rate limited on the very first document extraction after a fresh login.

The Gotcha

The README lists "local processing for privacy and compliance" as a primary use case. In practice:

  • Local mode = CUDA GPU only. Excludes Apple Silicon, any CPU-only machine, and most developer laptops.
  • Cloud mode = requires Google auth, and the rate limit error on first use suggests account or IP-level throttling beyond the stated 10k/month.
If you have a Linux machine with an NVIDIA GPU, local mode may work. We could not verify this.

Verdict: OVERHYPED

The local privacy claim is the headline feature and it doesn't work on the most common developer hardware. Cloud mode works only if you clear the auth and rate limit hurdles. For the job seeker stack — parsing resumes locally with ollama — this does not fit. Look at dedoc or marker instead.

05 Evidence

Founder's own run.

For maintainers: README badge

Shows this result and its publish month. Links back to this record.

RepoVerifier: OVERHYPED
[![RepoVerifier: OVERHYPED](https://repoverifier.dev/reviews/nanonets-docstrange/badge.svg)](https://repoverifier.dev/reviews/nanonets-docstrange)
<a href="https://repoverifier.dev/reviews/nanonets-docstrange"><img src="https://repoverifier.dev/reviews/nanonets-docstrange/badge.svg" alt="RepoVerifier: OVERHYPED" height="20"></a>

Paste this in your repo’s README. Links back to the full review.

This review follows RepoVerifier Standard v1.0. Read the standard →