{
  "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/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/itsflownium/hermes-lethe/8b93e2dce9402648c7e238c1d8c83dc649f2f204/README.md",
      "quote": "Lethe does not cover external memory providers. Hermes's `MemoryManager` syncs each turn to the\nconfigured provider (`memory.provider`) and runs its own session-end extraction outside any tool\ncall, so `pre_tool_call` never sees it."
    },
    {
      "url": "https://raw.githubusercontent.com/rtmandreyev/construct/24a1bc838076c94728376850d461b383d003caa9/hermes/construct/README.md",
      "quote": "Settings (**Settings → Plugins → Construct**): the projects folder (default: the plugin's data folder), *Ask\nbefore running programs*, which puts each call that runs a browser, ffmpeg, FreeCAD, Blender or NetLogo behind\nHermes's approval prompt (scheduled runs are then refused rather than left waiting), and the NetLogo folder (blank:\n`CONSTRUCT_NETLOGO` and the usual install places)."
    },
    {
      "url": "https://raw.githubusercontent.com/EconLearn/hermes-heats/2bcee10e9ca6489b7fd23bb0362a36eacdae269f/README.md",
      "quote": "- Isolation covers Hermes's file and terminal tools. A command that computes a path into your checkout at run\n  time is not rewritten; the before/after fingerprint reports it if it happens.\n- Dependency folders (`node_modules`, `.venv`, ...) are linked into each worktree, not copied. An attempt that\n  runs `npm install` or `pip install` changes your real ones."
    },
    {
      "url": "https://raw.githubusercontent.com/pgreyy/attest/0de5e1e49da1bb9bcd54ef28d224c2cc095e7ad6/README.md",
      "quote": "- **No order book depth.** Every order fills in full at the top of the book plus slippage. Exchange lot sizes and minimum order sizes are not enforced. A big order fills at a price a real market wouldn't give you."
    },
    {
      "url": "https://raw.githubusercontent.com/Intenzi/hermes-butler/a665eaed96adc6ceb54277616c1f7b9b5b817332/README.md",
      "quote": "- **Guide-only by design.** Butler never types, clicks, or edits your files; it\n  shows and verifies. A guide refuses to start under an unattended run, so a\n  cron session cannot become a background screenreader."
    },
    {
      "url": "https://raw.githubusercontent.com/Web3B-eth/whos-listening/a498dd769c4196d0e911b713d4ad7363c8154ba1/README.md",
      "quote": "- **Some Hermes calls skip the guard.** Hermes runs plugin middleware only on the main chat request. These calls bypass it, and any of them can carry Private memories that were added on a Private route:"
    },
    {
      "url": "https://raw.githubusercontent.com/emiwltz/hermes-habits/c2e32395e0e3461fe56c7d68b7bc993ee0954277/README.md",
      "quote": "**More than a skill or a script.** A skill, even one that ships a script, waits for the model to choose it and to read its output. A reflex can start on a message you said yes to, before Hermes's model is called; it branches on rules and closed questions; and when it cannot finish, it hands the rest back."
    },
    {
      "url": "https://raw.githubusercontent.com/sammy-XXIV/hermes-crash-recovery/2d00ff5832a6a6d7aca0c09ef500a64a890efa14/README.md",
      "quote": "V1 admits **one protected call at a time per profile**. Additional concurrent calls are refused while the first is pending; they are not queued. Nested protected calls can also be refused. A pending record may represent a currently running action, not necessarily a crashed process. The plugin does not infer safe retry from elapsed time, process age, or a timeout."
    },
    {
      "url": "https://raw.githubusercontent.com/MadeByBrain/hermes-extensions/aa2bf92140016d7cf2ce855d0fff98f46badbc94/plugins/privacy-xray/README.md",
      "quote": "- **Side requests are visible, not blockable.** `pre_auxiliary_call` is an observer hook in Hermes; no plugin can change or stop a side request. The guard only masks main requests (through the `llm_request` middleware). The test run shows it: with the guard on, the main request carried no canary, while the title request still did. To keep data away from a side vendor, route the task to your main model (the fix) or turn it off."
    },
    {
      "url": "https://raw.githubusercontent.com/cineglobe/hermes-gemini-live/b6c2f24354aeed1a8b5651b62944d14ed96a472d/README.md",
      "quote": "`GEMINI_API_KEY` / `GOOGLE_API_KEY` are used if `GEMINI_LIVE_API_KEY` is not set. The key stays on\nthe Hermes backend: the browser only ever gets a single-use, 30-minute ephemeral token whose model,\nvoice, instructions and tools are locked server-side."
    },
    {
      "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/itsflownium/hermes-lethe/8b93e2dce9402648c7e238c1d8c83dc649f2f204/guard.py",
      "quote": "            # Fail closed for the tools we know write memory; open for everything else.\n            logger.warning(\"lethe: guard error\", exc_info=True)\n            if on and tool_name in {\"memory\", \"skill_manage\"}:\n                return {\"action\": \"block\", \"message\": BLOCK_MESSAGE}\n            return None"
    },
    {
      "url": "https://raw.githubusercontent.com/rtmandreyev/construct/24a1bc838076c94728376850d461b383d003caa9/hermes/construct/tools.py",
      "quote": "    if sub in NETWORK:\n        raise ConstructError(\"%s is not run by the plugin: %s. Do that step yourself (a delegated subagent for a critic).\" %\n                             (sub, NETWORK[sub]))"
    },
    {
      "url": "https://raw.githubusercontent.com/EconLearn/hermes-heats/2bcee10e9ca6489b7fd23bb0362a36eacdae269f/__init__.py",
      "quote": "    ctx.register_middleware(\"tool_request\", _mw_tool_request)\n    ctx.register_hook(\"pre_tool_call\", _on_pre_tool_call)\n    ctx.register_hook(\"post_tool_call\", _on_post_tool_call)\n    ctx.register_hook(\"pre_verify\", _on_pre_verify)"
    },
    {
      "url": "https://raw.githubusercontent.com/pgreyy/attest/0de5e1e49da1bb9bcd54ef28d224c2cc095e7ad6/intercept.py",
      "quote": "        try:\n            target = self.settings().get(\"intercept_tool\") or \"\"\n        except Exception:\n            return None  # can't tell which tool is guarded: leave every call alone"
    },
    {
      "url": "https://raw.githubusercontent.com/Intenzi/hermes-butler/a665eaed96adc6ceb54277616c1f7b9b5b817332/desktop/plugin.js",
      "quote": "const PET_CANVAS_SELECTORS = ['canvas[aria-label$=\" pet\"]', 'canvas[aria-label=\"pet\"]']"
    },
    {
      "url": "https://raw.githubusercontent.com/sammy-XXIV/hermes-crash-recovery/2d00ff5832a6a6d7aca0c09ef500a64a890efa14/recovery.py",
      "quote": "        # Do not raise on pre-execution plugin failures: Hermes middleware fails open.\n        try:\n            if self.poisoned:\n                raise RecoveryError('Journal failed after an action. Restore and inspect it before restarting Hermes.')\n            journal = self.journal_factory()\n            operation_id = journal.begin(tool_name, args, session_id, tool_call_id)\n        except Exception as exc:\n            return json.dumps(self.blocked(exc))"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/plugin-catalog/README.md",
      "quote": "8. **Desktop plugins stay inside the SDK surface.** A `desktop/plugin.js` runs\n   in the Desktop renderer with the app's full authority (the loader isolates\n   errors, not capabilities), so a listed one may only use the plugin SDK:"
    }
  ]
}
