hermes - 💡(How to fix) Fix ACP edit approval prompts every edit individually with no session/always option, unlike terminal command approvals

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fix / Workaround

When running Hermes as an ACP server (e.g., in Emacs (agent-shell), VS Code, or any ACP editor), file edit operations (write_file, patch) prompt for permission every single time, with only allow_once and deny as options. There is no allow_session or allow_always option, unlike terminal command approvals which offer all three.

By contrast, in CLI/TUI mode, write_file and patch execute without any approval prompt at all — file edits are completely silent. The ACP edit approval is paradoxically more restrictive than the CLI experience.

RAW_BUFFERClick to expand / collapse

When running Hermes as an ACP server (e.g., in Emacs (agent-shell), VS Code, or any ACP editor), file edit operations (write_file, patch) prompt for permission every single time, with only allow_once and deny as options. There is no allow_session or allow_always option, unlike terminal command approvals which offer all three.

This creates a painful UX: a single agent request that edits a file multiple times (or multiple files) can trigger 20+ sequential approval prompts. Each requires the user to click/interact individually.

By contrast, in CLI/TUI mode, write_file and patch execute without any approval prompt at all — file edits are completely silent. The ACP edit approval is paradoxically more restrictive than the CLI experience.

And for terminal commands, ACP mode offers allow_once, allow_session, and allow_always via acp_adapter/permissions.py:_build_permission_options(), but the separate edit approval path at acp_adapter/edit_approval.py:256-259 intentionally omits session/always options.

Two possible approaches to fix:

  1. Add allow_session (and optionally allow_always) to the edit approval options in edit_approval.py, matching the terminal command permission behavior
  2. Or at minimum document the rationale for the asymmetry

The edit approval auto-approval policy at edit_approval.py:148-174 already supports workspace_session and session modes, but these are configured server-side and not surfaced as user-facing options in the ACP permission dialog. The is_sensitive_auto_approve_path check (line 140) already provides a safety net for dangerous paths like .env, .ssh, .git/ — these would still always prompt even with broader options available.

Steps to reproduce:

  1. Start Hermes in ACP mode (hermes acp)
  2. Connect via an ACP client (Emacs (agent-shell), VS Code, Zed)
  3. Ask the agent to make multiple edits to one or more files
  4. Observe that every individual edit requests permission separately
  5. Expected: an option to approve once per file or for the session

Versions: Hermes Agent v0.14.0

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING