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 (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           # 166 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.0.tar.gz (142.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.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: axm_bib-0.2.0.tar.gz
  • Upload date:
  • Size: 142.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.0.tar.gz
Algorithm Hash digest
SHA256 2de4d3748223e91cc002e1c9309ff925eb1da771a1add282203e250032ec6e7e
MD5 522408745ff40e10b30b4105df144b34
BLAKE2b-256 adce1bc12fcb37566a6d16f9168060e8092a9276811f3aa701f7ed414586c9a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm_bib-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: axm_bib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4647e926c4434c5b3e030297d5ebc41ee2ba186c13232444295e95e74416f6fe
MD5 594d3d8c93c673764aeb40e510e9435a
BLAKE2b-256 03b7a856593fed590ac5f7ec84d0d23c4364333715618b878dbfe87b3a3a77fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm_bib-0.2.0-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