Aletheia Nexus
A local-first path from a verifiable research paper to durable scientific knowledge.
中文 README · User manual (Chinese) · Contributing · Security
Why this name? Aletheia is Greek for truth; Nexus means connection. We want evidence scattered across papers, data, tools, and research practice to form trustworthy connections—so conclusions can be traced to their sources and each investigation can add to a researcher's long-term knowledge.
Why this project exists
Research has increasingly capable models, but still lacks a dependable entry point for facts. A DOI can lead to the main article, supporting information, a login screen, a paywall, a citation, or a dead link. Finding a plausible PDF is not the same as acquiring the correct main article with an explainable provenance. Errors at this boundary propagate into parsers, search indexes, knowledge systems, and agents.
Aletheia Nexus (AN) begins with a deliberately testable question: Is this locally saved file the intended paper's main text, and how did it get here? It treats a failed acquisition as an informative result rather than quietly importing the wrong document. The larger ambition is a researcher-controlled, auditable scientific knowledge foundation that can eventually connect evidence, methods, workflows, and decisions. The current repository implements the acquisition layer, not that entire future system.
What works today
| Maturity | Capability | Boundary |
|---|---|---|
| Implemented | DOI normalization and Crossref/DataCite metadata resolution | External services can be unavailable or incomplete. |
| Implemented | Full-text candidate discovery from metadata, OpenAlex, Unpaywall, and other configured sources | A candidate URL is only a lead, not proof of access or identity. |
| Implemented | Bounded public HTTP acquisition and static article/landing-page expansion | No subscription or access-control bypass. |
| Implemented | PDF structure, DOI/title identity, and main-article-versus-supplement checks | VERIFIED means the file identity/role is supported, not that its scientific claims are true. |
| Implemented | Provenance, SHA-256, explicit outcomes, and resumable verified-file checkpoints | Sensitive browser credentials are not stored in these records. |
| Experimental | Official Elsevier API where configured; persistent browser sessions and human handoff for legitimate institutional access | Requires the user's actual entitlement and may need login, MFA, or CAPTCHA. Multi-institution positive-control acceptance is not complete. |
| Experimental | Sequential batch runs with browser-session reuse | Site changes and access state can still require intervention. |
| Planned | Structured parsing, scientific memory, knowledge graphs, and agent workflows | Not delivered by the current release. |
The first public code release was v0.6.0. v0.6.1 adds publisher adapters, an installed CLI, Windows CI, and PyPI packaging without changing the frozen v0.6.0 tag. See the release history for exact test and real-DOI evidence. First-time testing by independent users remains open; the three-minute onboarding target has not yet been independently established.
How it works
DOI → metadata and candidate sources → bounded acquisition
→ PDF structure and identity checks → main-text role check
→ VERIFIED file + provenance + hash, or an explicit non-success status
Every access route converges on the same document validation. The browser engine handles navigation, response/download capture, challenge observation, and handoff. Narrow publisher adapters handle known article URL patterns and visible page differences; they cannot declare an article verified. A browser that displays a PDF has not by itself completed acquisition.
Get started
Python 3.11 or newer is required. With the v0.6.1 PyPI release:
python -m pip install aletheia-nexus
aletheia-nexus doctor
aletheia-nexus acquire 10.1371/journal.pone.0310216 --public-only --output-dir downloads
The --public-only example does not require a browser and may legitimately report EXHAUSTED if no verified main article is publicly reachable. A quick local CLI smoke test is aletheia-nexus --help; a live DOI attempt depends on network services and access rights.
For the experimental authenticated browser path:
python -m pip install "aletheia-nexus[browser]"
python -m playwright install chromium
aletheia-nexus acquire papers.json --output-dir downloads/papers --fail-on-unverified
papers.json may contain DOI strings or objects with doi and optional title. TXT and CSV input are also supported. The installed aletheia-nexus acquire command replaces the old scripts/batch_v06_download.py invocation; that script remains as a compatibility wrapper. For all options, run aletheia-nexus acquire --help and consult the detailed manual.
Check the PyPI project for published versions; a GitHub source checkout or release alone does not prove that a PyPI upload succeeded. To try an unmerged development branch instead, clone the repository and run python -m pip install -e . from its root.
Result semantics
VERIFIED: a validated main-article PDF exists locally with traceable acquisition evidence.INTERACTION_REQUIRED: the site needs human action; the program can wait and resume when the page becomes usable.ENTITLEMENT_REQUIRED: the current legitimate session has no full-text access, or the site asks for purchase.EXHAUSTED: configured routes and budgets were used without a verified main article. This does not mean the paper is nonexistent.
The output includes per-paper status, a batch report and checkpoint, and a .acquisition.json sidecar for verified PDFs. Only a file that still exists and matches its SHA-256 can be reused as verified on a later run. The tool does not provide publisher subscriptions, answer CAPTCHAs, or bypass paywalls.
Roadmap and participation
The next near-term priorities are to stabilize the acquisition architecture, make installation and first use straightforward across Windows/Linux, and obtain feedback from researchers who did not build the project. Later work will parse verified papers into source-linked objects, connect those objects to experimental context and research decisions, and expose auditable workflows to agents. These are directions, not current features.
If you are trying AN for the first time, please join the v0.6.1 first-time setup trial. A small report is especially valuable: which DOI, which legal access route, what status AN returned, and what you observed instead. Remove cookies, tokens, account details, institutional login screenshots, signed URLs, and copyrighted PDF bytes before opening an issue. See CONTRIBUTING.md and the issue templates.
The code is licensed under Apache-2.0. Third-party papers retain their own copyright and access terms; the project license does not authorize their redistribution.
Metadata
Release files for aletheia-nexus 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aletheia_nexus-0.6.1.tar.gz | 132.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aletheia_nexus-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 285.3 kB
Release files / aletheia_nexus-0.6.1.tar.gz
| Download URL | aletheia_nexus-0.6.1.tar.gz |
|---|---|
| Size | 132.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
733bbc46b56eb7ed8b98a3cd658082c31ab9a87e7ecf8d914ff2282319876c16
|
|
BLAKE2b-256 checksum How to use checksums |
b16c38c2020a75a9bb4db0dc0867262cafa0ce78ba5ed1abb970007adb316163
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / aletheia_nexus-0.6.1-py3-none-any.whl
| Download URL | aletheia_nexus-0.6.1-py3-none-any.whl |
|---|---|
| Size | 152.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ded4a4746fd1a180d9752030ed0433041bc18be54d1a3505b49e89edea4b753d
|
|
BLAKE2b-256 checksum How to use checksums |
86f45e0b8c40ca57a1a1498040d807e5cb9adfdf947005fb93c4d92f1e579cd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log