{
  "sources": [
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "{\"about\":\"Hermes Agent Plugin Hackathon entries: every plugin-catalog entry added to github.com/NousResearch/hermes-agent by a pull request opened from the hackathon post (2026-11-04 21:33Z) to its close (2026-11-11 22:00Z), one per distinct plugin. pr is the entrant's own pull request.\","
    },
    {
      "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."
    },
    {
      "url": "https://raw.githubusercontent.com/lexipej/hallway-test/7e5381a56f411114e52e0a61d73664142dba7803/plugin.yaml",
      "quote": "name: hallway-test\nversion: 0.1.0\nmanifest_version: 2\napi_version: 1\ndescription: >-\n  Watch five simulated people try your web page, each with real limits enforced in code: a first-time\n"
    },
    {
      "url": "https://raw.githubusercontent.com/lexipej/hallway-test/7e5381a56f411114e52e0a61d73664142dba7803/README.md",
      "quote": "**Watch five simulated people try your web page, each with real limits.**\n\nYou change a page, then ask Hermes: *\"hallway test localhost:3000/signup — sign up with sam@example.com\"*.\nFive people open it in their own browsers and try:\n\n| Person | Limit, enforced in code |\n|---|---|\n| **Maya**, first-time visitor | Reads labels literally; nothing hidden is assumed |\n"
    },
    {
      "url": "https://raw.githubusercontent.com/iamlukethedev/hermes-procgen-studio/204b063ca5dcb81c050299b9fcaa47ea5a437553/plugin.yaml",
      "quote": "name: procgen-studio\nversion: 0.1.0\ndescription: \"Image and video backend that draws with code: your configured model writes SVG/Python drawing programs, rendered locally to PNG/MP4 with the editable source and a reproducible seed. No image API key, STYLE.md art "
    },
    {
      "url": "https://raw.githubusercontent.com/iamlukethedev/hermes-procgen-studio/204b063ca5dcb81c050299b9fcaa47ea5a437553/README.md",
      "quote": "**An image and video backend for [Hermes Agent](https://github.com/NousResearch/hermes-agent)\nthat draws with code.** Instead of calling a hosted image API, your configured model writes a\ndrawing program (SVG, or Python with Pillow/numpy), Procgen Studio renders it locally, and you\nget back a PNG with the editable source and a reproducible seed saved right next to it.\n\n![Procgen Studio gallery](examples/gallery.png)\n\nBecause it registers through "
    },
    {
      "url": "https://raw.githubusercontent.com/cipoklean/hermes-xray/21ca5f6fb5e46fb6d1a0ec2e179d055b96c69f52/xray/plugin.yaml",
      "quote": "name: xray\nversion: \"0.1.0\"\nmanifest_version: 2\napi_version: 1\ndescription: >-\n  Plugin X-Ray detonates a plugin in a throwaway child process before you trust it, plants\n  honeytokens and bait files, and warps the clock +30/+90 days to trip time-bombs — then\n"
    },
    {
      "url": "https://raw.githubusercontent.com/cipoklean/hermes-xray/21ca5f6fb5e46fb6d1a0ec2e179d055b96c69f52/README.md",
      "quote": "**It doesn't watch plugins. It sets traps for them.**\n\nA Hermes plugin runs with your permissions. It can read your files, call any server, and run\ncommands. The catalog's install scanner reads a plugin's code once, when it's admitted. After that,\nnobody checks what the plugin actually *does* on your machine: after a week, after an update, or\nwhen it thinks nobody is looking.\n\nPlugin X-Ray checks. It works in four ways.\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/kruxarth/wake-me-when/77e827a03053102c3af28049384521853b0caab8/plugin.yaml",
      "quote": "name: wake-me-when\nversion: \"0.1.2\"\nmanifest_version: 2\napi_version: 1\ndescription: Watches live audio and video (keynotes, Twitch, launches, earnings calls) and pings you at the moment, with evidence, a clip and a catch-up.\nauthor: kruxarth\nlicense: MIT\n"
    },
    {
      "url": "https://raw.githubusercontent.com/kruxarth/wake-me-when/77e827a03053102c3af28049384521853b0caab8/README.md",
      "quote": "**Tell Hermes what you're waiting for in a live stream, and it pings you the moment it happens:\nwith the quote, a jump-in link, the clip, and a catch-up when you tune in.**\n\n![Wake Me When banner](docs/banner.png)\n\nKeynotes, earnings calls, press conferences, Twitch streams, council meetings, rocket launches,\nnature cams: most live audio and video has no feed and no alert. Wake Me When *listens* (local\n"
    },
    {
      "url": "https://raw.githubusercontent.com/GodsBoy/hermes-tuneup/e844617bb451fa6d19cd6162a25551599f60e5a9/plugin.yaml",
      "quote": "name: hermes-tuneup\nversion: \"0.1.1\"\nmanifest_version: 2\napi_version: 1\ndescription: \"Shows when compaction really fires on every profile and model route, flags settings that waste quota or break prompt caching, and fixes them only after you confirm, with a diff and a "
    },
    {
      "url": "https://raw.githubusercontent.com/GodsBoy/hermes-tuneup/e844617bb451fa6d19cd6162a25551599f60e5a9/README.md",
      "quote": "hermes-tuneup tells you, in tokens, when each route will compact and why. It flags the settings that waste quota or break prompt caching, and fixes them only after you confirm, with a diff and a backup. It works in chat, in the terminal and as a Hermes Desktop pane.\n\n<!-- DEMO VIDEO: add the demo video here once it is published. -->\n\n<p align=\"center\">\n  <img src=\"docs/screenshots/check.png\" alt=\"hermes tuneup check on a demo profile\" width=\"90%\""
    },
    {
      "url": "https://raw.githubusercontent.com/Wecko-ai/hermes-signet/ceaab2a705907392711658af5707f2b27bd405d8/plugin.yaml",
      "quote": "name: signet\nversion: 0.1.0\nmanifest_version: 2\napi_version: 1\ndescription: \"An email leaves your agent only with your seal on that exact message. Signet shows you the real recipients, sender, subject, text and attachments in Hermes's own approval prompt, ties your yes "
    },
    {
      "url": "https://raw.githubusercontent.com/Wecko-ai/hermes-signet/ceaab2a705907392711658af5707f2b27bd405d8/README.md",
      "quote": "**An email leaves your Hermes agent only with your seal on that exact message.**\n\n![Signet: your agent drafts, your seal sends](docs/banner.png)\n\nAgents send email now. A line in a prompt that says \"always ask me first\" is a wish: the model can\nskip it, a long session can forget it, a page the agent read can talk it out of it, and YOLO mode\nswitches the question off altogether. Signet makes it a rule that code enforces.\n\n- **You approve the real "
    },
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/plugin.yaml",
      "quote": "name: done-bell\nversion: 0.1.0\nmanifest_version: 1\napi_version: 1\ndescription: >\n  Ring when a Hermes turn finishes so you can leave the window. OS notification,\n  optional chime, and a busy/done chip. Optional \"needs you\" when approval is\n"
    },
    {
      "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\n"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/plugin.yaml",
      "quote": "name: homeassistant\nlabel: Home Assistant\nkind: platform\nversion: 2.0.1\nauthor: NousResearch\nhomepage: https://github.com/NousResearch/hermes-official-plugins/tree/main/homeassistant\ndescription: >\n  Home Assistant for Hermes Agent: a gateway platform adapter plus four\n"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/README.md",
      "quote": "Official [Hermes Agent](https://github.com/NousResearch/hermes-agent) plugin for\n[Home Assistant](https://www.home-assistant.io/). It provides two things:\n\n1. **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\"."
    },
    {
      "url": "https://raw.githubusercontent.com/GodsBoy/hermes-tuneup/e844617bb451fa6d19cd6162a25551599f60e5a9/tuneup/hermes_adapter.py",
      "quote": "from agent.context_compressor import _model_threshold_key_rank\n\n    return _model_threshold_key_rank(str(key), model or \"\", (provider or \"\").strip().lower())\n\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/iamlukethedev/hermes-procgen-studio/204b063ca5dcb81c050299b9fcaa47ea5a437553/procgen_studio/sandbox_runner.py",
      "quote": "bad = sorted(k for k in names if type(k) is not str or\n                     (k.startswith(\"__\") and k.endswith(\"__\") and k not in CLASS_DUNDERS))\n        if bad:\n            raise TypeError(f\"class {name!r} may not define {', '.join(map(str, bad[:5]))} in a drawing program\")\n        return cls\n"
    }
  ]
}