- Docs
- Guides
- Cross-cutting
- How-to
- Create an external catalogue
Create an external catalogue
Scaffold a catalogue outside this repository, validate it locally, and publish it via CI.
Use this when: You are building a catalogue in a separate repository — not a fork of this one — and want to validate it with the same tooling before publishing.
Prerequisites:
- Python 3.11+
agentbundle≥ 0.33.0 (python -m pip install agentbundle)
Step 1 — Create the catalogue layout
Section titled “Step 1 — Create the catalogue layout”A catalogue is a directory with a catalogue.toml at its root and a packs directory
containing at least one pack.
my-catalogue/ catalogue.toml # catalogue metadata and distribution config packs/ my-pack/ pack.toml .apm/ ...catalogue.toml has required fields across five nested tables. See
Catalogue format reference for the complete
schema — the full surface spans ~20 fields and is not shown inline here.
Step 2 — Generate adapter artifacts
Section titled “Step 2 — Generate adapter artifacts”Run the self-host command to generate the artifacts for the effective adapter set:
agentbundle catalogue self-host --root . --writeWhen the effective set includes claude-code, this writes marketplace.json
and lint requires it (CAT-L002). A catalogue configured only for an adapter
outside the default self-host allow-list, such as kiro-ide, omits Claude
artifacts and does not require a marketplace. Commit the generated outputs.
Step 3 — Lint
Section titled “Step 3 — Lint”agentbundle catalogue lint --root .Exits 0 on a clean catalogue. Exits 1 on validation failures (listed on stdout). Exits 2 on CLI usage errors.
Fix all reported issues before proceeding.
Step 4 — Verify
Section titled “Step 4 — Verify”agentbundle catalogue verify --root .Runs the full admission check — schema, structural invariants, and distribution
consistency. Pass --format json to get machine-readable output for CI annotation.
Step 5 — Publish via CI
Section titled “Step 5 — Publish via CI”Once lint and verify both exit 0 locally, the catalogue is ready for a CI
release pipeline.
For the full publication contract — packaging command, channel descriptor shape, exit codes, phase ordering, and responsibility boundary between the CLI and your CI system — see the Catalogue CI contract.