Skip to content

Manifest overview

Every AppOS plugin ships a plugin.json manifest at its root. The manifest declares the plugin’s identity, when it activates, which permissions it needs, and any system or plugin dependencies.

The manifest is validated against the JSON Schema at schemas/plugin-v1.json. Add a $schema reference for editor autocomplete:

plugin.json
{
"$schema": "https://appos.space/schemas/plugin-v1.json",
"id": "com.example.my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"runtime": "javascript",
"entrypoint": "dist/main.js"
}

id, name, version, and runtime are always required. Plugins with "runtime": "javascript" (all third-party plugins) must also declare entrypoint. "core-swift" is reserved for host-bundled core plugins.

  • Field reference — every manifest field, generated from the JSON Schema.
  • Permission scopes — the full catalog of scopes accepted in permissions, generated from the SDK’s machine-readable constraints.
  • Limits — host-enforced runtime quotas (storage, shell, network, and more).
  • Extension points — the extensions[] array for contributing to core-plugin extension points.

This repo ships a validator you can run locally against any manifest:

Terminal window
node scripts/validate-schema.mjs path/to/plugin.json