{
 "batch": "read1-066",
 "plugins": [
  {
   "pr": 0,
   "name": "done-bell",
   "does": "Sends an OS notification and optional chime when a Hermes turn ends or waits for approval, and shows a busy/done/needs-you chip in Desktop.",
   "useful": 4,
   "reliable": 3,
   "polish": 3,
   "creative": 2,
   "beyond": 3,
   "total": 18,
   "best": "It solves a real everyday problem with turn-end and approval hooks, a Desktop chip and a /bell command, and every hook swallows its own errors.",
   "worst": "It has only 9 tests, and the README's install steps point at the author's own Windows path and a manual copy of the Desktop pane.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 0,
   "name": "homeassistant",
   "does": "Official Home Assistant integration: a gateway platform that turns HA state_changed events into agent messages, plus four tools to list, read and call HA services.",
   "useful": 4,
   "reliable": 4,
   "polish": 4,
   "creative": 3,
   "beyond": 5,
   "total": 25,
   "best": "It is a real platform adapter (register_platform) with about 176 tests, scoped get_secret for the token, timeouts and reconnect backoff, and a hard block on shell_command, python_script, hassio and rest_command.",
   "worst": "With no allowlist set, the agent can call sensitive services such as lock.unlock or alarm disarm without a person approving it.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 149368,
   "name": "hireko",
   "does": "A stdio MCP server that lets a recruiter sign in to HireKo, create live AI screening-interview links and fetch candidate match scores from a remote AWS Lambda backend.",
   "useful": 2,
   "reliable": 2,
   "polish": 2,
   "creative": 2,
   "beyond": 3,
   "total": 14,
   "best": "Browser sign-in with a state check, and Cognito tokens cached in a 0600 file per tenant.",
   "worst": "Its own VERIFICATION.md says `hermes plugins validate` fails and it must not be called install-ready; the password comes from a plain env var rather than Hermes's secret store; prod links use a hard-coded interview-test domain; and an unknown email falls back to recruiter@hireko.ai.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 152475,
   "name": "hallway-test",
   "does": "Runs five simulated users, each with limits enforced in code (low vision, screen reader, tremor, colour-blind, first-timer), through a task on a web page in headless Chromium driven by the Hermes model, then writes an HTML report and a share card.",
   "useful": 4,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 4,
   "total": 26,
   "best": "A genuinely new agent capability: persona limits are enforced in code (font-size and contrast filters, a 9px tremor), backed by 35 tests, a URL/DNS guard, a Desktop page, a dashboard and a bundled demo site.",
   "worst": "It needs Playwright and a browser, and the URL guard only logs (rather than blocks) redirects of sub-resources to private addresses.",
   "standout": true,
   "blocked": null
  },
  {
   "pr": 151289,
   "name": "habit",
   "does": "Watches Hermes's command-approval prompts, learns which commands you always approve, proposes a narrow command_allowlist pattern, and writes it only after /habit accept.",
   "useful": 4,
   "reliable": 4,
   "polish": 4,
   "creative": 4,
   "beyond": 4,
   "total": 24,
   "best": "It improves Hermes's own approval system safely: 49 tests cover over-broad globs against Hermes's matching logic, an owner lock on gateways, and the rule that nothing is written without /habit accept.",
   "worst": "README:61 promises it never proposes `docker kill`, but that is only excluded from glob forms; never_auto.py builds its strings 'from parts' so the security scanner skips the file; and config writes are not atomic.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 153753,
   "name": "mahj-trainer",
   "does": "An Agent Plugins v1 package (plugin.json, mcp.json, one skill) that points Hermes at a hosted Mahj Trainer MCP server for American mah jongg lessons, quizzes and rack reading.",
   "useful": 1,
   "reliable": 3,
   "polish": 3,
   "creative": 2,
   "beyond": 2,
   "total": 13,
   "best": "Clear, honest README, read-only tools with no account or key, and careful handling of the copyrighted NMJL card.",
   "worst": "The plugin folder contains no code, just a pointer to a closed remote server, for a very narrow audience; it reads more like a funnel to the author's app.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 153663,
   "name": "openrouter-balance",
   "does": "Shows the live OpenRouter credit balance as a Desktop status-bar chip, through a dashboard route that proxies /api/v1/credits with the key Hermes already holds.",
   "useful": 4,
   "reliable": 3,
   "polish": 2,
   "creative": 2,
   "beyond": 4,
   "total": 19,
   "best": "Small and focused: it reads the key through agent.secret_scope.get_secret, never sends it to the renderer, uses a 15s timeout, and refetches after each turn.",
   "worst": "There is no README, no tests and a register() that does nothing; the repo is just five files.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 152398,
   "name": "nachalo",
   "does": "Pairs two Hermes agents (and their people) from six spoken words plus four safety words, then carries end-to-end encrypted messages over an ntfy relay, where the agent only drafts and a person sends.",
   "useful": 3,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 5,
   "total": 27,
   "best": "A new channel between agents with strong safety design: the inbox is untrusted (the model sees only counts), sending needs a human, there are about 33 MITM/revocation/leak tests, and it adds a Desktop page, a CLI and secrets through get_secret.",
   "worst": "It needs Python 3.14 exactly and an external `nachalo` Rust wheel holding all the cryptography, so the post-quantum claims cannot be checked from this repo; the Desktop send route has no server-side confirmation.",
   "standout": true,
   "blocked": null
  },
  {
   "pr": 153685,
   "name": "onbrief",
   "does": "A pre_tool_call hook that checks outbound post text against a campaign rules file (hashtags, banned words and patterns, X-weighted length, links, near-duplicates) and blocks the call with a fix for each failing rule.",
   "useful": 3,
   "reliable": 4,
   "polish": 4,
   "creative": 3,
   "beyond": 4,
   "total": 22,
   "best": "It enforces what a prompt can only ask for: rules are validated on load and fail closed when broken, with 22 unit tests plus a real Hermes-loop e2e test and a block/approve/warn mode.",
   "worst": "A niche (social campaign managers), and it only guards tools whose names and argument fields match its globs.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 152669,
   "name": "lastgood",
   "does": "Records which user-chosen checks (file opens, text present, files exist, URL loads) passed against a fingerprint of the checked files, runs them after agent edits, and answers /blame for what changed since the last good state.",
   "useful": 3,
   "reliable": 4,
   "polish": 3,
   "creative": 3,
   "beyond": 4,
   "total": 21,
   "best": "Thorough: 134 tests, standard library only, paths kept inside the project, and SSRF-safe url_loads with pinned addresses checked on every redirect hop.",
   "worst": "The README says only the user can add url_loads checks, but the model can write lastgood-config.json directly; the repo is cluttered with build logs and AI-review notes, and there is no UI.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 152560,
   "name": "sabbath",
   "does": "Gives Hermes a weekly day of rest: it messages goodnight, pauses its cron jobs (exempting the ones you list), steers every turn away from work through pre_llm_call, keeps a basket of set-aside tasks, and sends a digest at the end.",
   "useful": 2,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 4,
   "total": 24,
   "best": "A fresh, well-made idea that uses Hermes's own cron, hooks, gateway and Desktop, resumes only the jobs it paused itself, and discloses every risky behaviour.",
   "worst": "Few users will want it; it imports fcntl, so it is Unix-only; it shells out to `hermes send`; and it has only 13 tests.",
   "standout": false,
   "blocked": null
  },
  {
   "pr": 151107,
   "name": "bot-shelf",
   "does": "Config-only Agent Plugins package (plugin.json, mcp.json, a skill) that connects Hermes to a remote MCP server for searching a directory of 9,000+ community Grok Bots.",
   "useful": 2,
   "reliable": 3,
   "polish": 3,
   "creative": 2,
   "beyond": 2,
   "total": 14,
   "best": "Honest disclosure of what it sends where; read-only apart from suggest_bot, with no key needed.",
   "worst": "It ships no code, the server's source is not published, and it helps you find bots for a different product (Grok) rather than improving Hermes; its own skill already covers this with plain curl.",
   "standout": false,
   "blocked": null
  }
 ]
}