MarketDeck docs

plugin

Install, list, enable, and remove plugins — the entry point for the marketdeck-gnome and marketdeck-webui repos.

Plugins are out-of-tree extensions that consume the CLI. They live under ~/.local/share/marketdeck/plugins/<name>/ with a plugin.json manifest and a register(api) entry point. The plugin loader gates on a major-version semver match against the host so a breaking release of marketdeck refuses to load incompatible plugins instead of silently misbehaving.

Usage#

marketdeck plugin <subcommand> [args]

Subcommands#

SubcommandWhat it does
install <src>Install from a local path or git remote.
listInstalled plugins + enabled state + compat status.
enable <name>Mark a plugin as enabled in ~/.config/marketdeck/plugins.json.
disable <name>Mark as disabled — the loader skips it on the next CLI run.
remove <name>rm -rf the plugin dir and drop it from state.
info <name>Full manifest + the commands the plugin registered.
update <name>git pull for git-installed plugins, re-install for path-installed.
`validate <path\name>`Validate manifest compatibility and CLI-first architecture rules.
`audit <path\name>`Strict CLI-first compliance audit for direct DB/API/secret handling.
smoke <name>Load one installed plugin and report registered commands plus validation.
commands <name>List commands claimed by one plugin.
doctorValidate every installed plugin.
init <name> [--dir PATH] [--command CMD]Scaffold a new plugin repo with manifest, register() stub, README, and CI workflow.

Sources for install#

FormWhat it does
/path/to/dirCopy a local working tree into the plugins dir.
git:<url> or <url>.gitgit clone from the remote.
github:<user>/<repo>Shorthand for git@github.com:<user>/<repo>.git.

Examples#

marketdeck plugin install /home/you/projects/marketdeck-gnome
marketdeck plugin install git:https://git.marketdeck.io/marketdeck/marketdeck-webui.git
marketdeck plugin list --format text
marketdeck plugin info marketdeck-webui --format text
marketdeck plugin validate marketdeck-webui
marketdeck plugin audit marketdeck-webui --format json
marketdeck plugin doctor
marketdeck plugin update marketdeck-webui
marketdeck plugin disable marketdeck-webui
marketdeck plugin remove marketdeck-webui
marketdeck plugin init my-plugin --command hello

Compat gate#

plugin.marketdeck in plugin.json is a SemVer range. The host hard-rejects on major mismatch. So:

  • "marketdeck": ">=0.1.0" works on every 0.x host.
  • A plugin pinned to >=0.5.0 running against host 0.4.x is refused at install time, and the failure surfaces in marketdeck plugin list's compat_error.

When the host bumps to 1.0.0, every plugin must republish with its marketdeck range updated accordingly.

Plugin SDK#

A plugin's register(api) receives a frozen API surface — see lib/plugin-sdk/index.js and its CHANGELOG.md for the stable exports. Don't reach into core/, db/, or wallets/ directly; the loader supplies everything a plugin needs through the SDK.