Skip to content

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)

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.


Run the self-host command to generate the artifacts for the effective adapter set:

Terminal window
agentbundle catalogue self-host --root . --write

When 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.


Terminal window
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.


Terminal window
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.


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.