{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "Hermes plugin: **ring when a turn finishes** so you can leave the window.\n\nOS notification (when away), optional chime, status chip (`busy` / `done` /\n`needs you`). No API keys. Does not send chat, write code, or touch user files.\n\nLives under `plugins/done-bell/` so it stays separate from debug-desk.\n\nRepo: https://github.com/aydnOktay/hermes-done-bell-\n\n## Install (dev)\n\n```powershell\nhermes plugins install C:\\Users\\aydin\\Desktop\\nous-puling\\pl"
    },
    {
      "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.\n   The agent's replies show up as Home Assistant persistent notifications titled \"Hermes Agent\".\n   Cron jobs can deliver to `deliver=homeassistant[:target]` through the target's own notify service\n   (`notify.mobile_app_my_phone` for `target=mobile_ap"
    },
    {
      "url": "https://raw.githubusercontent.com/kaverimeshram/tablekeeper/a5cde35ec584c2b71b5b032a186478fdd4f291d0/tablekeeper/README.md",
      "quote": "Tablekeeper turns a Hermes chat into a tabletop campaign table. Python rolls every die and owns hit points, positions, initiative and turn order, so the model narrates results it cannot change. Each player controls only the character they claimed, and in combat only on that character's turn. Monsters play their own turns, from SRD 5.1 stat blocks, the moment a player ends theirs.\n\n![Tablekeeper Desktop page: battle grid, initiative and dice tray]"
    },
    {
      "url": "https://raw.githubusercontent.com/KeyArgo/hermes-game-center/9359ba470168b527337a0677c1f911cc8c161129/README.md",
      "quote": "## Champions and tournaments\n\nThe shelf ships the machinery for bot **champions** (a named playbook, Elo ratings and badges) and headless **tournaments** (`shelf/champions.py`, `shelf/tournament.py`). **In this version the Champions tab is a placeholder**: press it and it says the matches it needs do not run in this version, so a champion cannot be created and a tournament cannot be run from the page. Play and Experimental are unaffected.\n\n## Exp"
    },
    {
      "url": "https://raw.githubusercontent.com/okyssta/hermes-folio/b101110c32b47b7c427204dfce19710d7f400c75/README.md",
      "quote": "Folio is a local index of PDF, Word, PowerPoint, Excel, HTML, Markdown and source\nfiles. Seven tools let the agent search it, open a page, **prove a quotation**,\nsee **what changed** since a date, and format citations. A desktop page shows the\nactual page image with the matching sentence boxed.\n\nNo account, no API key, no embeddings, no network calls. One SQLite file, under the\nprofile's `plugin-data` folder.\n\n---\n\n## Why not just grep — or a vec"
    },
    {
      "url": "https://raw.githubusercontent.com/peterpeeterspeter/hermes-creative-review/3f09cdce305c9c9db19ce9d752134ca1a35344e0/README.md",
      "quote": "### Not yet verified\n\n- **The visual Desktop pane.** The Electron half loads only after the app\n  **Rescans** and the user switches the plugin on under **Capabilities →\n  Plugins**. The registration harness only checks declarations. Mounted tests exercise components/handlers but do not verify Electron layout, native SDK controls, real composer acceptance or an image-generation revision turn. Those still need a live app pass.\n- **Screenshots / dem"
    },
    {
      "url": "https://raw.githubusercontent.com/jrezmo/1guy-plugin/2bb6728048388a419829af5ab8228f3bb977f03f/README.md",
      "quote": "Running Hermes well means many sessions, scheduled jobs and helpers, and each one is a chat you\nhave to go back into. The work scatters: threads left half done, jobs that quietly fail, chats\nthat ended on a question for you. 1guy is one desk over your whole Hermes. Every session, job\nand to-do is a card, every card is its own thread, and one guy on top reads all of it and tells\nyou the few things that need you.\n\nChat apps put artifacts inside con"
    },
    {
      "url": "https://raw.githubusercontent.com/inhabitants/sapiens-mcp/03a000b2ca7f355d717204bf2f215250ce08054c/hermes/README.md",
      "quote": "- **Network:** this package has no code. Every tool call goes from Hermes to the hosted Sapiens MCP server at `https://www.sapiensinteticos.com/api/mcp/mcp` (Streamable HTTP, OAuth 2.1 with dynamic client registration), operated by Sapiens Sintéticos.\n- **Credentials:** the OAuth token is stored by Hermes. The package reads no files and stores no keys.\n- **Money:** generation tools debit Sinapses from your Sapiens account. Nothing is charged outs"
    },
    {
      "url": "https://raw.githubusercontent.com/iamlukethedev/hermes-procgen-studio/204b063ca5dcb81c050299b9fcaa47ea5a437553/README.md",
      "quote": "- **Running model-written code:** Python drawing programs run in a **separate Python process**\n  with an AST allowlist of imports (math, random, numpy, PIL and a few stdlib modules), no dunder\n  or frame access (classes may define only `__init__`/`__post_init__`, and `getattr`, from-imports\n  and star imports refuse the same names as dotted access), trimmed builtins, an audit hook that\n  refuses sockets, subprocesses, process control, native libr"
    },
    {
      "url": "https://raw.githubusercontent.com/studioluftbruecke/hermes-forgebruecke/f01d5dae2b643ef2a2efffbdccaea7d9417632cf/README.md",
      "quote": "- **Desk.** The pull requests that wait for you, each with its state in one sentence, in Desktop\n  or `hermes forgebruecke desk`.\n- **Parking.** Park a waiting pull request with a note only you see. It leaves the count and comes\n  back on someone's comment, new commits, or when marked ready.\n- **Chat and writes.** Ask about issues, pull requests, checks and repos. Writes follow Hermes'\n  approval setting.\n- **Receipts.** \"Pushed\", \"opened\" or \"me"
    },
    {
      "url": "https://raw.githubusercontent.com/shagghiesuperstar/agentpass-plugin/c091db23bf8fe5f8773dfd29d6bf5127a1de9ec4/README.md",
      "quote": "The plugin is a real MCP client, not a prompt wrapper: JSON-RPC 2.0 over\nStreamable HTTP, `initialize` handshake, session echo, server-sent events,\ntool discovery, retries with backoff, and an error taxonomy that never throws\ninto the agent loop.\n\n```\nyou:    how agent-ready is humanpeptides.fyi?\n\nhermes: ⚙ agent_readiness_scan  url=humanpeptides.fyi\n        https://humanpeptides.fyi/ — ARI-100 89/100, grade B (Agent-aware), level L2.\n        Cra"
    },
    {
      "url": "https://raw.githubusercontent.com/boxcompute/hermes-plugin/de27f5719372905686474f8a7650c591c63e899c/README.md",
      "quote": "The plugin is a thin package over BoxCompute's hosted MCP server at\n`https://mcp.boxcompute.ai/mcp`. It contains no code. One install ships\n`skills/sandboxes/`, which teaches Hermes when to use a VM instead of your\nown machine, how the tools fit together, and how to leave nothing running\nthat costs you money.\n\n## Install\n\n```bash\nhermes plugins install boxcompute\nhermes plugins enable boxcompute\n```\n\nUntil the plugin is listed in the Hermes catal"
    },
    {
      "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\n    hint = (\"Call ha_call_service with explicit entity_id values that the operator \"\n            \"allow/deny lists permit, or ask the operator to adjust the lists."
    },
    {
      "url": "https://raw.githubusercontent.com/kaverimeshram/tablekeeper/a5cde35ec584c2b71b5b032a186478fdd4f291d0/tablekeeper/__init__.py",
      "quote": "figures = {int(n) for m in pattern.finditer(flat) for n in m.groups() if n}\n        bad = sorted(figures - known)\n        if bad:\n            problems.append(f\"{label} {', '.join(map(str, bad))} was not returned by a tk_ tool this turn\")"
    },
    {
      "url": "https://raw.githubusercontent.com/okyssta/hermes-folio/b101110c32b47b7c427204dfce19710d7f400c75/indexer.py",
      "quote": "if known is not None and not force:\n            prior = known.get(str(path))\n            if prior and prior[3] == 0 and abs(prior[2] - stat.st_mtime) < 1e-6:\n                return {\"status\": \"unchanged\", \"path\": str(path)}"
    },
    {
      "url": "https://raw.githubusercontent.com/jrezmo/1guy-plugin/2bb6728048388a419829af5ab8228f3bb977f03f/og_core/board.py",
      "quote": "if VENDOR_APP not in sys.path:\n        sys.path.insert(0, VENDOR_APP)               # they import each other by bare name\n    b = importlib.import_module(\"board\")\n    if os.path.dirname(os.path.abspath(b.__file__)) != os.path.join(VENDOR_APP, \"board\"):\n        raise ImportError(f\"another module named 'board' is already loaded from {b.__file__}\")"
    },
    {
      "url": "https://raw.githubusercontent.com/studioluftbruecke/hermes-forgebruecke/f01d5dae2b643ef2a2efffbdccaea7d9417632cf/approval.py",
      "quote": "def _finite_turn() -> Optional[bool]:\n    \"\"\"True on a gateway-admitted ``chat -q``/``-z`` turn; None when the marker cannot be read.\n\n    A private Hermes seam (no public API says \"single-query\" for a daemon turn, which never carries\n    HERMES_SINGLE_QUERY_SESSION). If it moves, writes are refused rather than left to Hermes' gate,\n    which auto-approves single-query runs.\"\"\"\n    try:\n        from gateway.session_finite import finite_turn_required\n    except ImportError:"
    },
    {
      "url": "https://raw.githubusercontent.com/shagghiesuperstar/agentpass-plugin/c091db23bf8fe5f8773dfd29d6bf5127a1de9ec4/tools.py",
      "quote": "def _host_key(url: str) -> str:\n    return (urlsplit(url).hostname or url).lower()"
    },
    {
      "url": "https://raw.githubusercontent.com/shagghiesuperstar/agentpass-plugin/c091db23bf8fe5f8773dfd29d6bf5127a1de9ec4/mcp_client.py",
      "quote": "self.auth_token = auth_token if auth_token is not None else os.environ.get(\"AGENTPASS_API_KEY\") or None"
    },
    {
      "url": "https://raw.githubusercontent.com/iamlukethedev/hermes-procgen-studio/204b063ca5dcb81c050299b9fcaa47ea5a437553/tests/test_sandbox_hardening.py",
      "quote": "def test_reference_refuses_paths_outside_allowed_roots(tmp_path, hermes_home):\n    outside = _png(tmp_path / \"elsewhere\" / \"ref.png\")\n    env_file = hermes_home / \".env\"\n    env_file.write_text(\"OPENAI_API_KEY=sk-secret\\n\")\n    link = tmp_path / \"work\" / \"link.png\"\n    link.symlink_to(outside)\n    for ref in (outside, env_file, link, tmp_path / \"work\" / \"..\" / \"elsewhere\" / \"ref.png\"):\n        with pytest.raises(ReferenceImageError, match=\"outside\"):\n            reference_dat"
    }
  ]
}
