PluginManifest
Defined in: plugin.ts:113
Properties
Section titled “Properties”adapters?
Section titled “adapters?”
optionaladapters?:string|string[]
Defined in: plugin.ts:154
optionalapp?:PluginAppConfig
Defined in: plugin.ts:220
Desktop-app provider config. For providers that ship as a native macOS app with a local HTTP API rather than a CLI (e.g. Ollama, Osaurus). When present, onboarding renders a Download → Open → Models flow instead of the CLI Install → Sign in → Ready flow.
appScope?
Section titled “appScope?”
optionalappScope?:string
Defined in: plugin.ts:129
Which app the plugin applies to: recursive, financial, or shared.
author?
Section titled “author?”
optionalauthor?:string| {name?:string;url?:string; }
Defined in: plugin.ts:119
Author attribution — a plain string or { name, url }.
automations?
Section titled “automations?”
optionalautomations?:string|string[]
Defined in: plugin.ts:153
bundledOptIn?
Section titled “bundledOptIn?”
optionalbundledOptIn?:boolean
Defined in: plugin.ts:178
When true, the bundled copy is marketplace-only — skills/rules/hooks/tools do not load until the user installs the plugin into ~/.recursive/…/installed/. Adapter plugins stay bundle-scanned so onboarding can browse them without copying; use this for optional integrations (Slack, Memory, verify hooks).
category?
Section titled “category?”
optionalcategory?:string
Defined in: plugin.ts:125
Marketplace category.
optionalcli?:PluginCliConfig
Defined in: plugin.ts:206
How to probe whether this plugin’s CLI is installed. bin defaults to the
adapter’s terminal.command; versionArgs (e.g. ['--version']) capture a
version string when present. Used by GET /api/adapters/cli-status.
client_lifecycle?
Section titled “client_lifecycle?”
optionalclient_lifecycle?:Record<string,ClientLifecycleHandlerDeclaration>
Defined in: plugin.ts:170
color?
Section titled “color?”
optionalcolor?:string
Defined in: plugin.ts:122
comms?
Section titled “comms?”
optionalcomms?:string|string[]
Defined in: plugin.ts:137
Comms templates directory.
optionalcore?:boolean
Defined in: plugin.ts:180
Core platform plugin — boot-synced and cannot be disabled in the UI.
optionaldata?:PluginDataConfig
Defined in: plugin.ts:168
dependencies?
Section titled “dependencies?”
optionaldependencies?:string[]
Defined in: plugin.ts:171
description?
Section titled “description?”
optionaldescription?:string
Defined in: plugin.ts:117
detect?
Section titled “detect?”
optionaldetect?:PluginDetectConfig
Defined in: plugin.ts:167
diagnoseCommand?
Section titled “diagnoseCommand?”
optionaldiagnoseCommand?:string
Defined in: plugin.ts:193
greetings?
Section titled “greetings?”
optionalgreetings?:string|string[]
Defined in: plugin.ts:159
Session-greeting catalog JSON files. Each catalog is exposed as a greeting pack.
homepage?
Section titled “homepage?”
optionalhomepage?:string
Defined in: plugin.ts:120
hooks?
Section titled “hooks?”
optionalhooks?:string|string[]
Defined in: plugin.ts:161
optionalicon?:string
Defined in: plugin.ts:123
id:
string
Defined in: plugin.ts:114
installCommand?
Section titled “installCommand?”
optionalinstallCommand?:string
Defined in: plugin.ts:194
installUrl?
Section titled “installUrl?”
optionalinstallUrl?:string
Defined in: plugin.ts:200
Docs / landing URL for installing this plugin’s CLI. Shown as a “learn more”
link beside the install action (and as the fallback when no installCommand
can be auto-run, e.g. a download page).
lifecycle?
Section titled “lifecycle?”
optionallifecycle?:Record<string,LifecycleHandlerDeclaration>
Defined in: plugin.ts:169
loginCommand?
Section titled “loginCommand?”
optionalloginCommand?:string
Defined in: plugin.ts:191
Terminal-action catalog (declarative, resolved by the server’s
resolveTerminalAction). Each is an interactive CLI command the platform
can offer in a floating terminal sheet — surfaced as a one-click pill on
plugin cards, settings rows, and error states.
loginCommand— (re)authenticate, e.g.codex login. Kindauth.setupCommand— first-time / config setup, e.g.aws configure. Kindsetup.diagnoseCommand— health check / repair, e.g.gh auth status. Kinddiagnose.installCommand— install the CLI itself (pre-flight before auth). Kindinstall.
optionalmcp?:string|string[]
Defined in: plugin.ts:162
min_recursive_version?
Section titled “min_recursive_version?”
optionalmin_recursive_version?:string
Defined in: plugin.ts:135
Minimum Recursive version this plugin supports; enforced at install.
optionalname?:string
Defined in: plugin.ts:115
optionalnpm?:object
Defined in: plugin.ts:213
npm install behavior for the plugin’s package.json dependencies.
Lifecycle scripts (postinstall etc.) are disabled by default; a plugin
that genuinely needs them declares "npm": { "scripts": true } and that
fact is disclosed at install time.
scripts?
Section titled “scripts?”
optionalscripts?:boolean
onboarding?
Section titled “onboarding?”
optionalonboarding?:PluginOnboardingConfig
Defined in: plugin.ts:232
Declarative onboarding shown after marketplace installation and from the
plugin settings page. Unlike setupSequence, these steps may collect plugin
settings or link to an external setup console.
platforms?
Section titled “platforms?”
optionalplatforms?:string[]
Defined in: plugin.ts:133
OS allowlist (e.g. [“darwin”]); omit for all platforms.
private?
Section titled “private?”
optionalprivate?:boolean
Defined in: plugin.ts:131
Excluded from registry publishing.
provides?
Section titled “provides?”
optionalprovides?:Record<string,unknown>
Defined in: plugin.ts:139
Structured provider declarations (sync_provider, data_provider).
routes?
Section titled “routes?”
optionalroutes?:string|string[]
Defined in: plugin.ts:160
rules?
Section titled “rules?”
optionalrules?:string|string[]
Defined in: plugin.ts:152
settings?
Section titled “settings?”
optionalsettings?:PluginSettingsSchema
Defined in: plugin.ts:166
setupCommand?
Section titled “setupCommand?”
optionalsetupCommand?:string
Defined in: plugin.ts:192
setupSequence?
Section titled “setupSequence?”
optionalsetupSequence?:PluginSetupStep[]
Defined in: plugin.ts:226
Ordered “getting started” steps, surfaced as a checklist after install and
during onboarding. Each step reuses the terminal-action catalog kinds and,
when command is omitted, the matching manifest command field.
skills?
Section titled “skills?”
optionalskills?:string|string[]
Defined in: plugin.ts:150
soundDefaults?
Section titled “soundDefaults?”
optionalsoundDefaults?:Record<string,string>
Defined in: plugin.ts:149
Sound packs only — an explicit mapping from a notification event to a sound
slug (the audio file’s stem). Lets a pack declare which of its sounds plays
for each event when the user applies the pack in Notifications settings.
Keys are the client’s NotificationSoundKeys (soundSessionStarted,
soundSessionComplete, soundQuestionAsked, soundSessionError,
soundAppOpen); the map may be partial. Any event left unmapped — or whose
slug isn’t present in the pack — falls back to keyword-heuristic matching.
sounds?
Section titled “sounds?”
optionalsounds?:string|string[]
Defined in: plugin.ts:157
optionaltags?:string[]
Defined in: plugin.ts:127
Marketplace search tags.
themes?
Section titled “themes?”
optionalthemes?:string|string[]
Defined in: plugin.ts:156
thumbnail?
Section titled “thumbnail?”
optionalthumbnail?:string
Defined in: plugin.ts:121
tools?
Section titled “tools?”
optionaltools?:string|string[]
Defined in: plugin.ts:155
triggers?
Section titled “triggers?”
optionaltriggers?:PluginTriggersManifest
Defined in: plugin.ts:164
Marks this plugin as an event trigger source (Slack/Linear/webhook).
optionalui?:PluginUiManifest
Defined in: plugin.ts:165
version?
Section titled “version?”
optionalversion?:string
Defined in: plugin.ts:116
workflows?
Section titled “workflows?”
optionalworkflows?:string|string[]
Defined in: plugin.ts:151