{
  "sources": [
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/RUN.md",
      "quote": "For seats in rounds 3 and 4. Everything lives under `test/scratch/`. Nothing here needs a model, a key or an account: the model is Nous's own scripted test stand-in, `tests/fakes/fake_llm_provider.py` in the Hermes source, which answers with the tool calls you plan and records everything Hermes sends.\n\n## 1. Hermes, once\n\n    git clone --depth 1 https://github.com/NousResearch/hermes-agent test/scratch/hermes\n    cd te"
    },
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "us\"},{\"pr\":152914,\"name\":\"culprit\",\"repo\":\"https://github.com/d0txyz/hermes-culprit\",\"sha\":\"9dd7662ceb0d25475fac878cc1499207426c660b\",\"subdir\":\"\"},{\"pr\":152918,\"name\":\"look\",\"repo\":\"https://github.com/SilentHacks/look\",\"sha\":\"7c01a94aa651adedaf27e5216598c6deef29305"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/fdde27e7dae174cb4ba842589e92508852b7dd9f/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)`,\n   which honours the active profile (a bare `os.environ` read can pick up another\n   profile's key under multiplexing). A subscription sign-in (Codex / ChatGPT\n   today) is used only through `credentialed_provider_request` with\n   `requ"
    },
    {
      "url": "https://raw.githubusercontent.com/d0txyz/hermes-culprit/9dd7662ceb0d25475fac878cc1499207426c660b/README.md",
      "quote": "**git bisect for your agent.** Culprit finds the exact tool call that broke your tests, and undoes only that one.\n\n![Culprit naming the step that broke the tests](docs/screenshots/culprit-found.png)\n\nYour agent made a pile of changes. The tests passed an hour ago and fail now. Which change did it? Culprit already knows every state "
    },
    {
      "url": "https://raw.githubusercontent.com/d0txyz/hermes-culprit/9dd7662ceb0d25475fac878cc1499207426c660b/engine.py",
      "quote": "def minimal_env(extra_names=()) -> dict:\n    \"\"\"An explicit, minimal environment: OS basics, locale, plus the names the user listed.\"\"\"\n    windows = os.name == \"nt\"\n    base = _ENV_WINDOWS if windows else _ENV_POSIX\n    wanted = {n.upper() if windows else n for n in base}\n    wanted |= {n.upper() if windows else n for n in clean_env_names(list(extra_names))}\n    env = {}\n    for key, value in os.environ.items():\n        probe"
    },
    {
      "url": "https://raw.githubusercontent.com/d0txyz/hermes-culprit/9dd7662ceb0d25475fac878cc1499207426c660b/tests/test_engine.py",
      "quote": "def test_bisect_finds_the_breaking_step(env):\n    engine, ws = env\n    for i in range(1, 6):\n        edit(engine, ws, \"notes.txt\", f\"note {i}\\n\")\n    edit(engine, ws, \"calc.py\", \"def add(a, b):\\n    return a - b\\n\", tool=\"patch\")\n    for i in range(6, 12):\n        edit(engine, ws, \"notes.txt\", f\"note {i}\\n\")\n    seen = []\n    result = engine.bisect(str(ws), CHECK, timeout=60, progress=seen.append)\n    assert result[\"status\"] == \"found\"\n    assert"
    },
    {
      "url": "https://raw.githubusercontent.com/KeyArgo/hail-hermes/ade2b7b2e40c6762411e04e928e5da3bba99c185/README.md",
      "quote": "Hail Hermes is a Hermes Agent plugin: a hub, a desktop panel, and phone/watch clients, so your\nself-hosted agent gets a voice, a face, proactive nudges, and device sensors as agent tools. **The\npanel is the product and needs no hardware**; the watch is the extension you pair later.\n\n```bash\nhermes plugins install KeyArgo/hail-hermes --yes-deps --enable\n```\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/KeyArgo/hail-hermes/ade2b7b2e40c6762411e04e928e5da3bba99c185/plugin/hail_hermes/tools.py",
      "quote": "Handlers follow the Hermes tool contract: ``handler(args: dict, **kwargs) -> str`` (JSON, never\nraises). Availability is gated per cap by ``check_fn`` against the hub's live device snapshot, so\na tool is only offered to the model while a device that supports it is connected.\"\"\"\n\nfrom __future__ import annotations\n\nimport json\nfrom typing import Any, Callable"
    },
    {
      "url": "https://raw.githubusercontent.com/KeyArgo/hail-hermes/ade2b7b2e40c6762411e04e928e5da3bba99c185/plugin/tests/test_tools.py",
      "quote": "async def test_battery_from_hello_caps_and_report(state_dir):\n    async with running_hub(state_dir) as hub, Client.open(hub) as c:\n        await c.pair(caps={\"battery\": {\"mv\": 3900, \"charging\": False}})\n        assert await tool(state_dir, \"battery\") == {\"ok\": True, \"device_id\": c and next(iter(hub.sessions)),\n                                                    \"mv\": 3900, \"charging\": False}\n        await c.send(\"battery\", mv=3700, charging=True)"
    },
    {
      "url": "https://raw.githubusercontent.com/timioni001/morph-hermes/1a3a8bce10d5d5b14bd3ae3cddc908199fe2f90c/README.md",
      "quote": "1. **The agent proposes.** It can read everything, but a change is only ever a proposal.\n2. **You approve.** Each proposal shows the exact before and after.\n3. **MORPH verifies.** It writes the change, reads the record back from the API, and\n   reports it verified only if the two match.\n\n![MORPH ins"
    },
    {
      "url": "https://raw.githubusercontent.com/timioni001/morph-hermes/1a3a8bce10d5d5b14bd3ae3cddc908199fe2f90c/tests/conftest.py",
      "quote": "FIXTURE_SCHEMA: dict[str, Any] = {\n    \"label\": \"Fixture CRM\",\n    \"description\": \"A tiny in-process source used by the unit tests.\",\n    \"entities\": [\n        {\n            \"name\": \"deals\", \"label\": \"Deals\", \"primary_key\": \"id\", \"title_field\": \"name\",\n            \"fields\": [\n                {\"name\": \"id\", \"type\": \"id\", \"role\": \"key\"},\n                {\"name\": \"name\", \"type\": \"string\", \"role\": \"title\"},\n                {\"name\": \"stage\", \"type\": \""
    },
    {
      "url": "https://raw.githubusercontent.com/RiahStudio/riah-swipe/513609d47b27a2703a2fd5bcb2fa54ce35d3d966/hermes-plugin/README.md",
      "quote": "You ask Hermes for ten logo ideas, six taglines, or four cuts of a video. Hermes\nputs them in a swipe deck and hands you a link. Swipe right to keep, left to\ndiscard, and up to send one back with a note. When you finish the deck, Hermes\nhas the verdicts and remakes the ones you sent back.\n\nIt works on your desktop. Turn on phone mode and it works from your phone on the\nsame Wi-Fi too. On Telegram you don't need the board at all: the cards show up"
    },
    {
      "url": "https://raw.githubusercontent.com/RiahStudio/riah-swipe/513609d47b27a2703a2fd5bcb2fa54ce35d3d966/hermes-plugin/__init__.py",
      "quote": "def register(ctx) -> None:\r\n    global _ctx\r\n    _ctx = ctx\r\n    for name, schema, handler, emoji in TOOLS:\r\n        ctx.register_tool(name=name, toolset=\"riah_swipe\", schema=schema, handler=handler,\r\n                          description=schema[\"description\"], emoji=emoji)\r\n    ctx.register_hook(\"pre_llm_call\", on_pre_llm_call)\r\n    _wire_chat(ctx)\r\n    ctx.register_command(\"swipe\", cmd_swipe,\r\n                         description=\"Riah Swipe bo"
    },
    {
      "url": "https://raw.githubusercontent.com/RiahStudio/riah-swipe/513609d47b27a2703a2fd5bcb2fa54ce35d3d966/hermes-plugin/tests/test_daily_use.py",
      "quote": "    def test_notes_come_back_in_swipe_order_with_how_to_read_them(self):\n        self.deck(3)\n        core.set_verdict(self.root, \"dk\", \"dk-02\", \"discard\", \"none of these feel like summer\")\n        core.set_verdict(self.root, \"dk\", \"dk-01\", \"revise\", \"bigger text\")\n        core.set_verdict(self.root, \"dk\", \"dk-03\", \"keep\")\n        s = core.summarize(self.root, \"dk\")\n        self.assertEqual([n[\"card_id\"] for n in s[\"notes\"]], [\"dk-02\", \"dk-01\"])\n"
    },
    {
      "url": "https://raw.githubusercontent.com/helenn-szn/undo-send/10d388c951245ceeabc1101bb8ff65e75f4f6737/README.md",
      "quote": "It sits on Hermes' public `tool_execution` middleware, after Hermes' own\nguardrails and approvals, so it adds a step without replacing anything. It\nfails open: if undo-send itself errors, the tool call runs as it would have.\n\n## What gets held\n\n| Kind | Examples |\n|---|---|\n| Messages to people | `hermes send --to telegram \"…\"` (Telegram, Slack, Di"
    },
    {
      "url": "https://raw.githubusercontent.com/helenn-szn/undo-send/10d388c951245ceeabc1101bb8ff65e75f4f6737/undo_send/hold.py",
      "quote": "        if not self.store.claim(aid):  # lost the race to an Undo\n            return cancelled_result(summary)\n        try:\n            result = next_call(args)\n        except Exception as exc:\n            self.store.finish(aid, ok=False, detail=str(exc)[:300])\n            raise\n        self.store.finish(aid, ok=True)\n        return result\n"
    },
    {
      "url": "https://raw.githubusercontent.com/helenn-szn/undo-send/10d388c951245ceeabc1101bb8ff65e75f4f6737/tests/test_undo_send.py",
      "quote": "def test_undo_cancels_before_send(store):\n    def on_tick(t):\n        p = store.latest_pending()\n        if p and t > 1005:\n            assert \"Undone\" in commands.undo(store, \"\")\n\n    out, ran = call(make_holder(store, window=20, on_tick=on_tick),\n                    \"send_message\", {\"to\": \"boss\", \"text\": \"embarrassing\"})\n    assert ran == []\n    assert json.loads(out)[\"status\"] == \"cancelled_by_user\"\n    assert store.recent()[0][\"status\"] == \"c"
    },
    {
      "url": "https://raw.githubusercontent.com/StarAtNyte/hermes-sentinel/fb48bf5c835fa2e8acb74dfc05c52458b3c1194d/sentinel-vision/README.md",
      "quote": "## Verified live, and what is not\n\nRun on 2026-11-07 against Hermes v0.23.0 in an isolated home, with a real vision model, in the classic CLI and a `file:` video source: from one plain-English request the agent found the Sentinel tools, created a rule, and when the mug left the video it stored an event with a snapshot and injected an alert (one judge call, confidence 0.98). **Not yet verified:** the real Hermes Desktop app (the Desktop pane was only rendered in a stub ho"
    },
    {
      "url": "https://raw.githubusercontent.com/StarAtNyte/hermes-sentinel/fb48bf5c835fa2e8acb74dfc05c52458b3c1194d/sentinel-vision/__init__.py",
      "quote": "def register(ctx: Any) -> None:\n    \"\"\"Plugin entry point called by Hermes.\"\"\"\n    from .sentinel.agent.commands import ARGS_HINT, SentinelCommand\n    from .sentinel.agent.tools import register_tools\n    from .sentinel.runtime import Sentinel, register_aux_tasks, set_active_sentinel\n    from .sentinel.version import __version__\n\n    register_aux_tasks(ctx)\n    sentinel = Sentinel(ctx)\n    register_tools(ctx, sentinel)\n    ctx.register_command(\n  "
    },
    {
      "url": "https://raw.githubusercontent.com/StarAtNyte/hermes-sentinel/fb48bf5c835fa2e8acb74dfc05c52458b3c1194d/sentinel-vision/tests/test_e2e.py",
      "quote": "Every scenario runs the real modules (only the camera, the clock and the model are fake):\n\n* a watch rule on ``object_removed`` fires exactly one alert, with a MEDIA photo;\n* \"false alarm\" feedback stores a negative example and tightens the rule;\n* ``sentinel_events`` finds the event;\n* budget exhaustion pauses judging and posts exactly one notice;\n* a disconnect gives exactly one offline and one back-online notice;\n* nuisance scenes (flicker, sh"
    }
  ]
}