window.atlas SDK
Everything a plugin can do goes through window.atlas. Each namespace is gated by a permission, calls are async and return plain data, and a call you lack permission for throws rather than failing quietly.
Where the typed surface lives
Every signature, argument, and return type is declared in plugin-sdk.d.ts, which ships with the app at <install>/resources/docs/plugin-sdk.d.ts. The manifest JSON schema sits beside it at <install>/resources/docs/plugin-manifest.schema.json — point your editor's $schema at that file to validate manifest.json as you write it. Copy both into your project; this page is the map, that file is the contract.
What each namespace reaches
atlas.appVersion, platform, and entitlements. No permission.atlas.itemRead items: get, getSelected, search, readDataUrl.atlas.folderRead the folder tree; create, rename, move, and reveal folders; list and create smart folders.atlas.projectList, read, add, and remove projects, and trigger a rescan.atlas.librarySearch across projects, and list them.atlas.tagList tags, read an item's tags, create tags, and apply or remove them.atlas.metadataRead an item's metadata and prompt; read, write, and delete your own namespaces.atlas.linkCreate, list, and remove relationships between items. Singular — atlas.link, not links.atlas.importsCopy files into a folder, or add an item from a URL or data URL.atlas.downloadsDownload to a path or your plugin cache, with progress.atlas.networkHost-mediated fetch as text, JSON, or a data URL. Not subject to CORS.atlas.websitesAuthenticated requests to your declared domains, using the user's own session.atlas.convertRead the native conversion capability table and run batches.atlas.modelResolverFind model weight files, hash them, read safetensors metadata, compose and register cards.atlas.storageYour plugin's key/value store and its data, cache, temp, and log paths.atlas.settingsRead and write a host setting.atlas.logdebug, info, warn, error into your plugin's log.atlas.clipboardRead text; write text, an image data URL, or file paths.atlas.dialogOpen the OS file or folder picker.atlas.shellOpen a URL externally, or reveal a path in the file manager.atlas.notificationsShow a host toast at info, warn, or error level.atlas.uiRegister context-menu, topbar, and item actions at runtime, and open the host folder picker.atlas.browserMessage and drive an embedded browser view: post, subscribe, reload, navigate, read state.atlas.pluginYour own manifest, your launch context, and opening your own windows.atlas.windowClose, focus, measure, drag, and resize your own window. Package windows only.atlas.processInvoke your own service commands. A plugin cannot invoke another plugin's service.atlas.eventsSubscribe to host events: selection, file, folder, scan, rescan, export, and convert.atlas.lifecycleSubscribe to your own plugin's ready, focus, blur, visibilitychange, and beforeunload.Which permission each namespace needs
Generated from the runtime gates. A namespace listing more than one permission does not necessarily need all of them — some calls accept an alternative, others require a combination. The permissions page states which is which.
Surfaces that need no permission
atlas.app is open. atlas.plugin and atlas.lifecycle need only a plugin context. atlas.window needs a package window rather than a permission. The export-progress, export-complete, and export-error events can be subscribed to with no permission at all, unlike every other host event.