DocsAPI ReferenceChangelogSupport
Concepts

Manifest

manifest.json declares who the plugin is, what it adds, and what it needs. Atlas validates it on load and refuses anything malformed or incompatible.

Required identity

schemaVersion1 or 2; new plugins use 2.
idA unique, reverse-DNS-style id, like com.you.my-plugin.
name, version, authorIdentity shown on the plugin card.
descriptionRequired; shown on the card.
visibilitypublic, or private for unlisted plugins.
kindThe main surface: window, inspector, view, service, format, or development.

Surfaces

host.launch decides how a window runs: local-window for your own HTML, or embedded-browser with a host.url for a web view. entryPoints maps the files for each surface, and mount sets a window's size, whether it resizes, and whether only one can be open at once.

"kind": "window",
"host": { "launch": "local-window" },
"entryPoints": { "window": "index.html", "overview": "overview.html" },
"mount": { "title": "My Tool", "width": 62, "height": 54, "resizable": true, "singleton": true }

Window sizing units

mount.width and mount.height are host units, not pixels. Width is multiplied by 14 and height by 12, so "width": 62 is 868px wide and "height": 54 is 648px tall. Omitting them gives you 60 × 48, i.e. 840 × 576. minWidth and minHeight use the same scale.

chromedefault for the host title bar, or custom when your window draws its own header and drags via atlas.window.startDrag.
surfacepanel, window, or workspace. Workspace docks the plugin as an app-level tab beside the library.
singletonOnly one instance can be open at a time.
sidecarWidth / sidecarHeightSize of the host-side panel for embedded-browser plugins. Width is ×14; height is ×14 and defaults to 3.3.
sidecarDockright or bottom. Decides which edge the sidecar attaches to.

Declarations

itemActions, inspectors, viewers, formats, service, and contributions declare buttons, panels, file-type handlers, and background commands. Each declared surface needs its matching permission, and Atlas rejects a manifest that declares one without it.

Compatibility is enforced

compatibility states the app version range, the plugin API range, and the platforms and architectures supported. Atlas will not load a plugin whose ranges miss the running build, so users never see a half-working plugin.