Project kinds
Axon builds six kinds of thing, and they share one grammar. Learn it for modules and you know it for the rest.
axon <kind> init <name> # scaffold
axon prepare # regenerate types
axon publish # push to the registry
| Kind | Scaffold | What it is |
|---|---|---|
| agent | axon init | A thing that runs and holds a conversation |
| module | axon module init | A capability agents install — typed tools plus setup |
| cognet | axon cognet init | The cognition itself: loop, memory, world model |
| bench | axon bench init | A measured test suite for agents |
| prompt | axon prompt init | A publishable prompt |
| extension | axon ext init | Terminal commands, themes, keybinds, lines |
Agents are the default kind, which is why they alone need no noun in the middle — and why they deploy rather than publish. An agent is a running service; the other five are packages someone installs.
The bare verbs read your directory
cd my-module
axon prepare # knows this is a module
axon publish # knows it too
prepare and publish detect the project kind from the directory you are in. That is why
there is no axon module prepare you have to remember — though the explicit form exists
for acting on a project from elsewhere:
axon module prepare
axon cognet publish
What prepare does
Different work per kind, one command:
- agent — installs declared modules, compiles its cognet, regenerates the authoring types your editor reads
- module, cognet, extension — regenerates the static type frame
- bench — prepares the test workspace
Generated output is project-specific and lives in an ignored build directory. Run it after changing declared modules, tools, prompts or the cognet — it is what makes your editor and the agent agree about what exists.
--frozen fails instead of resolving new versions, which is what CI wants.
Publishing
axon publish requires axon login, and the
scope in package.json must be one you own. To start from someone else's work, see
axon fork.
Each kind has its own authoring guide: Modules · Cognets · Bench · Extensions