Authoring packages
Authoring is the loop: create atp-package.yaml, stage files into stage.tar, validate, and publish to your Station catalog so installs can consume the package. Work in a directory you choose as the package root (usually next to the files you ship).
Start from a skeleton
Section titled “Start from a skeleton”atp create package skeletonBy default this produces a Multi-capable manifest (type: Multi, empty parts list) and resets stage.tar.
For the older single-type flow:
atp create package skeleton --legacyPackage metadata
Section titled “Package metadata”Typical commands (from the package directory):
atp package name my-package-nameatp package developer "Your Name"atp package license "Apache License 2.0"atp package version 0.1.0atp package copyright "You 2026"copyright accepts multiple strings if you pass more than one argument.
Multi-part workflow (default)
Section titled “Multi-part workflow (default)”Add a part with a type keyword (rule, prompt, skill, hook, mcp, command, experimental):
atp package newpart rule# oratp package part add ruleScope usage and files to that part index:
atp package part 1 usage "Short explanation for humans and agents."atp package part 1 component path/to/file.mdAdd bundles when the part needs executables:
atp package part 1 bundle add my-server-dir --exec-filter "my-server-dir/bin/*"Multi packages stage paths under part_{index}_{Type}/ inside stage.tar. Bundle directory names must be unique across the whole package. Component file basenames must be unique package-wide for Multi manifests.
Remove authoring mistakes with part remove commands (whole part, or one component or bundle) while the package is only on disk—not as a substitute for uninstall; installed copies are always removed as a whole package.
Legacy single-type workflow
Section titled “Legacy single-type workflow”With a legacy skeleton, set the root type once, then root-level commands:
atp package type ruleatp package usage "Why this package exists."atp package component add docs/guide.mdDo not mix populated parts with a non-Multi root type; validation will reject it.
Validate and inspect
Section titled “Validate and inspect”atp validate packageatp package summaryValidation exit codes distinguish staging problems from missing mandatory fields. If validation fails, atp catalog add package will not publish.
Publish to your Station catalog
Section titled “Publish to your Station catalog”When validation passes:
atp catalog add packageATP copies the manifest and gzipped tarball into user_packages/<name>/ under your Station and updates atp-catalog.yaml. List with atp catalog list.
Part kinds (what you are shipping)
Section titled “Part kinds (what you are shipping)”| Kind | Typical payload |
|---|---|
| Rule | Markdown installed as agent rules |
| Prompt | Markdown or text in prompts area |
| Skill | SKILL.md-style skill tree |
| Hook | Hook config plus scripts |
| Mcp | Server directory plus exec filter |
| Command | Scripts or tools for agent workflows |
| Experimental | Emerging layouts |
Exact on-disk targets depend on the agent selected in the project Safehouse; ATP maps each kind to provider-specific paths during install.
Skills
Section titled “Skills”Per the Agent Skills specification, skills use YAML front matter and markdown body. Some editors treat YAML and body separately; with bundle parts you can ship YAML and markdown in separate files and let installation assemble them where appropriate.
Optional checks
Section titled “Optional checks”atp validate catalog-packageSanity-check an already-published package directory under the Station the same way the installer does before applying files.