Manifest
Declarations request capabilities; the host validates and grants access. apiVersion is the package protocol; requires.pluginApi is the minimum host API. Access defaults to read. Background requires Lite API 3.4; templates 3.2; hooks 3.3; file metadata and explorer 3.1.
Usage guide: views. API index.
Signatures, parameters and return types are generated from the SDK. Optional members are not available in every host and context.
PluginManifest
Section titled “PluginManifest”PluginManifest.apiVersion
Section titled “PluginManifest.apiVersion”apiVersion: 1;PluginManifest.kind
Section titled “PluginManifest.kind”kind?: "theme";PluginManifest.id
Section titled “PluginManifest.id”id: string;PluginManifest.name
Section titled “PluginManifest.name”name: string;PluginManifest.description
Section titled “PluginManifest.description”An optional nonempty plain-text line, at most 1024 UTF-16 code units.
description?: string;PluginManifest.version
Section titled “PluginManifest.version”version: string;PluginManifest.i18n
Section titled “PluginManifest.i18n”i18n?: { defaultLocale: string; messages: Record<string, string>; readme?: Record<string, string>;};PluginManifest.requires
Section titled “PluginManifest.requires”requires?: { pluginApi: string;};PluginManifest.icon
Section titled “PluginManifest.icon”icon?: PluginIconDefinition;PluginManifest.extension
Section titled “PluginManifest.extension”extension?: string;PluginManifest.background
Section titled “PluginManifest.background”A separate Worker-style entry. network: true permits public HTTPS/WSS after approval; up to eight exact networkOrigins optionally restrict it. bluetooth: true grants the selected device, optionally narrowed by a service whitelist. Device IDs are chosen by the host. API 3.6 adds autoStart: true for approved startup on Space opening, and fileHistory: true for file-open metadata in the owner window and Space; fileHistory does not grant file contents.
background?: { entry: string; network?: true; networkOrigins?: string[]; bluetooth?: true | { services: BluetoothServicePermission[]; }; fileHistory?: true; autoStart?: true;};PluginManifest.views
Section titled “PluginManifest.views”views?: ViewDeclaration[];PluginManifest.fileTemplates
Section titled “PluginManifest.fileTemplates”Static UTF-8 templates, up to 256 KiB each. The referenced document View must have a matching file/open placement.
fileTemplates?: FileTemplateDeclaration[];PluginManifest.actions
Section titled “PluginManifest.actions”actions?: ActionDeclaration[];PluginManifest.formatters
Section titled “PluginManifest.formatters”formatters?: FormatterDeclaration[];PluginManifest.hooks
Section titled “PluginManifest.hooks”hooks?: FileHookDeclaration[];PluginManifest.placements
Section titled “PluginManifest.placements”placements?: Placement[];PluginManifest.settings
Section titled “PluginManifest.settings”settings?: Record<string, SettingDeclaration>;PluginManifest.browser
Section titled “PluginManifest.browser”browser?: { workers?: boolean; network?: true; networkOrigins?: string[];};PluginManifest.storage
Section titled “PluginManifest.storage”storage?: { maxBytes: number;};PluginManifest.workspace
Section titled “PluginManifest.workspace”workspace?: { files?: boolean | { read?: boolean; write?: boolean; }; filemeta?: { namespaces: string[]; write?: boolean; };};PluginManifest.connections
Section titled “PluginManifest.connections”connections?: Record<string, { title: string; url: string; configurable?: boolean;}>;PluginManifest.theme
Section titled “PluginManifest.theme”theme?: ThemeDeclaration;Related types: PluginIconDefinition, BluetoothServicePermission, ViewDeclaration, FileTemplateDeclaration, ActionDeclaration, FormatterDeclaration, FileHookDeclaration, Placement, SettingDeclaration, ThemeDeclaration.
ThemeDeclaration
Section titled “ThemeDeclaration”ThemeDeclaration.stylesheet
Section titled “ThemeDeclaration.stylesheet”stylesheet: string;FileTemplateDeclaration
Section titled “FileTemplateDeclaration”FileTemplateDeclaration.id
Section titled “FileTemplateDeclaration.id”id: string;FileTemplateDeclaration.title
Section titled “FileTemplateDeclaration.title”title: string;FileTemplateDeclaration.extension
Section titled “FileTemplateDeclaration.extension”extension: string;FileTemplateDeclaration.view
Section titled “FileTemplateDeclaration.view”view: string;FileTemplateDeclaration.content
Section titled “FileTemplateDeclaration.content”content: string;ViewDeclaration
Section titled “ViewDeclaration”ViewDeclaration.id
Section titled “ViewDeclaration.id”id: string;ViewDeclaration.title
Section titled “ViewDeclaration.title”title: string;ViewDeclaration.entry
Section titled “ViewDeclaration.entry”entry: string;ViewDeclaration.kind
Section titled “ViewDeclaration.kind”kind: "page" | "file";ViewDeclaration.capabilities
Section titled “ViewDeclaration.capabilities”capabilities?: ViewCapability[];ViewDeclaration.access
Section titled “ViewDeclaration.access”access?: "read" | "write";ViewDeclaration.configuration
Section titled “ViewDeclaration.configuration”configuration?: ViewConfiguration;ViewDeclaration.icon
Section titled “ViewDeclaration.icon”icon?: PluginIconDefinition;Related types: ViewCapability, ViewConfiguration, PluginIconDefinition.
ViewConfiguration
Section titled “ViewConfiguration”ViewConfiguration.type
Section titled “ViewConfiguration.type”type: "object";ViewConfiguration.properties
Section titled “ViewConfiguration.properties”properties: Record<string, SettingDeclaration & { "x-field"?: true;}>;Related types: SettingDeclaration.
ActionDeclaration
Section titled “ActionDeclaration”ActionDeclaration.id
Section titled “ActionDeclaration.id”id: string;ActionDeclaration.title
Section titled “ActionDeclaration.title”title: string;ActionDeclaration.context
Section titled “ActionDeclaration.context”context: "workspace" | "file" | "document" | "table";ActionDeclaration.access
Section titled “ActionDeclaration.access”access?: "read" | "write";ActionDeclaration.extensions
Section titled “ActionDeclaration.extensions”extensions?: string[];ActionDeclaration.icon
Section titled “ActionDeclaration.icon”icon?: PluginIconDefinition;Related types: PluginIconDefinition.
FormatterDeclaration
Section titled “FormatterDeclaration”FormatterDeclaration.id
Section titled “FormatterDeclaration.id”id: string;FormatterDeclaration.title
Section titled “FormatterDeclaration.title”title: string;FormatterDeclaration.extensions
Section titled “FormatterDeclaration.extensions”extensions: string[];FileHookDeclaration
Section titled “FileHookDeclaration”FileHookDeclaration.id
Section titled “FileHookDeclaration.id”id: string;FileHookDeclaration.title
Section titled “FileHookDeclaration.title”title: string;FileHookDeclaration.event
Section titled “FileHookDeclaration.event”event: FileHookEventType;FileHookDeclaration.extensions
Section titled “FileHookDeclaration.extensions”extensions: string[];FileHookDeclaration.access
Section titled “FileHookDeclaration.access”access?: "read" | "write";Related types: FileHookEventType.
Placement
Section titled “Placement”export type Placement = { location: "plugin/settings"; view: string;} | { location: "navigation"; view: string;} | { location: "sidebar/explorer"; view: string;} | { location: "file/open"; view: string; extensions: string[];} | { location: "table/view"; view: string;} | { location: "command-palette"; action: string;} | { location: "file/context"; action: string;} | { location: "table/context"; action: string;} | { location: "view/toolbar"; action: string; view: string;} | { location: "keybinding"; action: string; key: string; mac?: string; linux?: string;};BluetoothServicePermission
Section titled “BluetoothServicePermission”BluetoothServicePermission.uuid
Section titled “BluetoothServicePermission.uuid”uuid: string;BluetoothServicePermission.read
Section titled “BluetoothServicePermission.read”read?: boolean;BluetoothServicePermission.write
Section titled “BluetoothServicePermission.write”write?: boolean;BluetoothServicePermission.notify
Section titled “BluetoothServicePermission.notify”notify?: boolean;SettingDeclaration
Section titled “SettingDeclaration”export type SettingDeclaration = { title: string; description?: string;} & ({ type: "boolean"; default: boolean;} | { type: "string"; default: string; enum?: string[];} | { type: "number"; default: number; minimum?: number; maximum?: number;});