APP.md, a CLI that returns JSON, and a local skill.
The agentic-to-do example in the repository is a full reference implementation of these same patterns.
Conformance checklist
A v1-conformant package requires:APP.mdpresentapp/directory presentskills/directory present- A documented CLI entrypoint
- JSON output by default
Create the package directory
Create a folder for your package. Give it a name that matches the Create the required top-level directories:Your package root now looks like this:
slug you’ll use in APP.md.Write the APP.md manifest
Create Key frontmatter fields:
APP.md at the package root. Start with the YAML frontmatter, then add the body sections that document your CLI contract.APP.md
The
entry.command value is whatever CLI command your runtime should invoke. It can be a binary, a shell command, or a script runner like node app/cli.js — as long as calling it produces JSON on stdout.| Field | Required | Description |
|---|---|---|
entry.command | Yes | The callable CLI entrypoint |
commands | Yes | List of supported command names |
skills | Yes | List of local skill shortnames |
scheduling | No | supported or notSupported |
confirmationRequired | No | Commands that need explicit user confirmation |
Create the CLI inside app/
Add a CLI script at Test it locally:You should see JSON on stdout:
app/cli.js. The CLI must write JSON to stdout by default and exit with a non-zero code on failure.app/cli.js
Human-readable output is allowed but must be opt-in (for example, a
--human flag). JSON must be the default.Create a SKILL.md in skills/
Create
skills/my-app-usage/SKILL.md. The skill shortname in APP.md — my-app-usage — resolves to this path by convention.skills/my-app-usage/SKILL.md
SKILL.md files follow the Agent Skills format. Agent Applications does not redefine SKILL.md — it references the same format.Verify conformance
Check that your package meets all five v1 conformance requirements.1. Required files and directories exist:2. The entry command runs and returns JSON:Expected output:3. The CLI exits non-zero on failure:Expected output:4. Your final package structure:Your package is now v1-conformant.
Next steps
Package structure
Learn what each part of the package is responsible for.
APP.md reference
See all supported frontmatter fields and body sections.
Authoring best practices
Write packages that stay portable, legible, and testable.
Example app
Explore the full agentic-to-do reference package.