Skip to documentation

Ax

Ax deploys uv Python agents and APIs to a host you control.

It is intentionally narrow: one runner, one reverse proxy, one CLI, and one base hostname or IP for the stack. The goal is to get a Python repo into production without turning every agent or internal API into a new platform project.

When to use Ax

Use Ax when:

Ax is not trying to replace a full internal platform. It is the first deploy layer for teams that need production control without waiting for a larger platform path.

Mental model

Every Ax stack has a PLATFORM_BASE_DOMAIN. This is the hostname or public IP where the platform is reachable.

Use the same value in both places:

There is no vendor-owned domain in the middle. Use a DNS name you control, such as apps.example.com, or use the server IP directly.

What ships in the repo

Request routing

On PLATFORM_BASE_DOMAIN, Caddy serves:

For real hostnames, the CLI uses HTTPS. For localhost, *.localhost, or raw public IPs, the CLI uses HTTP.

Next steps

Source: github.com/narnia-sh/ax.