All plugins

hermes-memory-pane

A Hermes Desktop pane for the built-in memory: see what the focused chat remembered, updated or forgot, and edit, delete or undo any entry without leaving the conversation. Works alongside the built-in memory; not a memory provider. Disclosure — a tool_execution middleware reads MEMORY.md and USER.md around each memory call and logs the entry-level changes to $HERMES_HOME/plugin-data/hermes-memory-pane/; the pane rewrites memory entries only when the user edits, deletes, adds or undoes one, through Hermes's own memory store; no network, credentials, shell commands or background processes.

Adolanium30Desktopv0.1.0Updated 19 days ago

About

A Hermes Desktop pane for the built-in memory: see what the focused chat remembered, updated or forgot, and edit, delete or undo any entry without leaving the conversation. Works alongside the built-in memory; not a memory provider. Disclosure — a tool_execution middleware reads MEMORY.md and USER.md around each memory call and logs the entry-level changes to $HERMES_HOME/plugin-data/hermes-memory-pane/; the pane rewrites memory entries only when the user edits, deletes, adds or undoes one, through Hermes's own memory store; no network, credentials, shell commands or background processes.

Memory Pane

See what Hermes remembered in this chat. Fix it in one click.

A Hermes Desktop pane for the built-in memory. Everything Hermes saves, updates or forgets in the chat you are looking at appears beside it, live.
Edit an entry, delete it, or undo what the agent did, without leaving the conversation.

POWERED BY HERMES AGENT  ·  COMMUNITY PLUGIN  ·  VERSION 0.1.0

What it does  ·  Watch the demo  ·  Install it  ·  Where your data goes

A marble Hermes rewrites a memory card with a stylus in a side panel docked beside a chat window

Powered by Hermes

Memory Pane is a community-built plugin for Hermes Agent. It reads the same MEMORY.md and USER.md files the built-in memory uses, and writes through Hermes's own memory store. It is not a memory provider and changes nothing about how Hermes remembers.

Two small halves do the work. A tool_execution middleware notes what each memory call changed and which chat made it. The Desktop pane shows those changes for the focused chat, next to everything in memory.

The Memory pane beside a chat in Hermes Desktop: Hermes remembered three facts, then updated one

Memory you can see

| | |
| --- | --- |
| This chatEach change the focused chat made: Remembered, Updated with the old text struck through, and Forgot. Background memory review counts too, since it runs under the chat's session. | All memoryEvery entry in About you (USER.md) and Notes (MEMORY.md), with how much of each character limit is used. Entries changed in this chat have a dot. |
| Fix itHover an entry to edit or delete it. Add writes a new one. | Undo itTake back an entry Hermes added or updated, or Restore one it forgot. |

Small decisions, already made

  • Every write goes through Hermes's memory store, with the same file lock, character limits and injection scan the agent gets. A refused write shows Hermes's reason and changes nothing.
  • Undo refuses when an entry has changed again since. Edit it directly instead, so nothing newer is lost.
  • Hermes loads memory into the system prompt when a chat starts. Your fixes apply to new chats, and the pane says so after each one. Tell the current chat if it needs to know now.
  • The recorder never changes, delays or retries a memory call. If memory can't be read, the call runs as usual and nothing is recorded.
  • The pane polls every 4 seconds and follows whichever chat you focus.
  • Recorded changes are kept for 90 days.

Make it yours

Install

hermes plugins install Adolanium/hermes-memory-pane --enable

Restart Hermes. Then turn on Memory in Capabilities → Plugins and open it on the right (Ctrl+J), or run Open memory pane from the command palette.

Memory Pane needs Hermes Agent 0.22.2 or later, with Hermes Desktop.

Profiles

The agent half records per profile. Install and enable it in every profile you want to follow:

hermes -p <profile> plugins install Adolanium/hermes-memory-pane --enable

Check it

hermes plugins validate . --install-deps

Privacy you can explain in one breath

memory tool call  →  read MEMORY.md / USER.md before and after  →  changes.sqlite3 in your Hermes home  →  the pane
  • What it reads. MEMORY.md and USER.md in the active profile's memories folder, around each memory call and while the pane is open.
  • What it writes. Memory entries, only when you edit, delete, add or undo in the pane. Its own change log at $HERMES_HOME/plugin-data/hermes-memory-pane/changes.sqlite3.
  • Nothing else. No network calls, no credentials, no shell commands, no background processes, no telemetry.

Compatibility

| Hermes Agent | Desktop | Status |
| --- | --- | --- |
| 0.22.2 (minimum) | Windows 11 | Tested by hand in the app |

Limits

  • Only the built-in memory is covered. External memory providers keep their own records.
  • A call that replaces one entry shows as Updated. When one call changes several entries, an old and a new entry pair up only if their text is similar; otherwise they show as Forgot plus Remembered.
  • Edits made outside Hermes, such as in a text editor, show in All memory but not in This chat.
  • Changes made before the plugin was enabled are not in This chat.
  • The pane reads the backend Desktop is connected to. A chat that belongs to another profile's backend shows after you switch to it.
  • The plugin writes through tools.memory_tool.load_on_disk_store, a Hermes internal, so it shares the agent's lock and limits. A Hermes release that moves it needs a plugin update.

License

MIT.

Community project

Memory Pane is an independent community plugin. It is not affiliated with, endorsed by, sponsored by, or officially associated with Nous Research or the Hermes Agent project. Hermes, Hermes Agent and Nous Research are names and marks belonging to their respective owners.

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

More by Adolanium

25 plugins by Adolanium in the catalog.

AdolaniumgadgetTalk to your Hermes from small ESP32 devices with a screen, microphone and speaker: hold a button, ask, and hear the answer. Adds a gateway platform where each device is a chat, plus tools to list devices, show a card on a screen and run device actions (LEDs, relays). Disclosure — the gateway listens for devices on a WebSocket port (8765, all interfaces by default; plain ws:// unless tls_cert/tls_key are set). New devices need a Hermes pairing code unless listed in GADGET_ALLOWED_USERS; GADGET_ALLOW_ALL_USERS skips pairing (development only). A paired device answers the agent's command approvals for its own chat (allow once or deny), within Hermes's approval timeout. The first approved device becomes the platform's home channel by default. Session hooks feed a dashboard on paired devices with each agent session's platform, a short id and its state (idle, busy, waiting for approval); a device that can switch profiles also sees the offered profiles' sessions. Optional profile switching (off unless `profiles` is set in the default profile's gadget config) lets a device paired on the default profile talk to the listed profiles; each profile approves the device through its own pairing flow (the device shows the `hermes -p <profile> pairing approve` command), the plugin writes nothing into other profiles, and revoking the device in the default profile sends it back there. A paired gadget that draws faces gets the answering profile's face: its `gadget-face.bin`, or its Hermes avatar (`assets/avatar.*`) converted with Pillow when installed; the plugin only reads these files, and `profile_faces: false` turns this off. `platforms.gadget.extra.stt_language` sets the transcription language of gadget recordings through the `pre_transcription` hook; other platforms' audio is untouched. Spoken replies that are not WAV are converted with the local ffmpeg; Opus reply audio uses the host's libopus when installed (loaded with ctypes, not bundled). `hermes gadget update --latest` downloads firmware from this repository's GitHub releases, checks size and SHA-256 against the release manifest (files carry build provenance attestations) and sends it to the device. A device that advertises `camera.capture` returns stills that are saved as PNGs under `~/.hermes/gadgetpix/` and kept until removed by hand. A Hermes Desktop page (`desktop/plugin.js`, plugin SDK only) runs a gadget in the window that connects to the local gateway as a device of its own: its device key, and the gateway access token when one is required, are kept in the page's plugin storage, it pairs like any device, and it uses the microphone only while its talk button or Space is held. The plugin's dashboard routes, behind the dashboard's login, can approve the pairing code a device is showing and send a card or run an advertised action on a connected, paired device; the requests pass through files under plugin-data/gadget/desk/. Otherwise writes only under plugin-data/gadget/. Uses Hermes's own STT, TTS and image cache; no telemetry. Independent community project, not affiliated with Nous Research.Communityplatform518Adolaniumhermes-resetwatchTrack subscription quotas and reset times in Hermes Desktop. Disclosure — probe.py re-executes itself under the Hermes Python interpreter located via HERMES_PYTHON / VIRTUAL_ENV / the parent process or the Hermes installer's managed venv (HERMES_HOME/installs). Every credential read is read-only and nothing is refreshed or stored: it reads provider API keys from the process environment, the Hermes .env (through Hermes's get_secret helper, else read directly), the Vaultwarden plugin's local secret cache (cache/vaultwarden_cache.json, only when Vaultwarden is the sole enabled secret source, keyed by a hash of BW_SESSION, which is never sent) and Docker s6 container env files; Hermes's saved OAuth logins (the credential pool through Hermes's read_credential_pool helper, else auth.json directly, and HERMES_HOME/.anthropic_oauth.json); and other coding-assistant CLIs' local logins: Claude Code (credentials file, macOS keychain or Windows Credential Manager), Codex, Cursor (macOS keychain and the IDE's state.vscdb, opened read-only), Kimi, Grok, ZCode and Command Code. For GitHub Copilot (on by default) it tries COPILOT_GITHUB_TOKEN / GH_TOKEN / GITHUB_TOKEN (through Hermes get_secret, else the process environment), then the Copilot editor's apps.json / hosts.json, then runs gh auth token (prompts disabled, 3-second limit), trying each token in turn until GitHub accepts one. For Codex, a 401 or 403 is retried once with another saved login for the same account. It sends each key only to its own vendor's usage endpoint, presenting the vendor client's identity headers where a private endpoint expects them (Claude Code and Codex CLI user agents, the Grok CLI client headers, and for Copilot the VS Code / Copilot Chat editor headers on api.github.com/copilot_internal/user, which GitHub does not document); environment variables such as GROK_CLI_CHAT_PROXY_BASE_URL (honored only for https grok.com / x.ai hosts), CLAUDE_CONFIG_DIR, CODEX_HOME and GROK_HOME change which host or file it uses. Usage results are cached under HERMES_HOME/cache/resetwatch, never tokens. It exposes nothing to the model: it is a Desktop page only.CommunityDesktop app83Adolaniumhermes-rssRead RSS and Atom feeds and discuss articles in Hermes Desktop. Disclosure — feeds and full articles are fetched with curl through the gateway's shell.exec on the connected Hermes host (public-IPv4 SSRF guard); opt-in AI grading sends article excerpts to your configured model and creates HERMES_HOME/skills/rss-importance-grading/SKILL.md if missing; opt-in image loading fetches publisher images directly from Desktop.CommunityDesktop app65Adolaniumhermes-tailscaleBrowse Tailscale devices and connect to remote Hermes instances in Hermes Desktop.CommunityDesktop app60

Developer Mode

Explore built-in Hermes toolsets and actions.

HermesAgent

Developer?

Create a Hermes extension for Desktop or agent workflows.

Developer Section