The original paper stays beside the translated passage
EasyRead lets you keep the original PDF in view while reading translated text, with passage-level notes and questions beside it. That is a useful arrangement for research: when a translated condition sounds too strong, you can check the source rather than opening another app and hunting for the sentence. AI answers sit apart from the paper's text. The design helps distinguish an author's claim from a model's explanation, although you still have to judge both.
Our checkout contained 372 files, roughly 30,439 source lines, and 15.5 MB of material. GitHub identifies Python as the primary language. The lab selected npm, which covers a different part of this application. Its main README is Chinese, and the English README describes an English interface and multiple translation languages. English-speaking readers can use the original-text mode without making Chinese translation part of the workflow.
What happened when we ran it
Our sandbox installed EasyRead's npm dependencies in 11 seconds, adding 266 packages and using 108 MB on disk. Npm audit reported 0 known vulnerabilities. We ran commit 006d244 on October 16, 2026, inside an unprivileged Debian container with 3 CPUs, 8 GB of RAM, the lab-node:22 image, and no secrets. That is a clean result for the dependency path measured by this run.
The harness found no build script or target and no test script or target, so both steps were skipped. The scan still found 2 CI workflow files and a tests directory, with no Dockerfile. Those observations can coexist: a directory's presence does not mean the harness executed its contents. Our run provides no result for PDF import, equation reconstruction, translation accuracy, or saving an annotation. Calling the application fully checked would misstate the evidence.
Local storage does not decide where model requests go
The README separates the local library from the translation engine. You can use an authenticated CLI, a hosted API, or a local model service. Paper content and questions go to the selected model. Before importing an unpublished manuscript, check that selection and the permissions it implies. Local storage is useful, but the service performing translation remains a separate decision. Existing CLI access also brings that account's quota and configuration into the reading workflow.
The 108 MB npm footprint excludes any claim about the Python environment or local model weights. The documented source reader uses a local Python service and browser UI, while Electron supplies a desktop window around the same service. The English guide explains the source route and provider setup. If you already use a supported CLI, trying the reader may be convenient. Otherwise, choosing and configuring a model is part of adoption, rather than a detail handled by the download.
Notes and imports suit an individual research workspace
Zotero migration reads a copy of its database and imports papers with their collections and metadata, according to the README. Linked-file imports can leave the original PDF in place, which makes the continued availability of that path important. Translation can wait until you choose a paper. I like that separation: importing a library should not automatically commit you to sending every document to a model or spending quota on papers you may never read.
Our 266-package install did not exercise any migration or annotation round trip. Start with a copied paper, edit a translated term, add a note, then export and reopen the result. EasyRead stores paper material and reading data in files, and its offline HTML export has a particular limit: new edits stay in the receiving browser until exported and merged back. That is manageable for one reader, but it needs care when copies move between people or devices.
Desktop downloads carry explicit signing limitations
The README says Windows packages lack code signing and macOS packages use a project self-signed certificate without Apple notarization. Linux users get an AppImage, with FUSE troubleshooting documented separately. These are concrete distribution limitations, especially on managed work computers. Ask whether the source route or the packaged app fits your environment before moving a library. The existence of an installer does not establish that your organization's desktop policy will accept it.
The 11-second npm result gives no evidence about those installers. The repository also includes reading skills for Claude Code and other agents, which can read notes and write discussions into the same library. That makes backup discipline more useful: a reading session can involve both your edits and agent-written material. Decide which directory is the working copy before adding cloud-folder synchronization, and keep an independent copy of valuable annotations.
October releases address specific reading problems
The last push was October 15, 2026, and release v1.4.3 followed that day. GitHub showed 963 stars and 5 open issues and PRs. Release notes describe formula highlighting, PDF-follow fixes, and annotation undo changes. They also say the input-method shortcut fix still needs verification with an actual macOS Zhuyin input method. That is a helpful boundary to preserve, especially when a closed report might otherwise look like complete hardware validation.
Our 0-vulnerability npm audit supports a trial, with the same limited scope as the skipped checks. Choose Zotero if organizing and citing sources is the main job. Choose PDFMathTranslate if the deliverable is primarily a translated PDF. I would keep EasyRead for a personal reading workflow where the source page remains visible, and check every consequential translated claim before carrying it into my own work.

