custom/ directory. Files in custom/ take precedence over the corresponding built-ins, and upstream updates never overwrite them (the only exception is custom/README.md, which may be updated with documentation changes). Your customizations are safe across upgrades.
There are two extension points: custom/steps/ for step modules and custom/pipelines/ for pipeline definitions.
custom/steps/ — override or add a step
You can either replace a built-in step or introduce an entirely new one by dropping a TypeScript file incustom/steps/.
Built-in step keys you can override: clone, install, feedback-loop, preflight, push
To override a built-in, create a file named after its key: for example, custom/steps/install.ts replaces the built-in install step. To add a new step, give the file a name that doesn’t match any built-in key.
Every step file must export a StepModule as its default export:
hello.ts example from custom/README.md:
A file in
custom/steps/ that exists but has no default export produces a warning at runtime and falls back to the built-in rather than silently misbehaving.custom/pipelines/ — override the pipeline definition
You can override the built-in autonomous loop pipeline by creatingcustom/pipelines/autonomous.yml. This replaces the built-in pipeline YAML entirely.
Pipeline YAML follows this schema:
moduleId field is what connects a pipeline step to your custom step module. When moduleId is set, the runner looks for custom/steps/<moduleId>.js (or .ts in development). When omitted, it defaults to the value of type.
Here is an example that adds a custom step to the pipeline:
custom/providers/ — reserved
Thecustom/providers/ directory is reserved for future provider overrides. It is not yet wired up to a stable interface.