feat: Add /plugin command for managing installed plugins#502
feat: Add /plugin command for managing installed plugins#502
Conversation
Add support for managing plugins installed in ~/.openhands/skills/installed/: TUI Command: - /plugin - Shows installed plugins and usage instructions CLI Subcommand: - openhands plugin list [--json] - List installed plugins - openhands plugin install <source> [--ref] [--repo-path] [--force] - Install plugin - openhands plugin uninstall <name> - Uninstall plugin - openhands plugin update <name> - Update plugin to latest version Supported sources: - github:owner/repo - GitHub repository shorthand - https://github.com/owner/repo - Full git URL - /local/path - Local directory path This uses the new installed plugins management utilities from SDK PR #2031: OpenHands/software-agent-sdk#2031 Closes #405 Co-authored-by: openhands <openhands@all-hands.dev>
Coverage Report •
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Looks like there are a few issues preventing this PR from being merged!
If you'd like me to help, just leave a comment, like Feel free to include any additional details that might help me get this PR into a better state. You can manage your notification settings |
- Update openhands-sdk/tools to latest PR #2031 commit (d3f6e5cc) - Update agent-client-protocol to >=0.8.1 (SDK requirement) - Fix plugin directory path: ~/.openhands/plugins/installed/ Co-authored-by: openhands <openhands@all-hands.dev>
|
@OpenHands please fix the failing actions on PR #502 at branch |
|
I'm on it! xingyaoww can track my progress at all-hands.dev |
- Create openhands_cli/plugin/installed.py with local plugin management functions (install_plugin, uninstall_plugin, list_installed_plugins, etc.) mirroring the SDK PR #2031 functionality - Update commands.py to import from local module instead of SDK - Revert pyproject.toml to use released SDK version (v1.11.5) without rev fields that fail CI package version checks - Update tests to use local module imports - Fix test_commands.py to expect 10 commands (including /plugin) - Fix StrEnum lint error in models.py (UP042) This allows the /plugin command to work with the current released SDK while waiting for SDK PR #2031 to be merged. Once merged, the local implementation can be refactored to use SDK functions. Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
Restoring the original uv.lock file to maintain compatibility with the older pyright version (1.1.407) which doesn't have the stricter checks that were causing CI failures. Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
Final SummaryAll CI failures on PR #502 ( Root CauseThe PR originally depended on unreleased SDK functions from PR #2031, which caused:
Fixes Applied
CI Status (All Passing)
Latest Commit
The PR is now ready for review and merge. Once SDK PR #2031 is merged, a follow-up PR can migrate from the local plugin utilities to the SDK functions. |
|
Status + review note: The SDK PR that introduced installed plugin utilities has now merged (OpenHands/software-agent-sdk#2031). This PR currently carries a local copy in Once the CLI bumps to an SDK release containing those utilities, we should swap this module to import from |
Summary
This PR adds support for the
/plugincommand to manage plugins installed in~/.openhands/plugins/installed/, similar to Claude Code's plugin management system.Closes #405
Changes
TUI Command (
/plugin)CLI Subcommand (
openhands plugin)openhands plugin list [--json]- List installed pluginsopenhands plugin install <source> [--ref] [--repo-path] [--force]- Install a pluginopenhands plugin uninstall <name>- Uninstall a pluginopenhands plugin update <name>- Update a plugin to the latest versionSupported Sources
github:owner/repo- GitHub repository shorthandhttps://github.com/owner/repo- Full git URL/local/path- Local directory pathDependencies
This PR depends on the SDK changes in OpenHands/software-agent-sdk#2031 which adds the installed plugins management utilities:
install_plugin()- Install plugins from various sourcesuninstall_plugin()- Remove installed pluginslist_installed_plugins()- List all installed pluginsupdate_plugin()- Update plugins to latest versionThe
pyproject.tomlhas been updated to use the latest SDK commit (d3f6e5cc) from PR #2031.Usage Examples
In the TUI, type
/pluginto see installed plugins and usage instructions.Testing
🚀 Try this PR