Skip to main content

axiv

axiv is a typed Python CLI for alphaXiv's reviewed public REST reads and official MCP research and library tools.

The CLI uses Typer, HTTPX, the official MCP Python SDK, and pydantic.BaseModel.

It does not dynamically expose OpenAPI operations, arbitrary HTTP requests, or arbitrary MCP tools and arguments.

Install

Install axiv with uv.

uv tool install axiv

Or run it without installing.

uvx axiv --help

Commands

Search public papers, extracted text, topics, and organizations.

uv run axiv search papers "transformer" --limit 5
uv run axiv search full-text "scaled dot-product attention" --limit 3
uv run axiv search topics "transformer"
uv run axiv search organizations "MIT"

Browse researchers, events, feeds, and topic groups.

uv run axiv researchers list --limit 5
uv run axiv researchers search "Yann LeCun" --limit 5
uv run axiv events list --limit 5
uv run axiv feed list --sort Recent --interval "7 Days" --limit 5
uv run axiv feed topics

Read paper metadata and existing derived data without starting remote generation jobs.

uv run axiv paper show 1706.03762
uv run axiv paper preview 1706.03762
uv run axiv paper text 1706.03762 --page 1
uv run axiv paper overview 1706.03762 --language en
uv run axiv paper related 1706.03762 --kind metrics

Add --json to any read command for stable machine-readable output.

uv run axiv search papers "transformer" --limit 1 --json

Search and list commands enforce conservative result limits.

The public REST client never sends Authorization or Cookie headers because several anonymous alphaXiv endpoints reject requests carrying an API Key.

Authenticated MCP commands

Create an API key in alphaXiv's MCP/API settings and provide it only through the environment.

export ALPHAXIV_API_KEY="your-key"
uv run axiv auth status --json

The CLI does not accept --api-key, browser cookies, or arbitrary MCP endpoints.

Research commands call alphaXiv Assistant models and consume Assistant quota.

uv run axiv research discover "How do transformers use attention?" --keyword transformer --keyword attention --json
uv run axiv paper content 1706.03762 --json
uv run axiv paper query 1706.03762 --query "What datasets were used?" --json
uv run axiv paper code https://github.com/owner/repository / --json

Batch every question for one paper as repeated --query options to avoid unnecessary quota use.

Library listing is read only and does not load papers unless --include-papers is supplied.

uv run axiv library list --json

Every remote library write requires --yes and an exact folder and paper target.

uv run axiv library save FOLDER_ID 1706.03762 --yes --json
uv run axiv library move SOURCE_FOLDER TARGET_FOLDER 1706.03762 --yes --json
uv run axiv library folder create "Reading list" --yes --json

For agents, --yes does not replace explicit user authorization for the exact remote change.

The source skill at skills/using-axiv-cli/ defines safe research and library workflows.

OpenAPI contract check

The development OpenAPI document is a development-time reference only.

Run the explicit drift check to compare the remote document with the 26 reviewed static contracts.

uv run scripts/check_openapi_contract.py

The checker only downloads https://api-dev.alphaxiv.org/api.json and reports drift.

It does not generate source code or call any API operation described by the document.

Development

Run the same checks as CI on Python 3.12.

uv run ruff check .
uv run ty check .
uv run pytest -v -s --cov=src --cov-report=xml tests

Live REST smoke tests are opt-in and read only.

ALPHAXIV_LIVE=1 uv run pytest tests/e2e/test_live_rest_readonly.py -q

Live MCP authentication and library listing require both the read-only opt-in and an API key.

ALPHAXIV_LIVE=1 ALPHAXIV_API_KEY="your-key" uv run pytest tests/e2e/test_live_mcp_readonly.py -q

The one-case MCP research smoke test is separate because it consumes Assistant quota.

ALPHAXIV_LIVE_RESEARCH=1 ALPHAXIV_API_KEY="your-key" uv run pytest tests/e2e/test_live_mcp_research.py -q -s

See docs/research/alphaxiv-api.md for the API research and safety boundaries.

Download files

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

Source Distribution

axiv-0.0.2.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

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

axiv-0.0.2-py3-none-any.whl (43.0 kB view details)

Uploaded Python 3

File details

Details for the file axiv-0.0.2.tar.gz.

File metadata

  • Download URL: axiv-0.0.2.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for axiv-0.0.2.tar.gz
Algorithm Hash digest
SHA256 17d48b577e37b2c7d304da347af20a631896c3f9085a8de05cbae132b11cd617
MD5 73b22cb7b37817fe0023f7c50ceeca78
BLAKE2b-256 b180364eecaddf92d6eb0c2ac14eeb92c73409674c43ba5c08d2b0e4e3ac4fb2

See more details on using hashes here.

File details

Details for the file axiv-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: axiv-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 43.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for axiv-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ff98fca71242a4c56563144541d88bf8df2d8d61a524e9d0b0ba5539e69bf573
MD5 7407494a3465e25532d836bc6db67e40
BLAKE2b-256 ff603455703b9e3c41bac2c686f4605712f946a44359ffee35c3a3c02a9124e2

See more details on using hashes here.

Supported by

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