modules

Passes configuration options to installed modules. Keys are module names; values are option objects validated against each module's declared schema.

export default defineAgent({
    modules: {
        "github": {
            owner: "acme",
            repo:  "backend",
        },
        "slack": {
            channel: "#eng-alerts",
            botName: "axon",
        },
    },
})

Options are passed to the module's setup() function as ctx.options after validation. If a module declares a required option and it's missing, the agent will fail to boot with a clear error.

What belongs here

Only configuration the module explicitly declares as an option. Not secrets — those belong in .env and accessed via axon.env. Not logic — modules handle their own setup.

Installing modules

modules config only applies to modules already present in the modules/ folder. To add a module:

axon install @acme/github

This copies the module source into modules/ and patches axon.config.ts with any policy the module needs. See Installing & Using.