Skip to content

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

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

fix: add --yes flag to bypass confirmation in /skills install and uninstall#1647
teknium1 merged 1 commit into
mainfrom
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
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…nstall (NousResearch#1647)

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 (NousResearch#1595) accidentally deleted the install_from_quarantine()
call, which would have broken all installs. That bug is not present here.

Based on PR NousResearch#1595 by 333Alden333.

Co-authored-by: 333Alden333 <333Alden333@users.noreply.github.com>
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…nstall (NousResearch#1647)

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 (NousResearch#1595) accidentally deleted the install_from_quarantine()
call, which would have broken all installs. That bug is not present here.

Based on PR NousResearch#1595 by 333Alden333.

Co-authored-by: 333Alden333 <333Alden333@users.noreply.github.com>
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…nstall (NousResearch#1647)

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 (NousResearch#1595) accidentally deleted the install_from_quarantine()
call, which would have broken all installs. That bug is not present here.

Based on PR NousResearch#1595 by 333Alden333.

Co-authored-by: 333Alden333 <333Alden333@users.noreply.github.com>
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
…nstall (NousResearch#1647)

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 (NousResearch#1595) accidentally deleted the install_from_quarantine()
call, which would have broken all installs. That bug is not present here.

Based on PR NousResearch#1595 by 333Alden333.

Co-authored-by: 333Alden333 <333Alden333@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants