Skip to content

feat(cli): add hermes plugins install/remove/list command#2337

Merged
teknium1 merged 1 commit intomainfrom
hermes/hermes-40b195db
Mar 21, 2026
Merged

feat(cli): add hermes plugins install/remove/list command#2337
teknium1 merged 1 commit intomainfrom
hermes/hermes-40b195db

Conversation

@teknium1
Copy link
Copy Markdown
Contributor

Salvage of PR #1785 by @anpicasso (90 commits behind, cherry-picked cleanly). Closes #1789.

Adds hermes plugins CLI subcommand for managing plugins from Git repositories:

Command Description
hermes plugins install <git-url|owner/repo> Clone a plugin into ~/.hermes/plugins/
hermes plugins install --force <id> Remove existing and reinstall
hermes plugins update <name> Pull latest changes
hermes plugins remove <name> Remove (aliases: rm, uninstall)
hermes plugins list Show installed plugins (alias: ls)

Security: path traversal protection on plugin names, no shell injection (explicit arg lists), manifest version guard, insecure URL warnings.

Install flow: clones to temp dir → reads plugin.yaml for name → checks manifest version compat → copies to plugins dir → renders after-install.md if present.

3 files, +895 lines. 42 tests pass. Contributor authorship preserved.

Plugin management via git repos:
- hermes plugins install <git-url|owner/repo>
- hermes plugins update <name>
- hermes plugins remove <name> (aliases: rm, uninstall)
- hermes plugins list (alias: ls)

Security: path traversal protection, no shell injection, manifest
version guard, insecure URL warnings.

42 tests covering security, dispatch, helpers, and commands.

Based on work by Angello Picasso in PR #1785. Closes #1789.
@teknium1 teknium1 merged commit 67600d0 into main Mar 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant