AI and agents12 min read

Hermes Agent 0.22: what's new and how to update

What's new in Hermes Agent 0.22: stable releases, a free start in Desktop, Windows via MSIX, local models, 600 plugins and how to update safely.

Hermes Agent 0.22: what's new and how to update
Contents

Nous Research has released Hermes Agent 0.22.0, a new version of the open-source AI agent that people here usually just call Hermes. The release notes are dated 13 October; here in Thailand the release appeared on the morning of the 14th. It’s the first major release under the new rules: stable versions now go through the full set of checks on every system before publication, and installs from source move from release to release by default rather than following every commit to main. For anyone who keeps the agent on a server and doesn’t want to find out in the morning that something broke overnight, this is the main news of the release.

The scale is unusual too. Since 0.21.0, around 24,000 commits and 6,000 pull requests from roughly 2,500 contributors have gone into the project. By volume of changes, that’s two and a half times more than in 0.21.0. 0.22.0 also collects and documents all the interim fixes from 0.21.1–0.21.7. The team called it The Threshold Release: in mythology Hermes is the god of doors and boundaries, and almost everything in this version is about making it easier for a person to cross the threshold and start using the agent.

The stable channel: what’s changed in updates

Previously, hermes update on an install from source pulled the latest main, with everything that had been merged into it that day. Now versions are numbered by SemVer, and before release each one goes through checks: source, Docker, Nix, signed desktop builds, installation and updating on every system. 0.21.6 and 0.21.7 were the first to pass the new checks, and 0.22.0 is the first major release under the same rules. Forks stay on main, and an install that has already moved ahead of the latest release will simply wait for the next one.

Anyone who wants changes straight away can go back to main with hermes update --set-channel main or with the switch in the desktop app (Settings, then About). Moving to an older version is explicitly marked as a rollback and requires confirmation, and re-running the installer keeps you on the channel you chose. Update checks have got lighter too: instead of a git fetch every half hour, there’s one request to GitHub a day.

Under the hood there’s now a single package manager, hermes pm. It keeps pinned, hash-verified versions of Python, Node, FFmpeg, Chromium and the rest of the environment. A new environment is built alongside the old one, and the switch happens only after a check, so an update interrupted halfway no longer leaves the agent half taken apart.

Hermes Agent Desktop on Windows and macOS

The desktop app is now distributed as a ready-made signed package: it has its own Python and Node inside, it updates itself, and nothing gets built on first launch. On Windows it’s MSIX for x64 and ARM64, installed through App Installer or from the Microsoft Store, but only on Windows 11 22H2 and newer. On macOS it’s a build for Apple Silicon processors, signed and notarised by Apple. If you’re on Windows 10, installing from source is still an option: the install.ps1 installer now works there too.

A free start, connectors and local models

Hermes Agent itself is a free, open-source project under the MIT licence; what you pay for is the models. 0.22 brings two ways to start at no cost at all: a trial model for the first setup and local models on your own hardware. And connectors will be useful to long-time Hermes users too.

The first is setup through a conversation. On a computer where Hermes has never been run, the desktop app opens not on a settings screen but on a short chat. One card at a time, the agent asks for a name, a colour and a layout, which apps to connect and which plugins to install, shows you the interface and suggests a few first tasks. This chat runs on the free trial model nous/welcome, so you don’t need an API key to start. Important caveats: the free model is given only to a first desktop install with no provider and no Nous account, and only once per system user; the CLI, the TUI and the messaging gateway don’t get it. Existing installs and connections to a remote backend (SSH, URL, Cloud) don’t show this flow automatically.

The second is connectors. The agent has learned to work inside familiar services such as Gmail, Linear and Notion through the Nous tool gateway: ask for an app, sign in once in the browser, and the tools are available in the same turn of the conversation. You don’t need a Nous account to start: Hermes sets up a free, connectors-only account by itself. The desktop app has a new Connectors page where cloud apps and your MCP servers live in one list, and one app can have several named accounts, say a work Gmail and a personal one. Connectors can send your local files as attachments and save files the services return. If you don’t need this on a server, tools.connectors.enabled: false switches them off, and nous.guest: false switches off the automatic guest accounts.

The third is one-click local models. Hermes installs and updates llama.cpp for your hardware itself (CPU, CUDA, Metal, Vulkan, ROCm), rates each catalogue model by video memory and RAM, and suggests the best build among those that fit entirely into video memory; it won’t recommend 27B for hardware it runs badly on. No account, no key, and the data doesn’t leave the machine. The catalogue has Qwen3.8 27B, Qwen3.8 Flash Next, DeepSeek V4 Flash and any GGUF from Hugging Face. To get there in the desktop app, go to Settings, then Providers, then Local Models; in the terminal, run hermes model and pick Local models.

The plugin catalogue: 600 entries and memory outside the core

The plugin catalogue was launched in this same cycle, and by the release it had 600 entries. Each one is pinned to a verified commit and installs from the desktop app or with a command. The catalogue rules keep out plugins that patch Hermes internals or contain binaries that can’t be checked: 11 such plugins have already been removed from the catalogue, but installed copies keep working.

Along with the catalogue, some integrations were moved out of the core. The memory providers Honcho, Supermemory, Hindsight, Mem0, OpenViking and Holographic moved into separate plugins maintained by their authors, and so did Home Assistant, Spotify and Langfuse. Existing installs migrate automatically on update or first launch, and the data stays where it is. ByteRover and RetainDB remain in the core as memory providers. One caveat: plugin dependencies are now resolved together with the core’s, and if a plugin conflicts with them after an update, Hermes will disable it rather than break entirely. So after hermes update it’s worth checking that the plugins you need are enabled.

My handle appears in this part of the release notes too: I now maintain holographic, and the catalogue has three more of my plugins — hermes-cron, hermes-dreaming and hermes-field-notes. If you used holographic, I’ve covered how to update without losing your accumulated facts in a separate article, and how the agent’s memory works in general here. What’s arrived in holographic since it left the core is in the article on version 0.17.

Models: Claude 5.5, GPT-6 and patience with provider failures

The model picker now has Claude Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5, GPT-6 Astra, Sol and Luna, GPT-6.1 Sol and Gemini 4 Argon, through Nous Portal, OpenRouter and direct connections where available. The model’s previous reasoning is now passed back to it by default on the following steps, on all providers that can read it, including after a session is resumed or the context is compressed. In a long multi-step task the agent loses the thread less often.

A useful detail for those whose agent runs on a schedule: on temporary provider errors (503, 529, timeouts), Hermes doesn’t end the turn straight away but tries to wait out the failure. It shows that it’s waiting and makes no more than agent.auto_recovery_cycles attempts, five by default. Model selection has got smarter too: you can mark favourite models, see how much is left on your subscription and when the limit resets, and choose the reasoning level right when picking the model, for example /model X --reasoning high.

For those whose bot lives on a server

The most noticeable change for server installs is one gateway and one backend per machine instead of a separate process for each profile. A new profile connects its bots without a restart, while keys, access lists, cron jobs and sessions stay separate for each profile. hermes update moves the old setup to the new one by itself if nothing conflicts. You can stop or start a single profile with hermes -p <profile> gateway stop|start, and temporarily stay on the old setup with gateway.standalone: true.

Server installs also get fixes for hangs, context compression and loops. If the agent’s reply gets stuck and isn’t moving, a watchdog timer (agent.turn_liveness.timeout_s, 600 seconds by default) interrupts it and frees the session. In tasks that run without a person, through the messaging gateway or on a schedule, looping tool calls are stopped forcibly, and five identical repeats in a row stop any tool. Context compression counts the real tokens the provider returned rather than bytes divided by four. If the model refuses to write a summary or the provider is overloaded, the history stays untouched, and an unfinished compression changes nothing. Telegram has an optional bots_require_mention that stops endless bot-to-bot conversations, and the extra.drop_pending_on_cold_boot: false setting keeps messages that arrived while the bot was off. And MCP servers on a machine without a browser can now be authorised with a device code: hermes mcp login <server> --flow device.

The browser agent has learned to sign in to sites with passwords from 1Password, Bitwarden or Hermes’s own encrypted vault. The model never sees the password itself, one-time confirmation codes don’t end up in the conversation, and autofilling a payment card and an address at checkout requires your confirmation. The Bot Screen feature gives a bot on a Linux gateway its own desktop, which the desktop app shows live: if the bot hits a CAPTCHA or two-factor authentication, you take over the screen, complete the step yourself and hand control back. It won’t work on its own: it’s off by default and needs extra packages on the server. If the bot runs in a Docker, SSH or Singularity sandbox, the screen and browser stay inside it rather than on the main machine.

Lighter in every sense

The codebase was simplified without changing behaviour: about 1.06 million lines became 698,000, a third fewer. The persistent prompt and tool descriptions got shorter too. About 19 rarely needed tools are now loaded only when the agent searches for them, and the desktop tool schema shrank from about 13,400 to 6,900 tokens on every call. Another ~2,100 tokens were cut from the persistent part of the prompt. For those who pay for tokens or run a model locally, that’s a noticeable saving on every turn.

The desktop app’s settings are now available in Russian, and all interface strings in the CLI, gateway, TUI and desktop app go through a single translation catalogue covering 16 languages.

What to check before updating

Before hermes update, it’s worth going through the list of changes that may behave unexpectedly.

  • Chats no longer reset on a timer. The idle and daily session_reset modes are gone; a new session is started with /new or /reset. If you relied on them, bear this in mind.
  • Old sessions are deleted automatically. sessions.auto_prune is now on by default: at startup, finished sessions inactive for more than 90 days are wiped. Pinned and open ones aren’t touched. If you want to keep everything, set sessions.auto_prune: false.
  • The email gateway requires authserv_id. Email now rejects forged senders, and until this parameter is set, mail isn’t delivered. If your agent receives email, set it up right after the update.
  • Python 3.14 is now the environment for managed installs; the package manager will install it itself. KittenTTS doesn’t work on 3.14.
  • The desktop app on Windows is MSIX only, and only on Windows 11 22H2 and newer; the old installers are gone. On macOS the default build is for Apple Silicon only.
  • For plugin authors: the compatibility layer for old imports, hermes sync and the built-in tirith scanner have been removed. Tools have been renamed (todo to todo_list, cronjob to cronjob_manage, process to process_manage); the old names still work for now.

How to update Hermes Agent: from source and in Docker

On an install from source, it’s the usual command. If you’re not on a fork and haven’t switched the channel by hand, updates from now on will follow stable releases:

hermes update

In Docker, the official image is nousresearch/hermes-agent; the stable and latest tags now move only when a release is published:

docker pull nousresearch/hermes-agent:latest

If you use the unofficial sirmark/hermes-agent image, an automatic pull request updating it to 0.22.0 is already open. At the time of publication it hadn’t been merged yet, so this image will get the new version once it is.

If you run several profiles, check hermes gateway status after updating: the command will explain why the gateway couldn’t switch to serving all profiles with one process, and you can move them over manually with hermes gateway migrate --multiplex.

If you don’t have Hermes yet, start with installing it and connecting it to Telegram, then setting it up after installation and a safe start in Docker. Where to find plugins in that 600-entry catalogue, and how to check third-party ones before installing them, is in my overview of skills and plugins.

Sources

  1. Hermes Agent v0.22.0 — The Threshold Release: release notes
  2. Hermes Agent: the plugin catalogue
  3. docker-hermes-agent: updating the image to v0.22.0 (PR #33)
Your people nearbyAsk your own crowd — the chat answers faster than searchThe main chat of IT Party Pattaya: IT people, digital professionals and entrepreneurs who have already been through the same thing. Since July 2023. The chat is in Russian.Join the chat (in Russian)Need baht?Roubles and USDT to baht — inside the communityIT OBMEN has been running since 2023: roubles from any Russian bank or via SBP, USDT from Bybit and Binance. Cash delivered across Pattaya, a transfer to a Thai account or a withdrawal at an ATM. The rate is updated daily. Site in Russian.Terms and rate (in Russian)

Related reading