Wiki · Start here

Security

The safeguards are on from the start — and in unattended runs a dangerous command is simply denied.

✅ Verified 15. 10. 2026Source: official documentation →📋 Copy for your AI
🛡️
The agent can run commands and change files — so it carries several safeguards that back each other up. You do not have to configure most of them; they are on from the start. This page sums up what protects you and when to add your own attention.

Six safeguards working together

SafeguardWhat it protects against
1. Who may talk to the agentStrangers. On Telegram and Discord an allowlist of accounts decides; anyone outside it is not obeyed
2. Approval of dangerous commandsIrreversible damage. Before running something that deletes or overwrites, the agent asks for your approval
3. File protectionOverwriting important files. Keys, agent settings and other sensitive paths are always blocked
4. Isolated runsEscaping the sandbox. Work can run in a separated environment (a container) with no way out to the rest of the server
5. Project file scanningInjected instructions. Texts and project files are scanned for attempts to manipulate the agent
6. Secret filteringLeaking keys. Commands and the sandbox receive only what makes sense — not the whole server environment

Command approval in practice

When the agent is about to do something dangerous, it asks instead of acting. You see the exact command and decide: allow once, allow permanently (it joins a permanent list), or deny.

ModeBehaviourWhen to use it
smart (default)Asks for dangerous commands, not for ordinary onesAlways — a sensible balance
YOLO (no asking)Needs no approval at allOnly on your own server with no one else's data, and when you know what you are doing

Some commands are refused no matter what, even in the no-asking mode — a hard floor that cannot be switched off. If it asks too often, you can allow a command permanently after approving it (then it stops asking), or let the recorded approval history suggest it for you with hermes approvals suggest.

When nobody is watching

Some runs happen unattended: nightly scheduled jobs, requests from other systems. There it does not help that nobody can answer — a dangerous command is simply denied. The same applies to single-query sessions and runs triggered from outside. That is what keeps automation safe: a job you wrote yesterday cannot delete the server at night.

Files and secrets

RuleReason
Keys and passwords belong in the agent's settingsNot in texts, skills or memory. Settings are one place you can watch, and they are not written into code backups
Protected paths are always blockedThe agent cannot overwrite its own settings or files holding credentials
A write sandbox can be enabledHERMES_WRITE_SAFE_ROOT narrows where the agent may write
Secrets do not leave the serverCommands receive only a limited selection of environment values, not everything

Who may talk to the agent

Once connected to Telegram or Discord, the agent is publicly reachable — so access is limited by an allowlist of accounts and, for direct messages, by pairing (a stranger must pair first, only then is the agent listening). More in Telegram and Discord.

Our tips

TipWhy
Do not enable the no-asking mode on a machine with other people's dataOne oversight can then take everyone's data. Leave the default until you have a reason
Keep secrets in the settingsNever write them into prompts, skills or notes for the agent
Only connect MCP servers from trusted sourcesA connection is third-party code with access to your server
Ask what is allowed now and thenInside a chat, /security shows what is permanently allowed and which paths are protected
Sort backups before permissionsSafeguards lower the risk; they do not replace a backup

When it does not work

SymptomCause and what to do
The agent keeps asking about the same thingAn approval is valid once. Allow the command permanently, or take the suggestion from hermes approvals suggest
The agent refuses even a safe commandThe command falls under the hard floor or under your own deny rule. Find another approach — better than disabling safeguards
The agent ignores me on TelegramYou are not on the allowlist, or pairing is missing
Writing to a file stopped workingThe path is protected, or the write sandbox is on. Check where writing is permitted
I want certainty that nothing happened on its ownLook at the run history and the list of approved commands

Where next

← Back to the wiki