{
  "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/tools.py",
      "quote": "    allow, deny = _get_entity_filter_config()\n    if not allow and not deny:\n        return None"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/adapter.py",
      "quote": "class HomeAssistantAdapter(BasePlatformAdapter):\n    \"\"\"``state_changed`` -> MessageEvents with domain/entity filtering and per-entity cooldowns.\"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/themahis/hermes-backstop/99fd96995d363de92050fdf61a902979b5926f1e/backstop_core.py",
      "quote": "    target = os.path.realpath(os.path.join(root, rel or \".\"))\n    if not _inside(target, root):\n        raise ValueError(\"path is outside the project directory\")\n    return target"
    },
    {
      "url": "https://raw.githubusercontent.com/themahis/hermes-backstop/99fd96995d363de92050fdf61a902979b5926f1e/desktop/plugin.js",
      "quote": "// \"Fix it\": a NORMAL chat in the project (your usual tools and approvals), with the fix drafted\n// in its composer. Nothing is sent until you press Enter."
    },
    {
      "url": "https://raw.githubusercontent.com/donlucasx/hermes-xscapes/3a12d11bdc4e7fd917b256014e7efcf4e79c9e3d/__init__.py",
      "quote": "            proc.stdin.write(data)\n            proc.stdin.close()\n        except (BrokenPipeError, OSError):\n            pass\n        threading.Thread(target=_reap, args=(proc,), daemon=True).start()"
    },
    {
      "url": "https://raw.githubusercontent.com/Nj07r/hermes-reading/c739110797b0bcd0bad53d8f2a83b8ce1854430d/reading_core.py",
      "quote": "            st.update(filters=new, digest=digest)\n            _save_state(st)\n            report[\"filters_created\"] = len(new)"
    },
    {
      "url": "https://raw.githubusercontent.com/Nj07r/hermes-reading/c739110797b0bcd0bad53d8f2a83b8ce1854430d/desktop/plugin.js",
      "quote": "  // SandboxedFrame's default posture (allow-scripts, opaque origin). Every link goes through bridge.open.\n  return jsx(SandboxedFrame, {"
    },
    {
      "url": "https://raw.githubusercontent.com/krantikaridev/hermes-issue-orchestrator/9996a56a4dbdcf2bcd56f31f6940425b205af8da/service.py",
      "quote": "    params = [(\"state\", \"open\"), (\"sort\", \"created\"), (\"direction\", \"asc\"), (\"per_page\", \"30\")]"
    },
    {
      "url": "https://raw.githubusercontent.com/sopskistar/blindcouncil/2a7ceb4b75bfc24d9fa45349b08764eaeb082e48/blindcouncil/policy.py",
      "quote": "        if delivery != (str(chat), int(message)) or str(chat) != user or choice not in {\"yes\", \"no\"}:\n            return lifecycle.attempt(conn, round_id, \"denied\", reason=\"message_binding_or_choice\", **audit)"
    },
    {
      "url": "https://raw.githubusercontent.com/sopskistar/blindcouncil/2a7ceb4b75bfc24d9fa45349b08764eaeb082e48/README.md",
      "quote": "The current build implements authenticated decision coordination and deterministic outcomes; it has **no agent-facing tools or protected action executor yet**."
    },
    {
      "url": "https://raw.githubusercontent.com/asyntai/mcp-bridge/75680ed683534aea4e158b49a7ad629c656e10a5/src/oauth.js",
      "quote": "const STORE_FILE = join(STORE_DIR, 'mcp-credentials.json');"
    },
    {
      "url": "https://raw.githubusercontent.com/helenn-szn/hermes-tv/0423785699fb856bceb2beed1b49e451f3cc97a9/hermes_tv/state.py",
      "quote": "    \"\"\"{host, key, name} in plugin-data/hermes-tv/tv.json.\"\"\""
    },
    {
      "url": "https://raw.githubusercontent.com/helenn-szn/hermes-tv/0423785699fb856bceb2beed1b49e451f3cc97a9/hermes_tv/core.py",
      "quote": "            if ext in TEXT_EXT or kind == \"text\":\n                with open(f, \"r\", encoding=\"utf-8\", errors=\"replace\") as fh:\n                    body = fh.read(40000)"
    },
    {
      "url": "https://raw.githubusercontent.com/Pavilion-devs/nightshift/8bbbd6e4163db347af5d4795134bfae22d036d4c/nightshift/core/process.py",
      "quote": "        env = {**os.environ, **(env_extra or {}), \"PYTHONUNBUFFERED\": \"1\"}"
    },
    {
      "url": "https://raw.githubusercontent.com/every-app/open-seo/7d89cfb3ca30b2819356c57c5b746a1048b9743f/plugins/openseo/README.md",
      "quote": "Hermes connects through [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) 0.1.49, which `npx` downloads from npm, so Node.js and npm must be installed. The first OpenSEO tool call opens your browser to sign in, and `mcp-remote` keeps the sign-in in `~/.mcp-auth`."
    },
    {
      "url": "https://raw.githubusercontent.com/perfect7613/hermes-onair/2245b9158300f2a60a5dda859f037b3cc3244b03/core/studio.py",
      "quote": "    if kind == \"browser\":\n        if file:\n            return {\"is_local_file\": True, \"local_file\": file, \"width\": w, \"height\": h}\n        if url:\n            return {\"is_local_file\": False, \"url\": url, \"width\": w, \"height\": h}"
    },
    {
      "url": "https://raw.githubusercontent.com/perfect7613/hermes-onair/2245b9158300f2a60a5dda859f037b3cc3244b03/core/guard.py",
      "quote": "    if tool == \"live_design_scene\" and is_streaming():\n        return f\"You are live. Create or restyle scene '{args.get('name', '')}'? This can change a scene already on air.\""
    },
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "\"refs\":[{\"name\":\"done-bell\",\"repo\":\"https://github.com/aydnOktay/hermes-done-bell-\",\"sha\":\"3fa519a291d91b0e6c44bd42762190363ce80c39\",\"subdir\":\"\"},{\"name\":\"homeassistant\",\"repo\":\"https://github.com/NousResearch/hermes-official-plugins\",\"sha\":\"e7a218f26db88426ab3e7376f0e000b6e356f5e7\",\"subdir\":\"homeassistant\"}]"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/plugin-catalog/README.md",
      "quote": "11. **Credentials come through Hermes, never from files.** A plugin gets\n   secrets only through Hermes's routes. Its declared `requires_env` and\n   `config_schema` secrets are read with `agent.secret_scope.get_secret(NAME)`,"
    }
  ]
}
