{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "Copy the pane (Hermes 0.21 installer may skip it):"
    },
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/__init__.py",
      "quote": "    ctx.register_hook(\"on_session_end\", bell_hooks.on_session_end)\n    ctx.register_hook(\"pre_approval_request\", bell_hooks.on_pre_approval_request)\n    ctx.register_hook(\"post_approval_response\", bell_hooks.on_post_approval_response)\n    ctx.register_hook(\"agent_loop_stopped\", bell_hooks.on_agent_loop_stopped)"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/tools.py",
      "quote": "from agent.secret_scope import get_secret"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/README.md",
      "quote": "By default, **no events are forwarded**. Configure at least one of `watch_domains`, `watch_entities`\nor `watch_all`, otherwise a warning is logged at startup and every state change is dropped."
    },
    {
      "url": "https://raw.githubusercontent.com/1momoh/ballast/c35e298eed1e39fbbc8a660514e418b6a9a245c5/plugin/ballast/core.py",
      "quote": "        if approval is None or approval(token) is not True:\n            raise Refused('A fresh human approval through Hermes is required; unattended cleanup is refused.')"
    },
    {
      "url": "https://raw.githubusercontent.com/1momoh/ballast/c35e298eed1e39fbbc8a660514e418b6a9a245c5/plugin/ballast/README.md",
      "quote": "This is not a filesystem transaction: if a cache changes during cleanup or a command fails, an already completed action cannot be rolled back. Execution stops on the first failure and records partial results."
    },
    {
      "url": "https://raw.githubusercontent.com/flabanabba8/skill-workshop/aeeffff2058ef4daa92b90d1b05e005519468c7a/shield/core.py",
      "quote": "        if tool_name not in SENSITIVE_TOOLS and not MESSAGE_TOOLS.search(tool_name): return None"
    },
    {
      "url": "https://raw.githubusercontent.com/flabanabba8/skill-workshop/aeeffff2058ef4daa92b90d1b05e005519468c7a/README.md",
      "quote": "Limits: this is heuristic provenance, not proof. It matches literal values, so an injection that makes the model rephrase or encode a destination can slip past; commands you also wrote are trusted; it only watches tools it recognises by name."
    },
    {
      "url": "https://raw.githubusercontent.com/akinfold/hermes-yandex-mail/f44cf3aff9393d4dc3d420879469d1ebe4735c66/hermes_yandex_mail/tool.py",
      "quote": "        with build_smtp_client() as smtp:\n            result = smtp.send(sender, recipients, raw)"
    },
    {
      "url": "https://raw.githubusercontent.com/akinfold/hermes-yandex-mail/f44cf3aff9393d4dc3d420879469d1ebe4735c66/README.md",
      "quote": "Moves preserve a copy before removing the original"
    },
    {
      "url": "https://raw.githubusercontent.com/Akanimoh12/shorguard/ad949b682249e5c9401eaf3b5c0ffe244d668b33/shorguard/engine.py",
      "quote": "    if ALLOW_FILE.search(text):\n        return []"
    },
    {
      "url": "https://raw.githubusercontent.com/Akanimoh12/shorguard/ad949b682249e5c9401eaf3b5c0ffe244d668b33/shorguard/README.md",
      "quote": "`shorguard: allow-file <reason>` exempts a whole file (e.g. interop test fixtures)."
    },
    {
      "url": "https://raw.githubusercontent.com/nizini-london/hermes-backup/d9310525ab9d2fd0cd33e766f456941d069418a1/engine.py",
      "quote": "            pw_file = os.environ.get(\"RESTIC_PASSWORD_FILE\") or \"\"\n            if pw_file:\n                try:\n                    data[\"restic_password\"] = Path(pw_file).read_text().strip()"
    },
    {
      "url": "https://raw.githubusercontent.com/nizini-london/hermes-backup/d9310525ab9d2fd0cd33e766f456941d069418a1/README.md",
      "quote": "by\ndefault **no human prompt fires** before a restore commit"
    },
    {
      "url": "https://raw.githubusercontent.com/Yicheng-Mark/hermes-windows-plugins/0a95cc83402a3bbe5548a88dda88fde690946bc1/windows-disks/hermes_windows_disks/diskquery.py",
      "quote": "    completed = subprocess.run(\n        command,\n        capture_output=True,\n        timeout=TIMEOUT,\n        creationflags=CREATE_NO_WINDOW,\n    )"
    },
    {
      "url": "https://raw.githubusercontent.com/Adolanium/hermes-voice-lab/80a40f41b559b0f9b6373f6502a88b5d13000e03/plugin/tts.py",
      "quote": "replies in the Voice Lab character voice. Synthesis is the same local\narticulatory engine; English only, and less natural than neural TTS."
    },
    {
      "url": "https://raw.githubusercontent.com/Adolanium/hermes-voice-lab/80a40f41b559b0f9b6373f6502a88b5d13000e03/plugin/README.md",
      "quote": "The agent can play her too. It speaks lines, writes songs and beats, changes her voice, and **jams with you**: press **Jam with Hermes**, play a phrase and pause, and the agent sings an answer."
    },
    {
      "url": "https://raw.githubusercontent.com/gptnius/hermes-crm/da1d1412eaf10c3ea8ba0b4431cafdbc59c6bcae/README.md",
      "quote": "- Native Hermes: 83 tools across separate record, assigned-work, native-report, schema and separate Company/Event permission sets, active-profile storage, optimistic version checks and idempotent creates. Existing scheduled assignments do not gain Company/Event or schema-writing tools."
    },
    {
      "url": "https://raw.githubusercontent.com/aitrainingdatabroker/boardroomlist-mcp-server/da0e93fe394bf9efd82206a3fef32ab6c06613c5/hermes/README.md",
      "quote": "Nothing else is installed: configuration and a skill only. The tool list is served by the remote server at runtime and is not covered by the pinned commit."
    },
    {
      "url": "https://raw.githubusercontent.com/RahmelJackson/dive-in-hermes/d449239595f66b25974b4e8f4430781a4fd5cad5/README.md",
      "quote": "- Question and argument detection uses punctuation and keywords. Claim candidates\n  are attributed feed text. Shared URLs indicate overlap and do not establish\n  independent corroboration. The chat model can synthesize and compare views\n  using cited evidence, while the offline path runs without a model."
    }
  ]
}