ax.io

Declarative orchestration for agent workloads

Declare the task.
The fence comes with it.

An agent workload is neither a stateless service nor a batch job. It accumulates state, calls out to model APIs, and can burn money in a loop if nobody is watching.

Stated by the project

Core concepts, protocols and specifications are still being refined, with major breaking changes likely before a stable release.

ax.io/v1alpha1Apache 2.0
Task
The isolated runUntrusted agent code in a sandbox with CPU and memory limits.
Workspace
A warm startGit repos, MCP servers and skill packages pre-wired before the agent begins.
Gateway
The outbound fenceTraffic locked to an explicit host allowlist.
Model
The platform's own LLMConfigured with credentials from a cluster secret.
One file, applied with one commandkind: Task
spec:
  workspaces:
    - name: golang
      goal: "Ensure that Go tool chain is available"
  debug: true

Manifest condensed from the project's own example; nothing is invented.
Deliberately kubectl-shaped: apply, get, describe, watch, delete, plus agent-specific verbs.

The verbs a batch job never needed

ax suspend / resume

Checkpoint an idle agent and pick up exactly where it left off.

ax ssh

Shell into a running sandbox to see what the agent is actually doing.

ax watch

Stream phase and condition changes live, rather than polling for an outcome.