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#
| Subcommand | What it does | |
|---|---|---|
install <src> | Install from a local path or git remote. | |
list | Installed 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. | |
doctor | Validate 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#
| Form | What it does |
|---|---|
/path/to/dir | Copy a local working tree into the plugins dir. |
git:<url> or <url>.git | git 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 every0.xhost.- A plugin pinned to
>=0.5.0running against host0.4.xis refused at install time, and the failure surfaces inmarketdeck plugin list'scompat_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.