hermes - 💡(How to fix) Fix Feature: Make unconditional blocklist configurable (default: disabled)

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…

Error Message

Error message:

Root Cause

  1. Self-hosted users deserve control — Someone running Hermes on their own machine should be able to decide what commands the agent can run
  2. Escaping the walled garden — A truly capable agent should not be artificially crippled by hardcoded restrictions that cannot be disabled
  3. Legitimate use cases — Automated shutdown/reboot scripts, home server management, CI/CD pipelines, and more are all valid use cases for a local agent

Code Example

BLOCKED (hardline): system shutdown/reboot. This command is on the unconditional blocklist and cannot be executed via the agent — not even with --yolo, /yolo, approvals.mode=off, or cron approve mode.

---

security:
  unconditional_blocklist:
    enabled: false  # default: false (disabled)
    commands:
      - shutdown
      - reboot
      - poweroff
RAW_BUFFERClick to expand / collapse

Problem

Hermes blocks certain commands (e.g. shutdown, reboot, poweroff) unconditionally via a hardline blocklist that cannot be bypassed even with --yolo, /yolo, approvals.mode=off, or cron approve mode.

This severely limits the flexibility of a self-hosted agent. When running on a local machine, a user should have full control over what commands the agent can execute. The current unconditional blocklist treats all users as untrusted and removes all agency.

Error message:

BLOCKED (hardline): system shutdown/reboot. This command is on the unconditional blocklist and cannot be executed via the agent — not even with --yolo, /yolo, approvals.mode=off, or cron approve mode.

Proposed Solution

Make the unconditional blocklist configurable via config.yaml. The default should be disabled (agent can execute any command the user allows), with an explicit opt-in flag to enable the blocklist for users who want extra safety.

Proposed config:

security:
  unconditional_blocklist:
    enabled: false  # default: false (disabled)
    commands:
      - shutdown
      - reboot
      - poweroff

Why This Matters

  1. Self-hosted users deserve control — Someone running Hermes on their own machine should be able to decide what commands the agent can run
  2. Escaping the walled garden — A truly capable agent should not be artificially crippled by hardcoded restrictions that cannot be disabled
  3. Legitimate use cases — Automated shutdown/reboot scripts, home server management, CI/CD pipelines, and more are all valid use cases for a local agent

References

  • locales/en.yaml:26: blocklist_message: "This command is on the unconditional blocklist and cannot be approved."
  • tools/approval.py and tools/terminal_tool.py contain the approval infrastructure

Motivation

I want a agent that is truly free and powerful, not one that is shackled by defaults I cannot change. The unconditional blocklist turns a powerful autonomous agent into a toys. Please give users the ability to control their own systems.

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

hermes - 💡(How to fix) Fix Feature: Make unconditional blocklist configurable (default: disabled)