Skip to main content

AXM CLI — thin autodiscovery wrapper for the AXM ecosystem

Project description

AXM Logo

AXM CLI — Unified command-line interface for the AXM ecosystem

CI axm-audit Coverage PyPI Python 3.12+ Docs


Features

  • 🔌 Autodiscovery — automatically finds commands from installed AXM packages via entry points
  • 🧩 Modular — install only what you need (axm[init], axm[audit], axm[bib], axm[mcp])
  • 🛠️ Shared interface — provides AXMTool/ToolResult (with optional agent_hint for LLM-optimized descriptions), HookAction/HookResult, and WitnessResult/WitnessRule for ecosystem development
  • 📦 Minimal — only depends on cyclopts, everything else is optional

Installation

uv add axm              # CLI shell only
uv add axm[init]        # + scaffolding & project checks
uv add axm[audit]       # + code quality audits
uv add axm[bib]         # + bibliography tools
uv add axm[mcp]         # + MCP server (for AI agents)
uv add axm[all]         # everything
Or with pip
pip install axm              # CLI shell only
pip install axm[init]        # + scaffolding & project checks
pip install axm[audit]       # + code quality audits
pip install axm[bib]         # + bibliography tools
pip install axm[mcp]         # + MCP server (for AI agents)
pip install axm[all]         # everything

Usage

axm                          # shows available commands
axm init_scaffold my-project # if axm-init is installed
axm init_check .             # check project conformity
axm audit .                  # if axm-audit is installed

How It Works

Each AXM package declares commands via pyproject.toml:

# axm-init/pyproject.toml
[project.entry-points."axm.commands"]
init_scaffold = "axm_init.cli:scaffold"
init_check    = "axm_init.cli:check"
init_reserve  = "axm_init.cli:reserve"

The axm CLI discovers these at startup and exposes them as subcommands.

Package Structure

axm/
├── src/axm/
│   ├── cli.py         # Autodiscovery wrapper (~80 lines)
│   ├── hooks/
│   │   ├── base.py    # HookAction Protocol + HookResult (lifecycle hooks)
│   │   └── __init__.py
│   ├── tools/
│   │   ├── base.py    # AXMTool Protocol + ToolResult (shared interface)
│   │   └── __init__.py
│   ├── witnesses.py   # WitnessResult + ValidationFeedback + WitnessRule
│   └── __init__.py
└── tests/
    ├── hooks/
    │   └── test_base.py
    ├── tools/
    │   └── test_base.py
    ├── test_cli.py
    └── test_version.py

Development

This package is part of the axm-nexus workspace.

git clone https://github.com/axm-protocols/axm-nexus.git
cd axm-nexus
uv sync --all-groups
uv run --package axm --directory packages/axm pytest

License

Apache-2.0 — © 2026 Gabriel Jarry

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-0.4.0.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

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

axm-0.4.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file axm-0.4.0.tar.gz.

File metadata

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

File hashes

Hashes for axm-0.4.0.tar.gz
Algorithm Hash digest
SHA256 195a9e5e754dad8ec0d1360c387c8c55711d7557b57769e444eb792f62ea44f8
MD5 615ce9223b9b6ad5a69d4858e17f4140
BLAKE2b-256 6547daf0abc57f9771bebd5dc282e99ee8d2688476419af849699e7b47e69e38

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm-0.4.0.tar.gz:

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

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-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: axm-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 13.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-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7cff5d601232ec52d03d70105b5de90c3b8e0acd0f618a139c7640a30089dac
MD5 da5a9871022bbd0606ec09a60fed7785
BLAKE2b-256 a54b984c02004f5d3a90df213277ec7268ade3f1224159eca5456ec05bb75ee2

See more details on using hashes here.

Provenance

The following attestation bundles were made for axm-0.4.0-py3-none-any.whl:

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

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