Skip to main content

AXM Logo

axm-init — Python project scaffolding, quality checks & governance CLI

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


Features

  • 🚀 Scaffold — Bootstrap production-grade Python projects, workspaces, and member packages
  • 📋 Check — Score any project against the AXM gold standard (49 checks, A–F grade)
  • 📦 Reserve — Claim a package name on PyPI before you're ready to publish

Installation

uv add axm-init

Quick Start

# Scaffold a new project
axm init_scaffold my-project \
  --org axm-protocols \
  --author "Your Name" --email "you@example.com"

# Check against AXM standards
axm init_check
# Score: 100/100 — Grade A 🏆

# Reserve a name on PyPI
axm init_reserve my-cool-lib --dry-run

CLI Commands

axm init_scaffold

Scaffold a production-grade Python project (src layout, PEP 621, CI, docs).

Option Short Default Description
PATH . Directory to initialize
--org -o required GitHub org or username
--author -a required Author name
--email -e required Author email
--name -n dir name Project name
--license -l Apache-2.0 License (MIT, Apache-2.0, EUPL-1.2)
--license-holder --org License holder
--description -d One-line description
--workspace -w False Scaffold a UV workspace instead of a standalone package
--member -m Scaffold a member sub-package with this name
--check-pypi False Verify PyPI availability first
--json-output False Output as JSON

Note: --workspace and --member are mutually exclusive.

axm init_check

Score a project against the AXM gold standard (49 checks across 8 categories).

Option Short Default Description
PATH . Directory to check
--category -c all Filter to one category
--verbose -v False Show all checks including passed
--json-output False Output as JSON
--agent False Compact agent-friendly output

Categories: pyproject, ci, tooling, docs, structure, deps, changelog, workspace

axm init_reserve

Reserve a package name on PyPI with a minimal placeholder.

Option Short Default Description
NAME required Package name to reserve
--author -a git config Author name (required)
--email -e git config Author email (required)
--dry-run False Skip actual publish
--json-output False Output as JSON

Note: --author and --email fall back to git config user.name / user.email. If both are empty, axm init_reserve exits with an error.

Workspace Support

axm-init detects three project contexts and adapts checks accordingly:

Context Detection Behavior
STANDALONE No [tool.uv.workspace] All checks enabled
WORKSPACE Has [tool.uv.workspace] at root CI, tooling, and workspace checks enabled
MEMBER Is a packages/*/ sub-directory CI checks excluded (handled at workspace root)

Per-Package Check Exclusions

Workspace members can exclude inapplicable checks via pyproject.toml. Each entry is a prefix of a canonical check name — the category.function_name_without_check_ form shown in the report (e.g. ci.ci_workflow_exists). A bare category like "ci" excludes the whole category:

[tool.axm-init]
exclude = ["ci.ci_workflow_exists", "tooling.makefile"]

Scaffold Modes

# Standalone package (default)
axm init_scaffold my-project --org myorg --author A --email e@e.com

# UV workspace
axm init_scaffold my-workspace --workspace --org myorg --author A --email e@e.com

# Member sub-package (run from inside workspace)
axm init_scaffold --member my-lib --org myorg --author A --email e@e.com

The --member flag auto-detects the workspace root, creates the package under packages/<name>/, and patches root files (Makefile, mkdocs.yml, pyproject.toml, CI workflows).

CI Check Badge

Projects scaffolded with axm init_scaffold include an automated check badge that updates on every push. The badge shows your score and grade using the AXM logo.

push → axm init_check → badge JSON → gh-pages → shields.io

The badge is already in your README — just push to main and it appears after the first CI run.

Existing projects can add the badge too — copy .github/workflows/axm-quality.yml from a scaffolded project and add the badge markup. See the howto guide for details.

Development

This package is part of the axm-forge workspace.

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

📖 Full documentation

License

Apache-2.0 — © 2026 axm-protocols

Release files for axm-init 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for axm-init 0.15.0
File Size Uploaded
axm_init-0.15.0.tar.gz 756.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for axm-init 0.15.0
File Interpreter ABI Platform
axm_init-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 958.1 kB

Release files / axm_init-0.15.0.tar.gz

Download URL axm_init-0.15.0.tar.gz
Size 756.2 kB
Tags Source
SHA-256 checksum
How to use checksums
08e0caaf9684402116d7933a6f74ec813f52a773766f9430be530463f5c396b1
BLAKE2b-256 checksum
How to use checksums
5097638436ca23cf89f212ee3fd3c98967525dd481a5af8ab431f49d43427d6b
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 8, 2026.

Transparency log

Release files / axm_init-0.15.0-py3-none-any.whl

Download URL axm_init-0.15.0-py3-none-any.whl
Size 202.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0eff69350aeea33c23dea35953449fe5a92a833f048a4c45b669155ec4c5a00b
BLAKE2b-256 checksum
How to use checksums
235a7b296560f8510e5400da0f026344ea6bf142e015dda7965e86c435f2a2fa
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 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.17.0

2 release files

0.16.0

2 release files

This release

0.15.0 This release

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page