package.json
The agent's Bun project manifest. Records everything installed into the agent — both Axon modules and plain npm packages.
{
"name": "my-agent",
"version": "1.0.0",
"dependencies": {
"@axon/fs": "^1.2.0",
"@axon/fetch": "^1.0.0",
"@octokit/rest": "^20.0.0"
}
}
Axon modules
Installed via axon install. Their tools auto-register into the capsule — no wiring required. Their deps are merged into this file automatically and bun install runs.
axon install @author/dev-workflow
npm packages
Installed via bun add. They land in node_modules/ as private dependencies. They are not automatically available to the agent — to expose a package as an agent tool, export it explicitly from src/.
bun add @octokit/rest
// src/github.ts — explicitly surfaces @octokit/rest as agent tools
export async function createPr(title: string, body: string) { ... }
export async function listIssues(labels?: string[]) { ... }
This is the public/private boundary. package.json is your full dependency list. src/ is what the agent actually sees.
Committing
Commit package.json, not node_modules/. Anyone cloning your agent folder runs bun install to restore the environment.