Skip to content

fix: add --yes flag to bypass confirmation in /skills install and uninstall#1647

Merged
teknium1 merged 1 commit intomainfrom
hermes/hermes-3218df83
Mar 17, 2026
Merged

fix: add --yes flag to bypass confirmation in /skills install and uninstall#1647
teknium1 merged 1 commit intomainfrom
hermes/hermes-3218df83

Conversation

@teknium1
Copy link
Copy Markdown
Contributor

Summary

Salvage of PR #1595 by @333Alden333 onto current main, with critical bug fix and tests.

What this does: /skills install and /skills uninstall use bare input() for confirmation prompts. Inside prompt_toolkit's TUI, input() hangs because prompt_toolkit owns the event loop. Adding --yes / -y bypasses the confirmation prompt so these commands work from the interactive CLI.

Changes

  • do_install() — new skip_confirm parameter; when True, skips the confirmation block
  • do_uninstall() — new skip_confirm parameter; wraps the input() prompt in if not skip_confirm:
  • handle_skills_slash() — separates --yes/-y (confirmation bypass) from --force (scan override)
  • hermes_cli/main.py — splits argparse --force/--yes/-y from a single flag into two separate flags with distinct semantics
  • Usage hint for /skills uninstall now shows [--yes]

Critical bug in original PR

The original PR #1595 accidentally deleted the install_from_quarantine() call and the SKILLS_DIR import from do_install(), which would have completely broken all skill installations with a NameError. That bug is not present in this salvage.

Tests

16 new tests across 2 files:

  • tests/hermes_cli/test_skills_install_flags.py — argparse flag separation (--yes, -y, --force, both, neither)
  • tests/hermes_cli/test_skills_skip_confirm.py — slash command flag parsing, do_install/do_uninstall skip_confirm behavior, input() bypass verification

Full suite: 4821 passed, 8 pre-existing failures (unrelated), 200 skipped.

Credit

Original concept by @333Alden333 (PR #1595).
Closes #1595

…nstall

Fixes hanging when using /skills install or /skills uninstall from the
TUI — bare input() calls hang inside prompt_toolkit's event loop.

Changes:
- Add skip_confirm parameter to do_install() and do_uninstall()
- Separate --yes/-y (confirmation bypass) from --force (scan override)
  in both argparse and slash command handlers
- Update usage hint for /skills uninstall to show [--yes]

The original PR (#1595) accidentally deleted the install_from_quarantine()
call, which would have broken all installs. That bug is not present here.

Based on PR #1595 by 333Alden333.
@teknium1 teknium1 merged commit 1b2d6c4 into main Mar 17, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants