DocsAPI ReferenceChangelogSupport
Reference

Manifest schema

The JSON schema for manifest.json. It ships with Atlas at <install>/resources/docs/plugin-manifest.schema.json — copy it into your project and point your editor's $schema at it to validate as you write.

Required fields

schemaVersion1 or 2. Atlas still loads legacy 1 packages; new plugins use 2.
idReverse-DNS plugin id; 1-160 chars of letters, numbers, dot, dash, underscore, or colon.
name, version, authorDisplay identity, shown on the plugin card.
descriptionRequired summary, shown on the card.
visibilitypublic or private.
kindwindow, inspector, view, service, format, or development.
permissionsThe permission ids the plugin declares.
compatibilityRequired app, pluginApi, platforms, and architectures ranges.

Optional fields

iconThe plugin's icon, like icon.svg.
entry, mount, host, entryPointsThe entry file, window sizing, and how each surface launches.
capabilitiesDeclared context menus, websiteDomains, and feature flags.
contributions, serviceContext-menu, topbar, and window contributions, plus the background atlas-js service.
formats, inspectors, viewersFile-type providers and mounted inspector or viewer panels.
itemActionsButtons on a selected item, with their match and open rules.
changelog, versionHistoryThis version's notes, and the per-version history shown in the card's History tab.
scripts, dependencies, trust, reload, releaseStateScripts, plus advanced and host-managed fields.

Rules only the runtime enforces

A schema-aware editor catches missing fields and bad enums before you load the plugin. Five cross-field rules are beyond what the schema can express, and the validator rejects the manifest at install time if you miss them — each declaration requires its matching permission:

formatsrequires format.register.
inspectors, viewers, itemActionsrequire view.mount.
contributions.contextMenusrequires contextMenu.register.
contributions.topbarActionsrequires topbar.register.
servicerequires process.invoke.

The validator also checks that every file your manifest references actually exists inside the package, and that mediaKinds or extensions filters on a context menu are paired with an image or item context.