Skip to main content

AXM bibliographic tools — DOI resolution, BibTeX retrieval, paper search & PDF download

Project description

AXM Logo

axm-bib — Bibliographic tools: search papers, resolve DOIs, download & extract PDFs

CI axm-init axm-audit Coverage PyPI Python 3.12+ Docs


Features

  • 🔍 Search — Find papers by title/keywords (Semantic Scholar + CrossRef fallback)
  • 📖 DOI → BibTeX — Resolve any DOI to a BibTeX entry (CrossRef)
  • 📥 PDF Pipeline — Download, extract, and organize papers in one command
  • 📄 Content Extraction — PDF → Markdown + figure PNGs (PyMuPDF)
  • 🪃 arXiv Fallback — Direct download from arXiv when Unpaywall has no URL
  • 🤖 MCP Integration — Auto-discovered tools via axm-mcp

Installation

uv add axm-bib

Quick Start

# Search papers
axm-bib search "attention is all you need" -n 5

# Resolve a DOI to BibTeX
axm-bib doi 10.1145/363235.363259

# Download, extract & organize a paper (full pipeline)
axm-bib pdf 10.48550/arXiv.1706.03762

Pipeline Output

axm-bib pdf creates a complete paper folder:

~/axm/papers/vaswani2017attention/
├── vaswani2017attention.pdf   # downloaded PDF
├── paper.bib                  # BibTeX entry
├── content.md                 # extracted Markdown
└── figures/
    ├── fig_001.png
    └── ...
Downloaded: ~/axm/papers/vaswani2017attention
  PDF: vaswani2017attention.pdf (1,234,567 bytes)
  BibTeX: paper.bib
  Markdown: content.md (8,432 words, 45,123 chars, 12 pages)
  Figures: 8

CLI Commands

axm-bib search

Option Default Description
QUERY required Search query (title, keywords)
--limit, -n 5 Max results (1–100)
--abstract/--no-abstract True Show paper abstracts
--abstract-len 0 (full) Truncate abstracts to N chars

axm-bib doi

Option Description
DOI Digital Object Identifier to resolve

axm-bib pdf

Option Default Description
DOI required DOI of the paper
--output, -o ~/axm/papers/ Output directory

Downloads the PDF, extracts Markdown + figures, and writes paper.bib — all in one step. Supports arXiv papers even when Unpaywall has no URL (direct arXiv fallback).

axm-bib extract

Option Default Description
PDF_PATH required Path to a local PDF file
--output-dir, -o auto Output directory
--figures/--no-figures True Extract figures as PNG

Standalone extraction for PDFs you already have.

MCP Integration

axm-bib tools are automatically discovered by axm-mcp:

Tool Description
bib_search Search papers by keywords
bib_doi Resolve DOI to BibTeX
bib_pdf Full pipeline: download + extract + BibTeX
bib_extract Extract a local PDF to Markdown + figures

Configuration

Variable Purpose
UNPAYWALL_EMAIL Email for Unpaywall API (prompted on first use)
S2_API_KEY Optional Semantic Scholar API key for higher rate limits

Config file: ~/.config/axm-bib/config.toml

Development

git clone https://github.com/axm-protocols/axm-bib.git
cd axm-bib
uv sync --all-groups
uv run pytest           # 173 tests
uv run ruff check src/  # lint

License

Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axm_bib-0.2.1.tar.gz (143.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axm_bib-0.2.1-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file axm_bib-0.2.1.tar.gz.

File metadata

  • Download URL: axm_bib-0.2.1.tar.gz
  • Upload date:
  • Size: 143.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for axm_bib-0.2.1.tar.gz
Algorithm Hash digest
SHA256 70c3db83d5353507ec7a433574401448e95a47ae265c4e2d40d24445365851e6
MD5 605a0be3da549c288493e81b993f8aa9
BLAKE2b-256 7db9ecdf1f902ddcde993312793d575d826424a79ed6e92ba5ec72abef1871fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm_bib-0.2.1.tar.gz:

Publisher: publish.yml on axm-protocols/axm-bib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file axm_bib-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: axm_bib-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for axm_bib-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ecdfadd2c791e2363921b8208a7fcd1c7ba04a9a642abeebd9a91b3bfe9bd406
MD5 6fe1af2b6630cf672af5c0fcd83d112f
BLAKE2b-256 f7e90c269e5f691bef303491b3df1dcbf08749874fa80066353407a03df77368

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm_bib-0.2.1-py3-none-any.whl:

Publisher: publish.yml on axm-protocols/axm-bib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page