Expand description
Client CLI shellout for plugin installation (ADR-0008).
Plugins are installed by shelling out to each client’s native CLI:
- Claude Code:
claude plugin marketplace add+claude plugin install - Copilot CLI:
copilot plugin marketplace add+copilot plugin install - VS Code:
code --install-extension - opencode:
opencode plugin
This module exposes typed install/uninstall functions per client. All functions return structured results (never write to stdout/stderr) and handle CLI-not-found gracefully per the warn-skip policy.
Enums§
- Plugin
Check Result - Result of checking whether a specific plugin is currently installed in
the client. Used by
doctorfor plugin reconciliation. - Plugin
Outcome - Outcome of a plugin install or uninstall attempt.
- Plugin
Scope - Scope for Claude plugin installation, derived from upskill’s project/global flag.
Functions§
- check_
claude_ plugin_ installed - Check whether a Claude Code plugin is installed for the given scope.
- check_
opencode_ plugin_ installed - Check whether an opencode plugin is installed.
- check_
vscode_ extension_ installed - Check whether a VS Code extension is installed.
- install_
claude_ plugin - Install a Claude Code plugin via
claude plugin marketplace addfollowed byclaude plugin install. The marketplace-add step is idempotent. - install_
copilot_ plugin - Install a GitHub Copilot CLI plugin via
copilot plugin marketplace addfollowed bycopilot plugin install. The marketplace-add step is idempotent. Unlike Claude, Copilot CLI does not support a--scopeflag. - install_
opencode_ plugin - Install an opencode module via
opencode plugin. - install_
vscode_ extension - Install a VS Code extension via
code --install-extension. - is_
cli_ available - Returns
trueif the named CLI binary is available on PATH. - uninstall_
claude_ plugin - Uninstall a Claude Code plugin.
- uninstall_
copilot_ plugin - Uninstall a GitHub Copilot CLI plugin.
- uninstall_
opencode_ plugin - Uninstall an opencode module.
- uninstall_
vscode_ extension - Uninstall a VS Code extension.