{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "Copy the pane (Hermes 0.21 installer may skip it):\n\n```powershell\nNew-Item -ItemType Directory -Force -Path \"$env:LOCALAPPDATA\\hermes\\desktop-plugins\\done-bell\" | Out-Null\nCopy-Item \"$env:LOCALAPPDATA\\hermes\\plugins\\done-bell\\desktop\\plugin.js\" \"$env:LOCALAPPDATA\\hermes\\desktop-plugins\\done-bell\\plugin.js\" -Force\n```\n\nRestart"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/README.md",
      "quote": "1. **Gateway platform `homeassistant`**: subscribes to Home Assistant's WebSocket event bus and\n   forwards `state_changed` events to the agent, with domain/entity filters and per-entity cooldowns."
    },
    {
      "url": "https://raw.githubusercontent.com/SaM-0777/hermes-workflows/42f6651f3465f52e7fc4877fca58b4de9aae610c/tools.py",
      "quote": "execution = _validate_node_config_data(params.get(\"execution\"))\n\n        workflow = _read_workflow(workflow_id)\n        node_id = str(uuid.uuid4())\n\n        existing_positions = [\n            node.get(\"position\", {})\n            for node in workflow[\"nodes\"]\n            if isinstance(node, dict) and isinstance(node.get(\"position\"), dict)"
    },
    {
      "url": "https://raw.githubusercontent.com/SaM-0777/hermes-workflows/42f6651f3465f52e7fc4877fca58b4de9aae610c/dashboard/plugin_api.py",
      "quote": "async def _execute_node(\n    code: str,\n    inputs: dict[str, Any],\n    parameters: dict[str, Any],\n    context: dict[str, Any],\n) -> dict[str, Any]:\n    execution = await asyncio.to_thread(_prepare_execution, code)\n    build_output"
    },
    {
      "url": "https://raw.githubusercontent.com/Fuma2514/hermes-mint-guard/31f0ab7a9f522235e7daa4cdb6f96f919fb1ed5e/tools.py",
      "quote": "already = False\n        if balance is not None and balance > 0:\n            already = True\n        if minted_count is not None and minted_count > 0:"
    },
    {
      "url": "https://raw.githubusercontent.com/edkdev/linkzoid-skills/8efc12ee6bc10ad7bdf09bb30bca045e232e2f5c/README.md",
      "quote": "Hosted-only connector: this folder is the whole plugin. It has no Python code, hooks or environment variables, and it does not update itself. Every"
    },
    {
      "url": "https://raw.githubusercontent.com/ponzgpt/psychopomp/fa86a14ee3f0924c6071b8c4887f6116963f649e/README.md",
      "quote": "**Stores your Book and letters in plain text** in `$HERMES_HOME/plugin-data/psychopomp/` on the machine running Hermes.\n- **Runs `hermes send`** (Hermes's own CLI, with the"
    },
    {
      "url": "https://raw.githubusercontent.com/ponzgpt/psychopomp/fa86a14ee3f0924c6071b8c4887f6116963f649e/psychopomp_store.py",
      "quote": "elif a[\"type\"] == \"book\":\n                send_book(a[\"targets\"], a[\"intro\"], read_state())\n        except Exception as exc:  # noqa: BLE001 - a dead channel must not stop the others\n            where"
    },
    {
      "url": "https://raw.githubusercontent.com/skeptical-agency/tightbeam/78bc8462749e6dd5e4594cec3a9cdc5f247c30c5/opusclip.py",
      "quote": "except OpusError:\n        existing = []\n    shifts = [0, 30, -30, 60, -60, 90, -90, 120, -120, 150, -150, 180, -180]\n    chosen = None\n    for"
    },
    {
      "url": "https://raw.githubusercontent.com/brefledev/adeptory/dacb27ec6a800d2e7215dff7645685a7515adb13/adapter_hermes/runtime.py",
      "quote": "if not status['ready_for_bundle']:\n            return {'status': 'building', 'complete': False, 'gaps': status['gaps'],\n                    'next_task': status.get('next_executable_task'),\n                    'action': 'Complete the remaining independent work in this turn.'}\n        delivery = None"
    },
    {
      "url": "https://raw.githubusercontent.com/brefledev/adeptory/dacb27ec6a800d2e7215dff7645685a7515adb13/core/provenance.py",
      "quote": "Metadata and passage checks establish captured attribution. Host retrieval authenticity and semantic support require separate review.\"}\n\n\ndef review_errors(claim: Claim, sources: dict[str, SourceRecord]) -> list[str]:"
    },
    {
      "url": "https://raw.githubusercontent.com/Johnlocke0347/a11y-lens/9cf8cf3a7677661a938a0ee114b734e803fc33a7/README.md",
      "quote": "Single page per scan (no crawling), no login flows by design. Chromium's DNS pinning covers the page's own host; the plugin deliberately allows *only*"
    },
    {
      "url": "https://raw.githubusercontent.com/Johnlocke0347/a11y-lens/9cf8cf3a7677661a938a0ee114b734e803fc33a7/runner.py",
      "quote": "Environment variables the browser worker may inherit.  API keys and tokens are NOT among them.\n_ENV_ALLOW = (\n    \"PATH\", \"HOME\", \"USERPROFILE\", \"LOCALAPPDATA\", \"APPDATA\", \"SYSTEMROOT\","
    },
    {
      "url": "https://raw.githubusercontent.com/zblauser/numogram-hermes-plugin/025547ff83c073200ddf94fd2def3c8ca57e7b9e/README.md",
      "quote": "One board at a time. Building and flashing work with ESP-IDF projects. Crash decoding\nneeds only the ELF file.\n\n## What it does on"
    },
    {
      "url": "https://raw.githubusercontent.com/zblauser/numogram-hermes-plugin/025547ff83c073200ddf94fd2def3c8ca57e7b9e/__init__.py",
      "quote": "def _approve(tool_name=None, args=None, **_):\n    \"\"\"Flashing and building go through Hermes's own approval prompt. With no human to answer,\n    Hermes blocks them. A build runs"
    },
    {
      "url": "https://raw.githubusercontent.com/amitamit10/hermes-whatsapp-plus/78f3f84ca3ab3eb93b48e747945e4d96095b18e9/whatsapp-plus/tools.py",
      "quote": "for line in open(os.path.join(os.environ.get(\"HERMES_HOME\", \"/opt/data\"), \".env\"), errors=\"replace\"):\n                if line.startswith(name + \"=\"):\n                    v = line.split(\"=\", 1)[1].strip().strip(\"\\\"'\")\n                    break\n        except OSError:\n            pass\n    return v\n\n\ndef _call_targets():\n    \"\"\"Numbers"
    },
    {
      "url": "https://raw.githubusercontent.com/amitamit10/hermes-whatsapp-plus/78f3f84ca3ab3eb93b48e747945e4d96095b18e9/whatsapp-plus/platform_plus.py",
      "quote": "ctx.register_platform(adapter_factory=factory, **kw)\n    try:  # the paired session holds full account access: owner-only (#80137)\n        home = Path(os.environ.get(\"HERMES_HOME\", \"/opt/data\"))\n        for target, mode in ((home / \"whatsapp\""
    },
    {
      "url": "https://api.github.com/repos/NousResearch/hermes-agent/issues/152203/comments?per_page=100",
      "quote": "the catalog doesn't accept plugins that re-register a bundled Hermes platform (rule 15)"
    },
    {
      "url": "https://raw.githubusercontent.com/pCwOrM/hermes-werracle-guard/572b58e9619f16d62a78ebc1c5835f232ca9ac84/hooks.py",
      "quote": "chain=\"base\",\n            function_sig=parsed.get(\"sig\"),\n            function_args=parsed.get(\"args\"),\n        )\n\n        if sim.get(\"verdict\") == \"BLOCK\":\n            reasons_str = \" | \".join(sim.get(\"reasons\", []))\n            block_msg = (\n                f\"🛡️ [WERRACLE EVM CIRCUIT-BREAKER TRIGGERED] \"\n                f\"Blocked"
    },
    {
      "url": "https://raw.githubusercontent.com/pCwOrM/hermes-werracle-guard/572b58e9619f16d62a78ebc1c5835f232ca9ac84/radar_client.py",
      "quote": "TRUSTED_PROTOCOLS: Dict[str, str] = {\n    \"0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb\": \"Morpho Blue Singleton (Base/Mainnet)\",\n    \"0xa238dd80c259a72e81d7e4664a9801593f98d1c5\": \"Aave V3 Pool (Base)\",\n    \"0x87870bca3f3fd6335c3f4ce8392d69350b4fa4e2\": \"Aave V3 Pool (Ethereum)\",\n    \"0x2626664c2603336e57b271c5c0b26f421741e481\": \"Uniswap V3 SwapRouter"
    }
  ]
}