Skip to content
axm-protocolsPublic

About

Developer tools and the SDK that connects them.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

AXM Logo

axm-forge

Developer tools and the SDK that connects them.

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

AXM Forge is a uv workspace of independently versioned Python packages for code analysis, quality checks, editing, scaffolding and Git operations. Use the tools through an MCP client or the generic axm CLI; use the libraries directly when integrating them into Python applications.

What do you need?

You want to… Start here
Understand a project or find a symbol axm-ast: ast_context, ast_search, ast_inspect
Audit a package or run its tests axm-audit: audit, audit_test
Combine audit and governance checks over MCP axm-mcp: verify
Validate and apply a batch of edits axm-edit: batch_edit, batch_rollback
Move, rename or extract Python symbols axm-anvil: anvil_move, anvil_rename, anvil_extract
Scaffold a project and check its conventions axm-init: init_scaffold, init_check
Review repository state and commit changes axm-git: git_preflight, git_commit
Find duplicate code or possible reuse axm-echo: echo_code, echo_check
Reduce text size or count tokens axm-smelt: smelt, smelt_count

Check each tool's result and documented limits. A successful invocation does not necessarily mean a passing audit or test suite. Batch editing uses validation and rollback, but does not provide a filesystem-wide transaction. Similarity scores identify candidates for review, not proof of equivalent behavior.

Packages

The workspace root is development infrastructure; install the packages you need.

Package Role Release Quality
axm Core SDK (AXMTool, ToolResult, tool_node) and generic CLI PyPI audit cov
axm-mcp MCP server, tool catalog, facade and transports PyPI audit cov
axm-ast Read-only structural analysis with tree-sitter PyPI audit cov
axm-anvil Python symbol move, rename and extraction PyPI audit cov
axm-edit Batch edits, checkpoints and filesystem tools PyPI audit cov
axm-audit Quality rules, test execution and test refactoring PyPI audit cov
axm-init Scaffolding and project governance checks PyPI audit cov
axm-git Git commits, branches, worktrees and release operations PyPI audit cov
axm-echo Code similarity and reuse-candidate retrieval PyPI audit cov
axm-smelt Text compaction and token measurement PyPI audit cov
axm-ingot Dependency-free shared Python helpers PyPI audit cov
axm-config Non-sensitive configuration and runtime paths PyPI audit cov
axm-vault Credential catalog and secret resolution PyPI audit cov
axm-doctor Environment/bootstrap and authentication diagnostics PyPI audit cov

Quick Start

Using the tools via MCP

Both transports are supported:

  • stdio is the simplest first installation: the client starts and stops its own server process. The configuration below uses this mode.
  • Streamable HTTP suits a persistent server used by several clients. Start it with axm-mcp serve and connect clients to /mcp; follow the HTTP setup guide.

Running axm-mcp without a subcommand still selects stdio.

With Python 3.12+ and uv installed, configure your MCP client to start this stdio server process:

{
  "command": "uvx",
  "args": ["--python", "3.12", "--from", "axm-mcp[forge]", "axm-mcp"]
}

The enclosing configuration and its scope depend on your client. The forge extra installs the main developer-tool packages; it is not a promise to install every package in this repository. all additionally includes bibliography and ticket packages from other workspaces. Pin versions for reproducible environments.

The default facade exposes discovery and dispatch tools alongside selected direct tools. Use axm_search, axm_describe and axm_call to reach the installed catalog. The server and tool providers must share one Python environment. Follow the MCP quick start for a verified discovery/call sequence and HTTP setup.

Using one tool from a terminal

This example installs axm and the AST provider into a temporary uv tool environment, then prints help without analysing a project:

uvx --with axm-ast --from axm axm ast_context --help

Package names and executable names are not interchangeable: axm-audit, axm-edit and axm-init expose tools through axm, not standalone executables of those names.

Developing the workspace

git clone https://github.com/axm-protocols/axm-forge.git
cd axm-forge
uv sync --all-packages --all-groups
uv run --package axm-edit --directory packages/axm-edit pytest --cov
uv run mkdocs build --strict

Contributing covers package-specific checks, the current Makefile limitations, hooks and documentation previews.

Architecture

axm supplies the shared tool contract and CLI discovery. axm-mcp exposes installed providers through MCP. Tool packages implement operations; libraries such as axm-ingot can also be used without a server. tool_node adapts a registered tool for a DAG, whose runtime lives outside this workspace.

See the workspace architecture for package boundaries and the package catalog for individual tutorials and API references.

Development

Packages use their full name as a Git tag prefix, for example axm-ast/v0.5.2 or axm/v0.8.0. The publish workflow derives packages/<name> from that prefix. Tagging is a release operation; pushing documentation to main does not publish a package version.

The build and upload jobs have separate conditions. Consult the publish workflow before a release.

A package declares once, through the Private :: Do Not Upload classifier, that it must never leave the monorepo. Both release workflows read that marker from the shared detect-package action: the PyPI upload is withheld, and so is the GitHub Release, whose generated notes would otherwise publish the changelog the package is meant to keep in-house. Tagging, versioning and tests still run — only the publication stops. PyPI independently rejects the Private :: prefix on upload, so the classifier is a double safety net.

License

Apache 2.0 — see LICENSE.

About

Developer tools and the SDK that connects them.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages