{
  "sources": [
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "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": "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/NousResearch/hermes-agent/fdde27e7dae174cb4ba842589e92508852b7dd9f/plugin-catalog/README.md",
      "quote": "   injection, no reaching into the app's internal stores or its own markup\n   (querying `data-slot` / `data-tour` / `data-sidebar` / `data-testid`\n   elements from `document`, or a `document.body` MutationObserver, to restyle,\n   hide, click or rewrite core UI)."
    },
    {
      "url": "https://raw.githubusercontent.com/NyllRE/project-command-center/eaa3e2d3a046eb677f4c67aae98b78f1dcec4043/README.md",
      "quote": "Click an issue and a session opens in that repo with the issue already sitting in the composer. The agent works. When it opens the pull request, the card moves itself to Review."
    },
    {
      "url": "https://raw.githubusercontent.com/NyllRE/project-command-center/eaa3e2d3a046eb677f4c67aae98b78f1dcec4043/__init__.py",
      "quote": "The Desktop half renders the board; this half lets the agent read it and move it. Both write to the\nsame local SQLite file through ``board_store.py`` at the plugin root, so a status the agent sets is\nthe status the board shows after the next ``board.changed`` event."
    },
    {
      "url": "https://raw.githubusercontent.com/Femtech-web/Capalis/78843af2e15812fc391a74fe1cbcf2ac82a03de1/plugin/README.md",
      "quote": "The model can propose, practise and pause. Only you can approve, resume, revoke, confirm or resolve."
    },
    {
      "url": "https://raw.githubusercontent.com/Femtech-web/Capalis/78843af2e15812fc391a74fe1cbcf2ac82a03de1/plugin/capalis/runtime/runner.py",
      "quote": "side effect the runner re-reads lifecycle, pause and approval state, re-checks pins, records the write\nintent, and only then dispatches. An attempt that may have reached the provider is never replayed\nblindly: it is reconciled by key, or the run stops for an operator."
    },
    {
      "url": "https://raw.githubusercontent.com/Femtech-web/Capalis/78843af2e15812fc391a74fe1cbcf2ac82a03de1/tests/integration/test_service.py",
      "quote": "    env.world.close_issue(REPO, 1, reason=\"not_planned\")\n    assert env.service.runner.advance(sub.run_id) is RunState.VERIFIED"
    },
    {
      "url": "https://raw.githubusercontent.com/Saderius/hermes-triage/913a61d62b0795926531ecdfbf8980a1e9c0b9c9/README.md",
      "quote": "Before uninstalling, run `python run.py restore` in the plugin folder. It gives Hermes back the skills Triage hid from it."
    },
    {
      "url": "https://raw.githubusercontent.com/Saderius/hermes-triage/913a61d62b0795926531ecdfbf8980a1e9c0b9c9/model_tools.py",
      "quote": "* ``skill_search(query)`` - names and one-line descriptions, best first, with\n  a match score and whether the skill is already loaded. Loads nothing.\n* ``skill_load(names)``   - the full text of the chosen skills (and makes them\n  allowed for ``skill_view`` in this chat). Loaded skills join the fan."
    },
    {
      "url": "https://raw.githubusercontent.com/Saderius/hermes-triage/913a61d62b0795926531ecdfbf8980a1e9c0b9c9/desktop/plugin.js",
      "quote": ".thread-jump-button { bottom: calc(var(--composer-measured-height) + 1rem + var(--hsj-jump-rise, 0px)) !important; }"
    },
    {
      "url": "https://raw.githubusercontent.com/Tsurgcom/hermes-teleoperator/4dfb08eb0bba00f7c2036613290a9e6da5650d8d/README.md",
      "quote": "Remote calls still do not get Hermes' full guard path: other plugins' `pre_tool_call` blocks, the agent's tool guardrails, and the gateway-side secret redaction for directory-wide searches run inside the dispatch callback that this plugin's execution middleware replaces, so they never see a remote call and cannot block it."
    },
    {
      "url": "https://raw.githubusercontent.com/Tsurgcom/hermes-teleoperator/4dfb08eb0bba00f7c2036613290a9e6da5650d8d/hermes_teleoperator/guards.py",
      "quote": "Both are fail-closed here. A guard that cannot be reached (older/newer Hermes,\na raising call, a non-dict verdict) refuses the remote call instead of running\nit unguarded — the plugin never trades a guard for availability."
    },
    {
      "url": "https://raw.githubusercontent.com/Tsurgcom/hermes-teleoperator/4dfb08eb0bba00f7c2036613290a9e6da5650d8d/hermes_teleoperator/version.py",
      "quote": "    'hermes-teleoperator-receiver-x86_64-unknown-linux-musl':\n        '2013038cc40dd0068a149a02bf53ba5240bfab9e6a086a9e62717136e6919110',"
    },
    {
      "url": "https://raw.githubusercontent.com/cstljuan/syrinx/444db83b1a4fe902916cec25b2de27c389075538/README.md",
      "quote": "So you can hand an agent an hour and know the worst it can do is local. Local commands, tests, edits and commits are never held, and unattended (cron) runs are never touched. `/syrinx hold off` turns it off; outward actions then run and are flagged at the top of the counted list."
    },
    {
      "url": "https://raw.githubusercontent.com/cstljuan/syrinx/444db83b1a4fe902916cec25b2de27c389075538/runtime.py",
      "quote": "            question = str(given.get(\"question\") or \"\").strip()\n            if not question:\n                return _json_error(\"question is required\")"
    },
    {
      "url": "https://raw.githubusercontent.com/cstljuan/syrinx/444db83b1a4fe902916cec25b2de27c389075538/core.py",
      "quote": "    if name.startswith((\"web_\", \"browser\")):\n        return \"web\", \"\""
    },
    {
      "url": "https://raw.githubusercontent.com/MokiMeow/promise-keeper/ab91fee21f607d5515a8e007cf615fc285718dd0/README.md",
      "quote": "**Tell Hermes a rule once. It's checked on every tool call, a block quotes your own words, and only you can change it.**"
    },
    {
      "url": "https://raw.githubusercontent.com/MokiMeow/promise-keeper/ab91fee21f607d5515a8e007cf615fc285718dd0/__init__.py",
      "quote": "- tool_execution mw   outer check: Hermes runs it first, on the arguments after request middleware\n- pre_tool_call       inner check: block, or send an \"ask\" rule to the approval prompt, with the user's quote\n- /promise            the only way to confirm, add or revoke rules (slash commands are typed by the user)"
    },
    {
      "url": "https://raw.githubusercontent.com/MokiMeow/promise-keeper/ab91fee21f607d5515a8e007cf615fc285718dd0/tests/test_windows_paths.py",
      "quote": "def test_backslash_paths_are_caught(root, cmd):\n    text = cmd.format(parent=str(root), prod=str(root / \"prod\"))\n    v = evaluate([_rule(root)], \"terminal\", {\"command\": text, \"workdir\": str(root)}, str(root))\n    assert v is not None and v.action == \"block\", text"
    }
  ]
}
