Directory tree
Parts at a glance
| Part | Required | Role |
|---|---|---|
APP.md | Yes | Root manifest. Declares the CLI entrypoint, commands, skills, scheduling behavior, and confirmation rules. |
app/ | Yes | Application payload. Contains the code or executables the CLI entrypoint runs. |
skills/ | Yes | Local Agent Skills. Each subdirectory holds a SKILL.md that a runtime loads when activating the package. |
schemas/ | No | Optional metadata for commands, output shapes, and entity shapes. |
APP.md
APP.md is the root entrypoint for the package. It has two parts:
- YAML frontmatter — machine-readable fields that a runtime uses for discovery, activation, and command routing.
- Markdown body — human-readable contract sections (Purpose, CLI, Commands, Output, State, Scheduling, Confirmations, Skills).
APP.md is the only file this specification requires you to put at the package root. The runtime reads it first.app/
app/ contains the application payload — the code, executables, or other implementation artifacts that back the CLI entrypoint declared in APP.md.
Rules
app/MUST contain everything needed to operate the application.- The internal structure of
app/is entirely application-defined. You choose the layout, language, and tooling. - This specification does not define build steps, install conventions, or runtime layout inside
app/.
skills/
skills/ holds local Agent Skills that give a runtime context-aware operating guidance for the application. Each skill lives in its own subdirectory and contains a SKILL.md file.
How skill shortnames resolve
When you list a skill inAPP.md frontmatter, you use a shortname:
SKILL.md follows Agent Skills semantics. Agent Applications does not redefine it — your SKILL.md files remain normal Agent Skills files that happen to live inside an application package.schemas/ (optional)
schemas/ is optional in v1. If you include it, it MAY define:
- Command metadata
- Output shapes
- Entity shapes
schemas/ entirely. Larger applications with many commands or complex output contracts may find it useful for keeping APP.md readable and for giving runtimes structured output documentation.
How a runtime loads the package
A compatible runtime uses progressive disclosure to manage context cost. It loads the package in three tiers:Catalog
The runtime reads lightweight frontmatter metadata from
APP.md (and any SKILL.md files it finds). No heavy content is loaded yet.Activation
When the package is activated, the runtime loads the full
APP.md body and the SKILL.md files listed in the skills frontmatter field.app/ into context on every request.