axm-bib — Bibliographic tools: search papers, resolve DOIs, download & extract PDFs
axm-bib searches academic sources, resolves scholarly identifiers to BibTeX,
and downloads or extracts papers. Its AXMTools share the same Python pipeline.
Network results depend on provider availability; file-producing operations need
an explicit destination when the default paper library is not appropriate.
Features
- Parallel search across Semantic Scholar, CrossRef, DBLP, OpenReview, arXiv and OpenAlex, with source diagnostics and date filters.
- DOI, arXiv, HAL, DBLP and OpenReview resolution; merge coherent identifiers for one paper or batch several papers.
- Venue enrichment and citation/reference traversal with OpenAlex fallback.
- Open-access PDF download, Markdown extraction and embedded image extraction.
- Topic digests with persistent seen identifiers and a dry-run mode.
- The same tools through the generic
axmCLI and MCP discovery.
Installation
uv add axm-bib
Python 3.12 or newer is required. These pages describe the checkout; the published release can lag behind it. For this exact revision, use the workspace installation under Development. Commands below assume its environment is activated.
Set a contact email before using the network pipeline:
export AXM_BIB_EMAIL="you@example.org"
Replace this address with your own. The current pipeline constructs its Unpaywall client eagerly, so email is required for search, resolution and graph traversal as well as PDF downloads. Local PDF extraction does not require it. Tools do not prompt for missing credentials.
Quick Start
axm bib_search --query "attention is all you need" --limit 3
Read papers, sources_queried and sources_failed. Results vary with providers.
Choose an identifier from a result, then resolve it:
axm bib_resolve --ref arXiv:1706.03762
The result includes bibtex, key, doi and entry_type; this call does not
write a file unless --output-path is supplied. A paper title is not an identifier.
Usage
Tools
| Tool | Purpose |
|---|---|
bib_search |
Find papers with venue, author, year and date-window filters |
bib_resolve |
Resolve one identifier or merge identifiers for the same work |
bib_resolve_batch |
Resolve a list of identifier groups, reporting per-paper failures |
bib_graph |
Return citations, references, or both |
bib_pdf |
Download PDF and write extracted content and optional BibTeX |
bib_extract |
Extract a local PDF without network access |
bib_digest |
Return unseen identifiers for topics, optionally updating state |
axm bib_extract --pdf ./paper.pdf --output-dir ./extracted
axm bib_digest --topics "diffusion models" --since 7d --dry-run
axm bib_graph --ref arXiv:1706.03762 --direction both --limit 10
Extraction writes <pdf-stem>.md and figures/; reruns overwrite matching files.
bib_pdf normally writes under ~/axm/papers/{key}/. Its --output-path changes
only the PDF destination: BibTeX and extracted content remain in the paper library.
See the PDF guide before choosing destinations.
Python
from axm_bib.pipeline import BibPipeline
pipeline = BibPipeline(mailto="you@example.org")
result = pipeline.search("attention is all you need", limit=3)
for paper in result.papers:
print(paper.title, paper.doi or paper.arxiv_id)
The root axm_bib namespace exports exception types and __version__.
Pipeline, models and clients use module-qualified imports. MCP discovery requires
axm-bib to be installed in the server's environment; see the
MCP guide.
Documentation
Development
git clone https://github.com/axm-protocols/axm-knowledge.git
cd axm-knowledge
uv sync --all-groups
source .venv/bin/activate
make test-bib
cd packages/axm-bib
mkdocs build --strict
Workspace dependencies may require the sibling checkouts declared in the root
pyproject.toml. The standalone build uses this package's mkdocs.yml and docs
dependencies. It does not validate the workspace's combined navigation.
License
Licensed under Apache-2.0. See LICENSE.
Metadata
Release files for axm-bib 0.4.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 | |
|---|---|---|---|
| axm_bib-0.4.0.tar.gz | 222.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| axm_bib-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 313.4 kB
Release files / axm_bib-0.4.0.tar.gz
| Download URL | axm_bib-0.4.0.tar.gz |
|---|---|
| Size | 222.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
745f4ff6303545d7221251bfe0822af33e13a8866fce9088517ad597f0f4c144
|
|
BLAKE2b-256 checksum How to use checksums |
5461ea579fd0cafcf997fc27f5a92d186596ec70e813f3bae3401b5486a198d1
|
| 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 21, 2026.
Transparency logRelease files / axm_bib-0.4.0-py3-none-any.whl
| Download URL | axm_bib-0.4.0-py3-none-any.whl |
|---|---|
| Size | 91.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d308e2fe049cdadfc7e5fbff0a6dc67d51ab208db2e709a2eeda5edadc046ff6
|
|
BLAKE2b-256 checksum How to use checksums |
73745fb61574ea60c4923ecd46ba090f77a5baf647f9f815bbc8bc9178d5bf65
|
| 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 21, 2026.
Transparency log