{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "OS 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\\plugins\\done-bell\nhermes plugins enable done-bell\n```\n\nCopy the pane (Hermes "
    },
    {
      "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/sohomsahaun/hermes-drawbridge/84c5c7cf959c75037d1ea88ead599ba639368185/README.md",
      "quote": "If the file changed after the proposal was prepared, ask Hermes to prepare a fresh edit. **Create** refuses to overwrite an existing file. An editor can still save between Drawbridge’s final comparison and its write. If a save’s outcome is unclear after a disconnect, check the local file before retrying.\n\n## Respond to a folder access request\n\nHermes can request folder access in chat on Desktop builds that support transcript cards.\n\n- **Approve a"
    },
    {
      "url": "https://raw.githubusercontent.com/MokiMeow/promise-keeper/ab91fee21f607d5515a8e007cf615fc285718dd0/README.md",
      "quote": "| **Not covered** | other plugins' tools that write without a path argument; another plugin's `pre_tool_call` hook that rewrites arguments (Hermes applies that after both checks); a symlink swapped while a background command runs; changes made outside Hermes |\n\nReading-only work is never blocked: `cat prod/x`, `cp prod/x backup/`, `git diff prod`, and code that only reads.\n\n## Commands\n\n```\n/promise                       your rules\n/promise confi"
    },
    {
      "url": "https://raw.githubusercontent.com/usegreymatter/hermes-stock-runway/e3f7b28e1e8fa4f0ce9c65cdf75a0e676a596f69/README.md",
      "quote": "Stock Runway estimates how long current stock may last using recent monthly net sales. It includes an anonymized sample, accepts a local CSV, and has an optional read-only Odoo source. Forecasts are estimates, not promises or purchase orders.\n\n## Install\n\n```bash\nhermes plugins install usegreymatter/hermes-stock-runway\nhermes plugins enable stock-runway\n```\n\nThen restart Hermes Desktop and open **Stock Runway** in the sidebar (or type `/stock` in"
    },
    {
      "url": "https://raw.githubusercontent.com/thedavidmurray/hermes-receipts/2eb05e478e51d3c9771737f6c9943b3084d82eb1/README.md",
      "quote": "**v2 source under integration, not an accepted release:** a local manifest can produce a scoped task PNG, an explicitly opted-in local fleet scan can produce a grouped statement PNG, and the existing Desktop pane shows an unverified current-session preview. Independent accuracy and outcome acceptance are pending; see [PLAN-v2.md](PLAN-v2.md). Missing evidence is not proof of a lie, and a successful tool invocation alone is not proof that a task i"
    },
    {
      "url": "https://raw.githubusercontent.com/ainsleys/hermes-confidential-mode/e407486a2227be8cafe7b4350586f3016ebff573/README.md",
      "quote": "- Every model call, main or side, goes only to the tier (a side call that strays mid-turn is recorded,\n  not stopped). The plugin checks every configured route before locking and before each turn, and\n  refuses main-call fallbacks before any bytes leave.\n- The enclave is re-verified whenever its last verification is more than five minutes old, and a\n  changed enclave build is refused on every turn until you approve the new build. On both vendors\n"
    },
    {
      "url": "https://raw.githubusercontent.com/lEWFkRAD/melange/51e7c405a006b5f22f0162cca712e4bedece302e/hermes-plugin/README.md",
      "quote": "- `melange_record` — run a command in a PTY, record it as a timeline\n- `melange_versions` — list the Original and every What-if, with seal status\n- `melange_screen` — scrub to any step and see the reconstructed screen\n- `melange_where_from` — where a character on screen came from, in plain words\n- `melange_note` — pin a note into the recording itself\n- `melange_whatif` — fork at a step with a new instruction\n- `melange_clamp` — change one recorde"
    },
    {
      "url": "https://raw.githubusercontent.com/ASV-Labs/siemless/a74bd96f2fc232e808db6242a6be642fa700db5e/README.md",
      "quote": "* A dead destination never breaks a session: batches spool to disk (bounded), retry with capped\n  backoff, and replay in order on recovery. A refusal (401/403, a missing token, a redirect) keeps\n  the events in the spool, retries every 5 minutes instead of hammering, and shows `refused` with\n  the reason in health. Tokens are resolved lazily, so a token set after start is picked up.\n  Delivery is **at-least-once**; every event carries its id for "
    },
    {
      "url": "https://raw.githubusercontent.com/404BugX/carnet/45cf3478043baa3ab4811fcef99b315822e80916/README.md",
      "quote": "- **Native to Hermes.** A real page in the desktop app, a real memory provider in\n  the agent. No browser tab, no companion service, no scraping.\n- **Lightweight.** The hot path is the Python standard library and one SQLite\n  file. No vector database, no daemon required to start.\n- **Bounded context.** The injected block has a character budget it cannot\n  exceed. The memory can grow for months while the context stays flat.\n- **Nearly unlimited.**"
    },
    {
      "url": "https://raw.githubusercontent.com/kawsthingz/hermes-dress-rehearsal/392fc16e7b7057e71f8dfd42b90eefc9cb1b3b28/README.md",
      "quote": "- **What you approve is what runs.** `/rehearse go` replays the recorded calls in order with no model in the loop. Nothing is regenerated, and the script hash on screen is the hash of what runs.\n- **Stale approvals are refused.** Each file write records the file's SHA-256 at rehearsal time. If the file changed before you press go, replay stops at that step.\n- **It runs where it was rehearsed.** Shell steps replay in the folder the agent was worki"
    },
    {
      "url": "https://raw.githubusercontent.com/MuhammadMurtuzaHussain/Hermes-Hackathon/857ff062407f620f16edd2824bbe61570c2a4cfb/night-shift/README.md",
      "quote": "- **Approval.** Commands run only after a listed person approves. The click is checked against\n  `approvers`, can only run once, and expires. The card shows every command in full: the length is\n  measured on the escaped text Slack receives, and a fix that would not fit, or that contains a\n  code fence, is refused rather than cut. The confirm dialog repeats the commands when they fit.\n  Typed approval takes two steps, so it always shows the stored"
    },
    {
      "url": "https://raw.githubusercontent.com/usegreymatter/hermes-stock-runway/e3f7b28e1e8fa4f0ce9c65cdf75a0e676a596f69/engine.py",
      "quote": "    for index in range(len(sales) - 4, len(sales)):\n        window = sales[index - 3:index]\n        # Equal inputs have an exact mean: do not manufacture tiny float error.\n        forecasted.append(window[0] if window.count(window[0]) == 3 else sum(window) / 3)\n        actual.append(sales[index])\n    total_actual = sum(actual)\n    if total_actual == 0:\n        return {\"error_percent\": None, \"grade\": \"No recent sales to check"
    },
    {
      "url": "https://raw.githubusercontent.com/lEWFkRAD/melange/51e7c405a006b5f22f0162cca712e4bedece302e/hermes-plugin/living_replay/bridge.py",
      "quote": "    The instruction is recorded as the What-if's first context note at\n    the split step. This records intent, per the UX design's honesty\n    rule: running it needs the work session to be live again, so no\n    continuation is fabricated here.\n    \"\"\"\n"
    },
    {
      "url": "https://raw.githubusercontent.com/404BugX/carnet/45cf3478043baa3ab4811fcef99b315822e80916/provider.py",
      "quote": "                                      api_key=_secret(\"CARNET_EMBED_API_KEY\")\n                                      or str(self._config.get(\"embed_api_key\") or \"\"),\n                                      model_dir=model_dir)\n"
    },
    {
      "url": "https://raw.githubusercontent.com/404BugX/carnet/45cf3478043baa3ab4811fcef99b315822e80916/dashboard/plugin_api.py",
      "quote": "    if setting.api_key is not None:\n        values[\"embed_api_key\"] = setting.api_key.strip()\n    _write_runtime_config(values)\n"
    },
    {
      "url": "https://raw.githubusercontent.com/kawsthingz/hermes-dress-rehearsal/392fc16e7b7057e71f8dfd42b90eefc9cb1b3b28/__init__.py",
      "quote": "    def load(self) -> core.Rehearsal:\n        try:\n            return core.Rehearsal.from_dict(self.ctx.state.get(_STATE_KEY, default=None))\n        except Exception:\n            logger.exception(\"dress-rehearsal: unreadable state, starting clean\")\n            return core.Rehearsal()\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/MuhammadMurtuzaHussain/Hermes-Hackathon/857ff062407f620f16edd2824bbe61570c2a4cfb/night-shift/policy.py",
      "quote": "READ_ONLY_PROGRAMS = {\n    \"cat\", \"head\", \"tail\", \"grep\", \"egrep\", \"fgrep\", \"rg\", \"cut\", \"sort\", \"uniq\", \"wc\", \"tr\",\n    \"ls\", \"stat\", \"file\", \"du\", \"df\", \"free\", \"uptime\", \"ps\", \"pgrep\", \"lsof\", \"ss\", \"netstat\",\n    \"ping\", \"dig\", \"nslookup\", \"jq\", \"whoami\", \"uname\", \"echo\", \"journalctl\", \"dmesg\", \"vmstat\",\n    \"iostat\", \"true\",\n}\n\n# Flags that turn an otherwise read-only program into a writer or a command runn"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/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   `requires_auth`, so"
    },
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "\"name\":\"done-bell\",\"repo\":\"https://github.com/aydnOktay/hermes-done-bell-\",\"sha\":\"3fa519a291d91b0e6c44bd42762190363ce80c39\",\"subdir\":\"\"},{\"name\":\"homeassistant\",\"repo\":\"https://github.com/NousResearch/hermes-official-plugins\",\"sha"
    }
  ]
}
