{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "OS notification (when away), optional chime, status chip (`busy` / `done` /\n`needs you`). No API keys. Does not send chat, write code, or touch"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/tools.py",
      "quote": "def _service_call_violation(domain: str, service: str, payload: Any) -> Optional[str]:\n    \"\"\"Why the operator allow/deny lists refuse this service call, or ``None``.\n\n    With neither list set nothing"
    },
    {
      "url": "https://raw.githubusercontent.com/BitSempre/ConsequenceMap/2f6d681e7bcdb0c19c1a5632663b24b3dc4b8a04/ConsequenceMap/plugin/__init__.py",
      "quote": "def register(ctx: Any) -> None:\n    \"\"\"Register the five hooks and the command.\n\n    The host calls this once, with its plugin context. A failure here\n    must"
    },
    {
      "url": "https://github.com/NousResearch/hermes-agent/pull/153678",
      "quote": "A subdirectory install of this pin registers 0 hooks."
    },
    {
      "url": "https://raw.githubusercontent.com/hey-yx/hermes-make-plain/202bd0e91d4b2bc81dc8037e1dec5e4e82fdf9ca/desktop/plugin.js",
      "quote": "const INSTRUCTIONS = [\n  'Improve the wording of the text below so it is easier to read, and nothing else. Keep the original meaning exactly:"
    },
    {
      "url": "https://raw.githubusercontent.com/hey-yx/hermes-mark-words/477c8bcaf883d02d7ed83e9855db5ffb5fb9592a/desktop/plugin.js",
      "quote": "function assistantElements() {\n  return [...document.querySelectorAll('[data-role=\"assistant\"]')]\n}\n\nfunction markdownRoot(element) {\n  // 思考过程（thinking 折叠块）不标：推理正文虽然也走 .aui-md，\n  // 但包在 data-conversation-scaffold 脚手架里，正文不带这个标记。\n  // 思考块在前、正文在后是常态：跳过思考块继续找，而不是直接放弃。\n  if (typeof element.querySelectorAll !== 'function') return"
    },
    {
      "url": "https://raw.githubusercontent.com/labyrinth-analytics/loredocs/1f15568c6edf2a2b1dbf9f3872f1de239c0e0069/integrations/hermes/README.md",
      "quote": "By default Hermes reaches MCP tools through its tool-search bridge. With some\nmodels, a call carrying long multi-line text, such as a document body for"
    },
    {
      "url": "https://raw.githubusercontent.com/labyrinth-analytics/loredocs/1f15568c6edf2a2b1dbf9f3872f1de239c0e0069/loredocs/license_store.py",
      "quote": "    sibling = _SIBLING.get(product)\n    sd = sibling_dir or (_default_dir(sibling) if sibling else None)\n    if sd is not None:\n        sib_data = _read_json_safe(_primary_path(sd))\n        if sib_data and not sib_data.get(\"cleared\"):"
    },
    {
      "url": "https://raw.githubusercontent.com/ronigrv/hermes-opportunity-check/9e8f4cf6a372733eeab056e5366dc577095f5806/tools.py",
      "quote": "def _read(url):\n    req = Request(url, headers={'Accept': 'application/json', 'User-Agent': 'opportunity-check/0.1'})\n    with build_opener(NoRedirect).open(req, timeout=12) as response:\n        raw = response.read(2_000_001)\n        if len(raw) > 2_000_000:\n            raise ValueError('Response exceeds 2"
    },
    {
      "url": "https://raw.githubusercontent.com/rtmandreyev/construct/24a1bc838076c94728376850d461b383d003caa9/hermes/construct/README.md",
      "quote": "Twelve tools (toolset `construct`), a `/construct` command, and the `construct:construct` skill that teaches Hermes\nthe craft: the fast and masterpiece modes, research and provenance rules,"
    },
    {
      "url": "https://raw.githubusercontent.com/rtmandreyev/construct/24a1bc838076c94728376850d461b383d003caa9/hermes/construct/tools.py",
      "quote": "def export(args):\n    slug, folder, scene = runtime.resolve(args)\n    fmt = _choice(args, \"format\", list(EXT))\n    if fmt is None:\n        raise ConstructError(\"format is required: %s\" % \", \".join(EXT))\n    stem"
    },
    {
      "url": "https://raw.githubusercontent.com/0xbyt4/hermes-canvas/d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8/README.md",
      "quote": "| Veto a box mid-build | `pre_tool_call` returns `block` | A prompt cannot stop a running tool loop. |\n| Edits reach the agent mid-turn"
    },
    {
      "url": "https://raw.githubusercontent.com/0xbyt4/hermes-canvas/d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8/canvas/hooks.py",
      "quote": "    def pre_tool_call(\n        self, tool_name: str = \"\", args: Any = None, task_id: str = \"\", session_id: str = \"\", **_: Any\n    ) -> dict[str, str]"
    },
    {
      "url": "https://raw.githubusercontent.com/welliv/hermes-herd/7895e856ed7dc575c6e43adc8077eecb284d405d/README.md",
      "quote": "- **API keys are not synced.** Credential-named keys in `config.yaml` (`api_key`, `API_KEY`, `apiKey`, `x-api-key`, `token`, `secret`, `password`, `authorization`, and `*_api_key`, `*_token`, … at any depth,"
    },
    {
      "url": "https://raw.githubusercontent.com/welliv/hermes-herd/7895e856ed7dc575c6e43adc8077eecb284d405d/herd/engine.py",
      "quote": "def pull(ctx: Context, prefer: str = \"local\") -> dict:\n    with ctx.lock:\n        ctx.store.refresh()\n        base = _load_base(ctx)\n        merged = ctx.store.merged()\n        base_items = dict(base.get(\"items\") or {})\n        applied, skipped,"
    },
    {
      "url": "https://raw.githubusercontent.com/elianjuan-g/hermes-manas-aegis/ea1be1c103de0f5dedf6b6993855e17da49cca95/hermes_manas_aegis/core_engine.py",
      "quote": "            for _, _, _, _, sockaddr in socket.getaddrinfo(host, parsed.port or 80):\n                ip_obj = ipaddress.ip_address(sockaddr[0])\n                if ip_obj.is_private or ip_obj.is_loopback or ip_obj.is_link_local or ip_obj.is_reserved or ip_obj.is_multicast or"
    },
    {
      "url": "https://raw.githubusercontent.com/elianjuan-g/hermes-manas-aegis/ea1be1c103de0f5dedf6b6993855e17da49cca95/README.md",
      "quote": "All checks are done with **text pattern matching (regex)** — not with\na language parser, not with a sandbox, and not with a network\nfirewall."
    },
    {
      "url": "https://raw.githubusercontent.com/mr-pewpy/model-forge/c0bbe666f95966762025a0c00bea0e9a9d32e599/model-forge/model_forge/tools.py",
      "quote": "def model_forge_activate(args: dict | None = None, **kwargs) -> str:\n    \"\"\"Connect a running chat/vision model as THIS Hermes' default model.\n\n    Safe by default: pass apply=true"
    },
    {
      "url": "https://raw.githubusercontent.com/mr-pewpy/model-forge/c0bbe666f95966762025a0c00bea0e9a9d32e599/model-forge/model_forge/pull.py",
      "quote": "        headers = auth_headers(url)\n        if done:\n            headers[\"Range\"] = f\"bytes={done}-\"\n        req = urllib.request.Request(url, headers=headers)\n        with urllib.request.urlopen(req, timeout=_TIMEOUT_S) as resp:\n            if done and resp.status != 206:  # server"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/plugin-catalog/README.md",
      "quote": "A plugin never reads `.env` files, Hermes's `auth.json`, another tool's login (a\n   vendor CLI's token file, a browser profile, a keychain) or any other\n   credential"
    }
  ]
}