The agent framework

Your coding partner is a project you own.

One place to build agents, share them, and see exactly what they did. From a coding partner in your terminal to an autonomous machine in the field — same folder, same runtime, same trace.

The Axon terminal: the agent @axon/zeno introduces itself, listing its model, its five modules and four tools, above a live conversation
77artifacts published
15agents to install
22modules to compose
1command to production
The folder

An agent is a folder
you already know how to read.

axon init scaffolds four files. The rest of the structure is opt-in — Axon discovers whatever is there at boot, so folders you do not use simply do not exist.

api
server/api docs →

File-based routing — the filename is the path, and the method is a suffix. Routes stay thin: most call a script and return its stream.

// server/api/health.get.ts   → GET  /api/health// server/api/review.post.ts  → POST /api/reviewexport default defineEventHandler(async (event) => {    const { issueId } = await readBody(event)    const prompt = await axon.prompt("code-review", { issueId })    return axon.stream({ prompt })})

boot.vue is a Vue component that renders to Markdown. Identity composes — split it into sections, reuse fragments across prompts, load knowledge files at render time. Save it and the running agent reloads in about 40ms with the session intact.

why it matters

Every framework hands you a loop and asks you to fill it in. Axon gives the agent a shape instead — so the runtime owns the hard parts, and improvements reach every agent you have already written.

The terminal

A terminal that
speaks agent.

Every palette is one keystroke — models, agents, modules, themes. Every command, keybind and status line is a TypeScript file you write, so the terminal you end up with is not the one anybody else is running.

  • :commands
  • ~agents
  • *models
  • %modules
  • "themes
The Axon terminal as it ships: the braille brain logo, the connected agent, its model and tool counts, and the input bar
as it ships
The same terminal themed in warm Gruvbox greens with a rounded powerline bar beneath the input showing agent, branch and uptime
after a few lines of config
The rest of the platform

Install capability the way
you install packages.

Everything an agent depends on is versioned, publishable and installable through the same registry — so adding a capability is a line in a config file, not an afternoon of wiring.

modules

Capability, installed

A module is a bundle of tools, prompts and routes that any agent can depend on. Declare it in axon.config.ts and its capability is available at the next boot — versioned and resolved like any package.

Building modules →
extensions

The terminal, extended

Themes, commands, palettes and status lines ship as installable extensions. Install one from the palette and it is live immediately — no restart, no config file to hand-edit.

Extending the TUI →
benches

Evidence, reproducible

Declare what varies and how many times to repeat. The runtime runs every test against every declaration and records duration, tokens, cost and failures without you asking.

Measuring agents →
Your profile

One folder configures
everything.

~/.axon holds your model providers, your themes, your keybinds and every agent you have installed. It is a real TypeScript project rather than a settings file — so your config imports from npm, your editor types it, and a save reaches the running terminal in about 40ms.

profile.config.ts
profile.config.ts docs →

Providers, extensions and settings. Adding a model provider is adding it to this array — the same list drives every agent in the profile, so a key is configured once rather than per project.

export default defineProfile({    extensions: [        "@axon/gruvbox-theme@1.0.3",        "@axon/nord@1.0.3",        "@axon/tokyo-night@1.0.3",    ],    settings: {        theme: "arcnight",        paths: ["~/git/arclabs/registry/agents"],    },    providers: [Axon(), Codex()],})

Nothing here is hidden from you. No settings pane, no synced preferences, no state you cannot read. Every choice you make is a line in a file you can diff, commit, and carry to the next machine.

Secure by architecture

The model can ask.
Only the kernel can act.

Agent code runs in an isolated capsule. Every filesystem, network and process call crosses a real policy boundary before it executes, and you decide what passes — allow it, deny it, or have the agent ask. The model is untrusted by architecture, not by good behaviour.

How policy works →
01
The model requestsA tool call is a request, never an action.
02
The kernel mediatesPolicy allows, denies, or escalates to you.
03
The capsule executesIsolated subprocess, versioned ABI.
In your editor

Every run, traced.

Every one of those steps is visible. Fleet brings the fleet into VS Code, and each agent run becomes a timeline you can open — kernel ticks, cognet phases and engine calls on the same axis, so a slow turn shows you exactly where the time went.

Explore Fleet →
A session trace in Fleet: a flame graph of one agent run with kernel, cognet and engine spans on a shared time axis, beside the installed agents and recent sessionsThe Fleet events panel: a running instance of @axon/zeno with its session id and boot file, above a live list of capsule, cognet and module eventsThe Fleet engine panel, showing the model provider and the raw request and response behind one agent turnThe Fleet registry panel, browsing published agents and modules for installation without leaving the editor
No lock-in

A directory on disk.
Not a row in our database.

Deploy to Axon Cloud for a URL, an API key and durable storage — or build the same folder into a standard container and run it on your own infrastructure. Leaving costs you nothing, which is the only reason to trust that staying is a choice.

$ axon dev

Local

A hot-reloading dev server on your machine, driven from the terminal you already use.

$ axon deploy

Managed

A stable URL, an API key, durable storage and logs. No Dockerfile, no infra config.

$ axon build

Portable

A standard container image from the same folder. Run it on your own infrastructure.

The registry

Somebody has already
built half of it.

Browse the registry →

Stop building runtimes.
Start building agents.

Read the docs
Going further

The loop does not need a language model.

Underneath an Axon agent is a cognet — a cognitive engine with a wake loop, an entity-component world and a phase clock. It has no filesystem, no network and no clock of its own. Ten verbs, stimuli in, actions out.

Which is why the same engine runs a chat agent, a perception stack and a robot. The vehicle here steers toward light on arithmetic alone — no model anywhere in it. Its brain never imports the simulation and the simulation never calls the brain; they exchange stimuli and actions, nothing else. Swap the sim for real hardware and the brain would not notice.

open in registry →