hermes - 💡(How to fix) Fix tirith: repeated WARNING spam on every terminal command when binary is not installed (Windows)

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…

On Windows, the tirith security binary is not installed by default. However, security.tirith_enabled defaults to true, so every terminal command triggers a spawn attempt → OSError → WARNING log. With tirith_fail_open: true (the default), commands are still allowed, but the log is flooded:

WARNING tools.tirith_security: tirith spawn failed: [WinError 2] The system cannot find the file specified.

This repeats for every single terminal command, making it difficult to spot real warnings/errors in the log.

Root Cause

In tools/tirith_security.py:648-653:

except OSError as exc:
    logger.warning("tirith spawn failed: %s", exc)
    if fail_open:
        return {"action": "allow", ...}
    return {"action": "block", ...}

The spawn attempt happens unconditionally regardless of platform. Once the binary is found to be missing, the result should be cached so subsequent calls don't retry and re-log.

Fix Action

Workaround

Set tirith_enabled: false in config.yaml to disable tirith entirely on Windows.

Code Example

WARNING tools.tirith_security: tirith spawn failed: [WinError 2] The system cannot find the file specified.

---

except OSError as exc:
    logger.warning("tirith spawn failed: %s", exc)
    if fail_open:
        return {"action": "allow", ...}
    return {"action": "block", ...}
RAW_BUFFERClick to expand / collapse

Description

On Windows, the tirith security binary is not installed by default. However, security.tirith_enabled defaults to true, so every terminal command triggers a spawn attempt → OSError → WARNING log. With tirith_fail_open: true (the default), commands are still allowed, but the log is flooded:

WARNING tools.tirith_security: tirith spawn failed: [WinError 2] The system cannot find the file specified.

This repeats for every single terminal command, making it difficult to spot real warnings/errors in the log.

Environment

  • Windows 11
  • Hermes via pip install (no Rust toolchain for tirith)
  • No tirith binary in PATH or installed separately

Expected Behavior

Either:

  1. Auto-detect the absence of tirith on startup and set tirith_enabled = false (or log once, not per-command), OR
  2. Suppress the per-command warning when tirith is persistently unavailable (cache the failure result), OR
  3. Default tirith_enabled to false on Windows (or add Windows-specific skip logic in _initialize_dev)

Actual Behavior

Every terminal command logs a WARNING. On a session with 20+ terminal calls, the log has 20+ identical tirith warnings.

Root Cause

In tools/tirith_security.py:648-653:

except OSError as exc:
    logger.warning("tirith spawn failed: %s", exc)
    if fail_open:
        return {"action": "allow", ...}
    return {"action": "block", ...}

The spawn attempt happens unconditionally regardless of platform. Once the binary is found to be missing, the result should be cached so subsequent calls don't retry and re-log.

Workaround

Set tirith_enabled: false in config.yaml to disable tirith entirely on Windows.

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