sourcelens 
sourcelens collects the latest research on any topic into one chronological catalogue. It searches PubMed, Europe PMC, arXiv and OpenAlex, downloads the open-access full texts, finds the code and packages the papers link to, and exports references for Zotero or LaTeX. Run it again later and it adds only what is new; notes you write in the catalogue are never overwritten.
Website: https://bhagesh-h.github.io/sourcelens/
Install
Python (3.10 or newer):
pip install sourcelens
Go binary (Linux and macOS, one file, no dependencies). Download it from the latest release, or:
curl -fLo sourcelens https://github.com/bhagesh-h/sourcelens/releases/latest/download/sourcelens_linux_amd64
chmod +x sourcelens && mv sourcelens ~/.local/bin/
For other systems replace linux_amd64 with linux_arm64, darwin_arm64
(Apple silicon) or darwin_amd64 (Intel Mac). With Go installed:
go install github.com/bhagesh-h/sourcelens/cmd/sourcelens@latest.
Both have the same commands. To convert PDFs to text, the Go binary needs
poppler (apt install poppler-utils, brew install poppler).
Use
sourcelens config set contact_email you@example.org # once; Crossref, OpenAlex, NCBI and Unpaywall ask for it
sourcelens "CRISPR base editing" # start a catalogue; run again later to add what is new
sourcelens query --topic "CRISPR base editing" --range 1m
sourcelens export --topic "CRISPR base editing" --format BIB --out crispr.bib
Commas, semicolons and OR separate alternatives, every word of an
alternative is required, and double quotes keep a phrase together:
sourcelens '"base editing", "prime editing"'.
| option | meaning |
|---|---|
--range 1m, --from 2024 |
how far back to search (a new topic starts 12 months back) |
--types papers |
metadata only, no downloads |
--sources pubmed,arxiv |
only these sources |
--dry-run |
print the plan and run nothing |
--dir DIR |
keep the catalogue in DIR |
Each topic gets a folder such as ~/sourcelens/crispr-base-editing/, with
progress.csv as the main table. sourcelens config set output DIR changes the folder, and
sourcelens help lists every command.
Documentation
- Install options: pipx, PDF extras, Docker, Python or Go
- Usage: how a topic becomes a search, every command and option
- Outputs: the catalogue folder and the columns of
progress.csv - Configuration: settings and catalogue configuration
- Sources and limitations
- Development and publishing
- Default topic: aging clocks
License
GPL-3.0. See LICENSE.
Metadata
Release files for sourcelens 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sourcelens-1.0.0.tar.gz | 129.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sourcelens-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 263.6 kB
Release files / sourcelens-1.0.0.tar.gz
| Download URL | sourcelens-1.0.0.tar.gz |
|---|---|
| Size | 129.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3bc02fdb783fabcb8e6a96a87cc8034f0758d686d4d0f71fd38bd9a29412069a
|
|
BLAKE2b-256 checksum How to use checksums |
a0dc320f2693123e02ffc26c60e16adc2b8d022dac29854065c458e40f3dc7e9
|
| 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 Oct 4, 2026.
Transparency logRelease files / sourcelens-1.0.0-py3-none-any.whl
| Download URL | sourcelens-1.0.0-py3-none-any.whl |
|---|---|
| Size | 133.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74e0ae1e22027d05b61bbb82e9ed6234ca773fb4571a40fcf3d3288974a3f4a4
|
|
BLAKE2b-256 checksum How to use checksums |
77eca08e6b9bec11c930e294fd9cb4d2727291b4a5aab3f5986c88b174a09dd5
|
| 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 Oct 4, 2026.
Transparency log