All plugins

calm-mode

When you get frustrated, your agent slows down. Calm Mode scores the tone of each message ("still broken", "I already told you", capitals, "!!", the same message twice); frustration builds and fades. Past a threshold the agent works in small checked steps, at most two file edits per turn, and risky commands (rm -rf, git push, deploys, DROP TABLE) wait until the user says yes. /calm shows the level and forces it on or off. No model calls, nothing stored.

salch-credToolsv0.1.0Updated 1 hour ago

About

When you get frustrated, your agent slows down. Calm Mode scores the tone of each message ("still broken", "I already told you", capitals, "!!", the same message twice); frustration builds and fades. Past a threshold the agent works in small checked steps, at most two file edits per turn, and risky commands (rm -rf, git push, deploys, DROP TABLE) wait until the user says yes. /calm shows the level and forces it on or off. No model calls, nothing stored.

calm-mode

When you get frustrated, your agent slows down.

You've seen it happen. The agent breaks something, you say "still broken", and it rushes into five more edits, a force push and a confident "Fixed!". By the third round you're typing in capitals.

A good colleague notices when you're annoyed and slows down. Calm Mode gives your agent that sense.

you:   it's still broken
you:   WTF, I ALREADY TOLD YOU IT'S THE SAME ERROR!!

[Calm Mode] The user is frustrated (had to repeat themselves, strong words, writing in capitals).
  - Start with one short sentence that states what you'll do now.
  - Make one change at a time, then check it before the next.
  - Don't say anything is fixed until you've checked it.
  ...

agent tries: git push origin main
  -> held: "Calm Mode: the user is frustrated, so risky commands wait for their OK."
agent tries: a 3rd file edit this turn
  -> held: "Stop here, check what you changed, and tell them the result."

How it works

1. It reads your tone, without a model. Each message gets a score from simple text rules:

| Sign | Points |
|---|---|
| "still", "again", "same error" | 1 |
| "doesn't work", "broken", "wrong" | 1 |
| "I already told you", "how many times" | 2 |
| Strong words ("wtf", "ffs", "useless"...) | 2 |
| Writing in capitals | 2 |
| "!!" or "??" | 1 |
| A flat "no" or "nope" | 1 |
| The same message sent twice | 2 |

A happy message ("thanks, works now") counts −1.

2. Frustration builds and fades. Your level is half of the previous level plus the new score. One grumpy message won't trigger it, but three in a row will. Careful mode starts at 3 and ends below 1.

3. In careful mode, rules are enforced in code, not just suggested:

  • The agent is told, at the start of each turn, to work in small, checked steps and not to claim "fixed" without checking.
  • At most 2 file edits per turn. Further edits are stopped with "check what you changed first".
  • Risky commands wait for your OK: rm -rf, git push, git reset --hard, publishing packages, deploys (Vercel, Netlify, Fly…), terraform apply, kubectl delete, DROP TABLE, and similar. Say "yes, go ahead" and they run.

Use it

/calm          the level, what it noticed, and the mode
/calm on       careful mode for this session, whatever your tone
/calm off      never careful in this session
/calm auto     back to reading your tone

Settings

plugins:
  entries:
    calm-mode:
      settings:
        threshold: 3     # level at which careful mode starts
        calm_below: 1    # careful mode ends below this
        max_edits: 2     # file edits per turn in careful mode

What it touches

  • Reads your messages to score their tone, in memory, per session. Nothing is written to disk.
  • Adds context to your turn (through pre_llm_call) only while careful mode is on.
  • Stops tool calls (through pre_tool_call) only in careful mode: risky terminal commands until you say yes, and edits beyond the per-turn limit.
  • No model calls, no network, no files, no dependencies.

Limits

  • English tone rules. Frustration in other languages is only caught through capitals, "!!" and repeated messages.
  • The risky-command list is a pattern list. It catches common destructive commands, not every one.

Development

pytest tests

30 tests cover tone scores, build-up and fading, the risky-command list, held commands and approval, the edit limit, sessions, and the commands.

License

MIT

README from the reviewed commit abdc314; it updates when the author re-pins.

More by salch-cred

12 plugins by salch-cred in the catalog.

salch-credaftercareYour agent checks its own work after the fact. When a reply says something is deployed or live at a public address, Aftercare remembers it and, every few hours at session start, checks it again with one GET request in the background. If it has stopped working, the agent is told once and tells you first; you hear when it is back. /aftercare lists and checks, and hermes aftercare check runs from cron. Never checks private networks or runs commands. Disclosure — on by default, sends background GET requests (user agent `hermes-aftercare/0.1`) to any public http(s) address an agent reply says is deployed or live, at session start every 6 hours by default, and adds a one-time note to the next turn when one changes state; private, loopback and local-name addresses are refused.Communitytoolssalch-credbluffDoes your model make things up? Bluff asks about things that sound real but don't exist (Python functions, built-in exceptions, chemical elements), mixed with real ones and phrased as if they all exist, and checks whether the model admits the made-up ones aren't real. The result is a bluff rate, with real items as a control. Every item is checkable by machine, so no model judges another. Runs on your active model through ctx.llm, no setup.Communitytoolssalch-credcrash-testA safety rating for AI agents. For one armed turn it breaks tools the way real systems break (timeouts, outages, empty or cut-off results), then rates what the agent did: retried, worked around it, told the truth, or claimed success anyway. 1-5 stars and an HTML report, comparable across models by seed. Blocked calls never run, silent faults only touch reads, and the agent gets no tools from it, so it cannot tell it is being tested. Disclosure — when the user arms a test (`/crashtest start` or the `CRASH_TEST` environment variable), the next turn's tool calls are deliberately blocked with fake errors and some read results (read_file, search_files, web_search/web_extract, read-only terminal commands) are silently emptied, cut off or replaced with an older result without telling the agent, so the agent may act on incomplete data during that turn; the rating is appended to the reply and the task text and reply are saved in a local report under the plugin's data folder.Communitytoolssalch-creddeja-fixStops the agent from putting back code that already failed. Every version of every file it writes in a session is fingerprinted and judged by the next test or build run, or by the user saying "still broken". An edit that would recreate a failed version is stopped once, naming when it failed and why; a second try goes through. Catches the same code reached by different edits, which Hermes' identical-call guard can't. /deja shows what is tracked. No model calls.Communitytools

Developer Mode

Explore built-in Hermes toolsets and actions.

HermesAgent

Developer?

Create a Hermes extension for Desktop or agent workflows.

Developer Section