axm-config — Non-sensitive runtime configuration for AXM
axm-config provides non-sensitive runtime configuration for AXM: environment overrides, TOML persistence, typed settings and named profiles. Resolution follows environment > file > default.
Features
get,get_file,set_,deleteandloadprovide resolution and model binding.- Typed accessors share runtime paths, warden settings and inference defaults.
- Execution-policy helpers persist complete backend/model pairs and analysis overrides.
config_doctorreports provenance;profile_isolationcomputes candidate state paths.
Installation
Requires Python 3.12 or newer. In a Python project managed by uv:
uv add axm-config
uv run axm-config --help
Quick Start
Choose an unused profile name for this example:
AXM_PROFILE=docs-demo uv run axm-config set research.demo timeout 30
AXM_PROFILE=docs-demo uv run axm-config get research.demo timeout
AXM_PROFILE=docs-demo AXM_RESEARCH__DEMO_TIMEOUT=10 uv run axm-config get research.demo timeout
AXM_PROFILE=docs-demo uv run axm-config delete research.demo timeout
The two reads print 30, then 10: the environment overrides the stored
value. The final command deletes the example key. These commands write to
~/.axm/profiles/docs-demo/config.toml; the profile file can remain afterward.
The CLI stores strings; use the Python API for TOML integers and booleans.
Usage
CLI and tools
The axm-config command exposes get, set, delete, path and doctor.
Installed AXMTool entry points also expose diagnostics through the generic CLI:
uv run axm config_doctor --namespace research.demo
uv run axm profile_isolation --profile scratch
config_doctor reports where settings come from without returning their values.
profile_isolation calculates candidate paths; it does not audit the actual
configuration of every consumer. See the CLI and tool contracts.
Python configuration
Import the public helpers from axm_config. Use get for raw resolution,
get_file to omit environment overrides, and load(namespace, model) to bind
settings to a Pydantic model. See typed consumer configuration
and the Python contracts.
Profiles and persistence limits
An unset or empty AXM_PROFILE selects production at ~/.axm/config.toml.
Each file replacement is atomic; concurrent read-modify-write operations are
not serialized. See the persistence limits
before automating writes.
Passwords, tokens and API keys belong in axm-vault, not this plaintext store.
AXM_HOME is not a general store override; see the profile guide.
Documentation
The documentation home is the MkDocs landing page; this README is the repository/package introduction.
- Published documentation
- Tutorial
- Typed consumer configuration
- Profiles and isolation limits
- Execution policies
- CLI and tools
- Python contracts
- Persistence and architecture
Development
Part of the axm-forge workspace. From the workspace root:
uv sync --all-packages --all-groups
uv run --package axm-config --directory packages/axm-config pytest
The package test directory is packages/axm-config/tests_axm_config.
Build this package's documentation from its directory with
mkdocs build --strict, using an environment containing its local installation,
MkDocs Material and mkdocstrings with the Python handler. The package configuration
also works when included by the workspace site.
License
Licensed under Apache-2.0. See LICENSE.
Metadata
Release files for axm-config 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| axm_config-0.2.0.tar.gz | 72.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| axm_config-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 108.8 kB
Release files / axm_config-0.2.0.tar.gz
| Download URL | axm_config-0.2.0.tar.gz |
|---|---|
| Size | 72.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3993cbc10647915f6f35b7b4bfecc42caaab4c3cebb919d425dc550e94685e2
|
|
BLAKE2b-256 checksum How to use checksums |
9943f2335f400b8cf123347079c4fd1551fd7c3c6105342eddb72a8e61d8cf01
|
| 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 17, 2026.
Transparency logRelease files / axm_config-0.2.0-py3-none-any.whl
| Download URL | axm_config-0.2.0-py3-none-any.whl |
|---|---|
| Size | 36.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f0b35e8a7cab9d8f716657cd30da17195d773fa39bf2abe653b36704640a41d4
|
|
BLAKE2b-256 checksum How to use checksums |
6b2db804ee3b086265c2990011f05054d5be7ce557965ec6784fbf86d827a2e2
|
| 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 17, 2026.
Transparency log