Skip to content

Search docs

Search Cortex documentation pages and headings.

Plugin Development

Manifest and Capabilities

Define plugin identity, bundle paths, and explicit capabilities for reviewed extension behavior.

On this page

Every community plugin needs a manifest.json at the plugin root.

Manifest Shape

{	"id": "example-plugin",	"name": "Example Plugin",	"version": "0.1.0",	"minAppVersion": "0.1.0",	"author": "Your Name",	"authorUrl": "https://example.com",	"description": "Adds a sample command and sidebar view.",	"icon": "puzzle",	"main": "dist/index.js",	"capabilities": ["commands", "ui:views", "ui:sidebar"]}
FieldRequiredNotes
idYesStable id unique inside a vault. Reviewed listings must match this id.
nameYesUser-facing name.
versionYesUse semver for update comparisons.
minAppVersionYesMinimum Cortex version the plugin expects.
authorYesDisplayed in plugin and reviewed listing surfaces.
authorUrlNoPublic URL for the author or organization.
descriptionYesShort install/review summary.
iconYesLucide icon name or host-supported icon identifier.
mainYesSafe relative path to the plugin bundle.
capabilitiesNoRequired before guarded API calls work.

Capability Reference

CapabilityEnables
commandsapi.commands.register, api.commands.execute, command palette, hotkeys, Vim names.
settingsPlugin settings storage, schemas, settings tabs, and onChange listeners.
vault:readVault path, file reads, file listings, exists, metadata reads, and tag reads.
vault:writeWriting text files in the active vault.
vault:deleteDeleting files from the active vault.
vault:watchSubscribing to vault file events.
editor:readActive file path and active editor content reads.
editor:writeCursor insertion and selection replacement.
editor:extensionsHost-specific editor extensions.
editor:foldingPortable line-based fold providers.
markdown:extensionsInline, semantic, callout, preprocessor, processor, and plugin styles.css support.
properties:typesCustom note property type registration.
ui:viewsDeclarative host-rendered views.
ui:sidebarSidebar items that open registered views.
ui:statusbarStatus bar items.
ui:contextmenuFile, editor, and tab context menu items.
ui:modalsOpening and closing registered modal views.
workspace:tabsOpening files, views, and temporary Markdown tabs.
theme:readActive theme name and theme change subscriptions.
bookmarks:readBookmark list, lookup, and change subscriptions.
bookmarks:writeAdd, remove, and toggle bookmarks.
dataPlugin-owned data files.
notificationsNative notifications and lightweight notices.

Best Practices

  • Request the narrowest capabilities you need.
  • Treat capabilities as user-visible permissions.
  • Do not call APIs defensively and ignore capability failures. Declare the capability or remove the feature.
  • Use local ids for plugin commands, views, settings, and context menu items. Cortex prefixes where global uniqueness is needed.