* fix(plugins): wire the plugin service on a headless serve, and turn plugins on from the CLI * test(plugins): build the switch test's RPC context inline after main dropped the shared helper --------- Co-authored-by: Justas Brazauskas <brazauskasjustas@gmail.com>
4.2 KiB
Plugin commands
Use these to make, check, load and manage Orca plugins (themes, terminal themes, icon themes,
syntaxes, language packs, custom editors, panels). All commands take --json; branch on
error.code, not on wording.
ORCA plugin create <dir> --template <theme|terminal-theme|icon-theme|syntax|language-pack|editor|panel> --publisher <owner> [--id <id>] [--name <name>] --json
ORCA plugin validate <dir|orca-plugin.json|orca-catalog.json> --json
ORCA plugin inspect <dir> --json
ORCA plugin dev load <dir> [--approve <fingerprint>] --json
ORCA plugin dev reload [<dir>] [--approve <fingerprint>] --json
ORCA plugin dev unload <dir|plugin-key> --json
ORCA plugin list --json
ORCA plugin logs <plugin-key> --json
ORCA plugin enable <plugin-key> [--approve <fingerprint>] --json
ORCA plugin disable <plugin-key> --json
ORCA plugin system on|off --json
Exit codes: 0 ok, 1 error, 2 plugin_invalid, 3 approval_required or approval_stale.
Make and load a plugin
plugin createinto a new folder. Set--publisherto the GitHub or GitLab user or organization that will own the repository;stablyaiand anorca-id prefix are reserved.- Edit the files. Field rules:
docs/reference/plugin-manifest.md,plugin-themes.md,plugin-theme-tokens.md,plugin-syntax.mdandplugin-authoring.mdin the Orca repository. plugin validateuntil it passes. It is offline and never runs plugin code.plugin dev load <dir>adds the folder to Settings → Plugins → Development folders on the Orca host and loads it. Orca reloads it when its files change; runplugin dev reload <dir>if a change was missed.plugin logsshows what a panel or worker printed.plugin dev unload <dir>when done.
Paths are on the machine that runs Orca. With --environment <server>, pass an absolute path
on that server. From an SSH or WSL shell that forwards orca to another machine, the authoring
and dev commands refuse; work on the Orca host instead.
plugin_system_disabled means plugins are off on that host. Ask the user to click "Turn on
plugins" in Settings → Plugins, or on a host with no window (orca serve) to run
plugin system on with the same --environment. It approves nothing; only plugins approved
earlier start.
Approval
- Content-only plugins (themes, terminal themes, icon themes, syntaxes, language packs) load and enable without approval.
- Anything that runs code or acts in Orca (panels, editors, commands, shortcuts, workers,
capabilities) fails with
approval_required(exit 3).error.messageanderror.datasay exactly what it would be granted, why approval is needed, anderror.data.command, the same command with--approve <fingerprint>. - The fingerprint is bound to that plugin, version, files and access. A different plugin,
version, set of files, or more access gets
approval_stalewith the new grants and a new fingerprint. - Approving grants real access on the user's machine or server. Ask your user before re-running
with
--approveunless they already asked for exactly this plugin and this access. Never pass a fingerprint you did not get from Orca for this exact command. Each approval is written to the plugin audit log as approved via CLI. - Without approval a development folder stays loaded but nothing in it runs.
- For an approved development folder, later code edits run without asking again; new capabilities, a higher execution level, or changed commands and shortcuts need a new approval.
disableanddev unloadnever need approval.
Publish
There is no publish command. Use Git and gh with the user's own credentials:
plugin validate .must pass, and the work must be committed and pushed to the GitHub repository whose owner matchespublisher.- Set
versioninorca-plugin.json, commit, then tag that commitv<version>and push the tag:git tag -a v1.2.0 -m v1.2.0 && git push origin v1.2.0. - Add the
orca-plugintopic to the repository:gh repo edit <owner>/<repo> --add-topic orca-plugin. - Check the listing status at
https://www.onorca.dev/plugins/<owner>/<repo>.
Publishing is public and acts under the user's GitHub identity; do it only when the user asked to publish.