Skip to content

Quick Start

This tutorial walks you through installing axm-init and creating your first project.

Prerequisites

  • Python 3.12+
  • uv (recommended) or pip

Installation

uv add axm-init

Or with pip:

pip install axm-init

Verify the installation:

axm-init version

Step 1: Create a New Project

Scaffold a fully configured Python project:

axm-init scaffold my-project \
  --org my-org --author "Your Name" --email "you@example.com"

You'll see output with all scaffolded files:

βœ… Project 'my-project' created at /path/to/my-project
   πŸ“„ pyproject.toml
   πŸ“„ src/my_project/__init__.py
   πŸ“„ tests/__init__.py
   πŸ“„ README.md

Default name

If you omit --name, the project name defaults to the target directory name.

Step 2: Explore the Scaffolded Project

cd my-project
tree -L 3
my-project/
β”œβ”€β”€ pyproject.toml       # PEP 621, hatch-vcs, ruff, mypy, pytest
β”œβ”€β”€ src/
β”‚   └── my_project/
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── py.typed
β”œβ”€β”€ tests/
β”‚   └── __init__.py
β”œβ”€β”€ Makefile             # make lint, make test, make ci
β”œβ”€β”€ mkdocs.yml           # Material for MkDocs + DiΓ‘taxis
└── docs/
    └── index.md

Note

The actual scaffolded project contains additional files (CI workflows, pre-commit config, Makefile, docs setup). The tree above shows the essential structure.

What's included

The scaffolded project comes pre-configured with:

  • pyproject.toml β€” PEP 621 metadata, hatch-vcs versioning, ruff, mypy, pytest
  • Makefile β€” make lint, make test, make ci
  • MkDocs β€” Material theme, DiΓ‘taxis nav, auto-gen API docs
  • py.typed β€” PEP 561 marker for type checkers

Step 3: Run the Checks

cd my-project
make ci

make ci runs the full quality pipeline in sequence: Ruff lint β†’ MyPy type-check β†’ Pytest. It's equivalent to:

uv run ruff check src/ tests/
uv run mypy src/ tests/
uv run pytest

If everything passes, your project is ready for development.

Next Steps