hermes-agent/hermes_cli/subcommands
Teknium 46e20083d8 feat(plugins): plugin packs — declarative, shareable plugin sets (#64166)
Adds hermes-pack.yaml: a single YAML file pinning a set of plugins to
exact 40-char commit SHAs with optional non-secret plugins.entries
config seeds and a declared (not yet installed) skills list.

CLI:
- hermes plugins pack install <path|https-url> [--force]: mandatory
  review screen (plugins + refs + declared capabilities), one summary
  confirmation, then fan-out through the existing pinned install path.
  Per-plugin capability consent rides the standard #64228 flow — a pack
  never bulk-grants. Partial failures reported per plugin; non-zero
  exit when any fail. Interactive only (no --yes in v1).
- hermes plugins pack export [--enabled-only] [--name]: pack YAML on
  stdout from install metadata (repo + exact SHA); local-only plugins
  become warning comments; secrets/capability grants stripped.
- hermes plugins pack show <path|url>: dry-run view.

Supply chain: refs must be exact 40-char SHAs (tags/branches rejected
naming the entry, same rule as the community index); config seeds
reject secret-shaped, capability, and allow_* keys; bare names resolve
through the community index; https-only URL fetch with size cap.

Tests: tests/hermes_cli/test_plugin_packs.py (36) — parse/validate,
SHA enforcement, mocked install fan-out, consent-per-plugin assertion,
export round-trip + sanitization, partial-failure exit code, parser
wiring. No live network.

Docs: user-guide plugins.md packs section (notes packs build on the
manifest v2 fields per #64165) + cli-commands.md rows.

Closes #64166
2026-08-12 19:56:44 -07:00
..
__init__.py
_shared.py
acp.py
approvals.py
auth.py
backup.py
claw.py
config.py
console.py
cron.py
dashboard.py
debug.py
doctor.py
dump.py
gateway.py
gui.py
hooks.py
import_agent.py
import_cmd.py
insights.py
login.py
logout.py
logs.py
mcp.py
memory.py
model.py
monitoring.py
pairing.py
pause.py
plugins.py feat(plugins): plugin packs — declarative, shareable plugin sets (#64166) 2026-08-12 19:56:44 -07:00
profile.py
prompt_size.py
security.py
setup.py
skills.py
skin.py
slack.py
status.py
sync.py
tools.py
uninstall.py
update.py
verify.py
version.py
webhook.py
whatsapp.py