feat: hermes skills — enable/disable individual skills and categories (#642)

Add interactive skill configuration via `hermes skills` command,
mirroring the existing `hermes tools` pattern.

Changes:
- hermes_cli/skills_config.py (new): skills_command() entry point with
  curses checklist UI + numbered fallback. Supports global and
  per-platform disable lists, individual skill toggle, and category toggle.
- hermes_cli/main.py: register `hermes skills` subcommand
- tools/skills_tool.py: add _is_skill_disabled() and filter disabled
  skills in _find_all_skills(). Resolves platform from argument,
  HERMES_PLATFORM env var, then falls back to global disabled list.

Config schema (config.yaml):
  skills:
    disabled: [skill-a]                 # global
    platform_disabled:
      telegram: [skill-b]               # per-platform override

22 unit tests, 2489 passed, 0 failed.

Closes #642
This commit is contained in:
teyrebaz33 2026-03-09 07:02:06 +03:00
parent 2036c22f88
commit 7241e8784a
4 changed files with 556 additions and 0 deletions

View file

@ -1994,6 +1994,18 @@ For more help on a command:
tools_parser.set_defaults(func=cmd_tools)
# =========================================================================
# skills command
# =========================================================================
skills_parser = subparsers.add_parser(
"skills",
help="Configure which skills are enabled",
description="Interactive skill configuration — enable/disable individual skills."
)
def cmd_skills(args):
from hermes_cli.skills_config import skills_command
skills_command(args)
skills_parser.set_defaults(func=cmd_skills)
# =========================================================================
# sessions command
# =========================================================================