You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(security): make secret redaction off by default (#16794)
Flips security.redact_secrets from true to false in DEFAULT_CONFIG, and
the HERMES_REDACT_SECRETS env-var fallback in agent/redact.py now
requires explicit opt-in ("1"/"true"/"yes"/"on") to enable.
New installs and users without a security.redact_secrets key get pass-
through tool output. Existing users whose config.yaml explicitly sets
redact_secrets: true keep redaction on — the config-yaml -> env-var
bridges in hermes_cli/main.py and gateway/run.py still honor their
setting.
Also updates the inline config comments, website docs, and the
hermes-agent skill so /hermes config set security.redact_secrets true
is now the documented way to turn it on.
Copy file name to clipboardExpand all lines: skills/autonomous-ai-agents/hermes-agent/SKILL.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -408,17 +408,17 @@ Common "why is Hermes doing X to my output / tool calls / commands?" toggles —
408
408
409
409
### Secret redaction in tool output
410
410
411
-
Hermes auto-redacts strings that look like API keys, tokens, and secrets in all tool output (terminal stdout, `read_file`, web content, subagent summaries, etc.) so the model never sees raw credentials. If the user is intentionally working with mock tokens, share-management tokens, or their own secrets and the redaction is getting in the way:
411
+
Secret redaction is **off by default** — tool output (terminal stdout, `read_file`, web content, subagent summaries, etc.) passes through unmodified. If the user wants Hermes to auto-mask strings that look like API keys, tokens, and secrets before they enter the conversation context and logs:
412
412
413
413
```bash
414
-
hermes config set security.redact_secrets false# disable globally
414
+
hermes config set security.redact_secrets true# enable globally
415
415
```
416
416
417
-
**Restart required.**`security.redact_secrets` is snapshotted at import time — setting it mid-session (e.g. via `export HERMES_REDACT_SECRETS=false` from a tool call) will NOT take effect for the running process. Tell the user to run `hermes config set security.redact_secrets false` in a terminal, then start a new session. This is deliberate — it prevents an LLM from turning off redaction on itself mid-task.
417
+
**Restart required.**`security.redact_secrets` is snapshotted at import time — toggling it mid-session (e.g. via `export HERMES_REDACT_SECRETS=true` from a tool call) will NOT take effect for the running process. Tell the user to run `hermes config set security.redact_secrets true` in a terminal, then start a new session. This is deliberate — it prevents an LLM from flipping the toggle on itself mid-task.
Copy file name to clipboardExpand all lines: website/docs/user-guide/configuration.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1302,7 +1302,7 @@ Pre-execution security scanning and secret redaction:
1302
1302
1303
1303
```yaml
1304
1304
security:
1305
-
redact_secrets: true# Redact API key patterns in tool output and logs
1305
+
redact_secrets: false # Redact API key patterns in tool output and logs (off by default)
1306
1306
tirith_enabled: true # Enable Tirith security scanning for terminal commands
1307
1307
tirith_path: "tirith" # Path to tirith binary (default: "tirith" in $PATH)
1308
1308
tirith_timeout: 5 # Seconds to wait for tirith scan before timing out
@@ -1313,7 +1313,7 @@ security:
1313
1313
shared_files: []
1314
1314
```
1315
1315
1316
-
- `redact_secrets`— automatically detects and redacts patterns that look like API keys, tokens, and passwords in tool output before it enters the conversation context and logs.
1316
+
- `redact_secrets`— when `true`, automatically detects and redacts patterns that look like API keys, tokens, and passwords in tool output before it enters the conversation context and logs. **Off by default** — enable if you commonly work with real credentials in tool output and want a safety net. Set to `true` explicitly to turn on.
1317
1317
- `tirith_enabled`— when `true`, terminal commands are scanned by [Tirith](https://github.com/StackGuardian/tirith) before execution to detect potentially dangerous operations.
1318
1318
- `tirith_path`— path to the tirith binary. Set this if tirith is installed in a non-standard location.
1319
1319
- `tirith_timeout`— maximum seconds to wait for a tirith scan. Commands proceed if the scan times out.
0 commit comments