What is Axon?

You write what only you can write. Everything else is already built.

An agent that triages your Linear issues, opens PRs, replies to Discord messages, and summarises your codebase — built in an afternoon, deployed with one command, upgraded by changing an engine name. That is what Axon is for.

The infrastructure that makes it possible — the loop, context assembly, tool dispatch, session persistence, policy enforcement — is managed. You write what only you can write: what the agent knows, what it can do, how it behaves.

The boundary is a single call:

const { stream } = axon.stream({ prompt: [session, task] })

Everything past that call is Axon's concern.

An agent is a folder

my-agent/
├── axon.config.ts   # identity, engine, policy
├── src/             # boot prompt, tools, prompts, scripts
├── server/          # HTTP routes and plugins
├── data/            # durable storage and knowledge
└── modules/         # installed capabilities

That folder is the agent. Commit it, deploy it, roll it back. It runs in the TUI on your laptop, headlessly in CI, and as a live cloud service — same source, no changes.

The module system

Capabilities you need but didn't write are installed, not implemented.

axon install @axon/github
axon install @axon/linear
axon install @axon/discord

Each module ships the wiring: webhook verification, event normalization, typed tools, boot-time client setup. You subscribe to hooks and call tools. The integration work — the part you'd write and maintain forever — is already done.

Modules compound. Every agent you build starts with the full registry of capabilities available. The more the registry grows, the faster you build.

Engines

One line in axon.config.ts selects the model:

import { Axon, Cerebras, Codex, Ollama, OpenRouter } from "@axon/engines"

export default defineAgent({
    engine: Axon(),
    // engine: Codex()
    // engine: Cerebras({ model: "gpt-oss-120b" })
    // engine: Ollama({ model: "qwen2.5:7b" })
    // engine: OpenRouter({ model: "openai/gpt-4o" })
})

Swap it to change how the agent thinks. Your tools, prompts, scripts, and modules don't change. The folder doesn't care which engine runs it.

Deploy

axon deploy

Your agent gets a public URL, an API key, and durable cloud storage. No Dockerfile, no infra config. Self-host instead with axon build — it produces a Docker image that runs anywhere. The folder is the same either way.

Where to start

I want to use an agentInstallation

I want to build an agentThe Agent Is a Folder

I want to go deepAgent

I want to ship a moduleModules