Skip to main content

knos-hermes

Hermes keeps one memory per agent. Knos keeps one memory per repo, shared by every coding agent on the machine — Hermes, Claude Code, Cursor, OpenCode — and it knows which of them is working on what right now.

This is Knos as a Hermes MemoryProvider.

pip install knos-hermes
knos-hermes install

Then in Hermes: hermes memory setup and pick knos. Or set it by hand in $HERMES_HOME/config.yaml:

memory:
  provider: knos

No API key, no server, no model download, no ports. It reads and writes the same SQLite file the knos CLI already uses, so a decision Hermes records is visible to Claude Code on its next question.

Why knos-hermes install and not just pip install

Hermes discovers memory providers by scanning directories — bundled ones in plugins/memory/<name>/, and yours in $HERMES_HOME/plugins/<name>/. It does not read pip entry points: plugins/memory/__init__.py in hermes-agent has no importlib.metadata call anywhere, though CONTRIBUTING.md mentions one. So pip install alone cannot register anything. knos-hermes install copies the provider into the directory the loader actually scans, and knos-hermes where prints that path without touching anything.

What Hermes gets

Tool What it does
knos_recall Search past sessions, commits, CLAUDE.md, AGENTS.md and decision records. Every result names its source.
knos_remember Write one fact into the shared memory, so every other agent has it.
knos_claim Say what you are about to change. Other agents are refused answers about it.
knos_done Release it.

Recall is injected before each turn through prefetch, so Hermes sees what the other agents already worked out without being asked to look.

The part no other provider does

Claim a piece of work and the shared memory stops being the place other agents find out about it:

Withheld. the auth refactor (held by Claude Code) is being worked on right
now, so knos is not the place you find out about it. Ask them, or work on
something else.

Not a warning attached to an answer — no answer. It works in the other direction too: what Hermes claims is withheld from Claude Code and Cursor. Claims lapse after thirty minutes, and shutdown() releases whatever this session held so a clean exit never leaves the others blocked.

Not in the Hermes tree, on purpose

hermes-agent's CONTRIBUTING is explicit: "We are no longer accepting new memory providers into this repo… PRs that add a new directory under plugins/memory/ will be closed with a pointer to publish the provider as its own repo." This is that repo.

hermes-agent is deliberately not a dependency. The tests stub the MemoryProvider ABC instead, mirroring its abstract set, so installing this never drags the agent in.

Tests

pip install -e ".[dev]" && pytest

Including the one that matters: test_nothing_touches_the_network breaks socket.connect, bind, create_connection and getaddrinfo, then runs recall, remember, claim, release and shutdown. Every other Hermes memory provider needs an API key; this one must not open a socket at all.

Licence

MIT.

Metadata

Release files for knos-hermes 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for knos-hermes 0.1.0
File Size Uploaded
knos_hermes-0.1.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for knos-hermes 0.1.0
File Interpreter ABI Platform
knos_hermes-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / knos_hermes-0.1.0.tar.gz

Download URL knos_hermes-0.1.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d7bdab33a6c2946f14ad4a0dacfdc86b6f34df7677b8c8461a668bd059ec8e0e
BLAKE2b-256 checksum
How to use checksums
4bf7f541daa7127abdc9b51d3e0777aa41e7c17a7ebfb0e327e2ee8b7636c575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release files / knos_hermes-0.1.0-py3-none-any.whl

Download URL knos_hermes-0.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9161c1d2c5812d67e366ef3c0a4fe990f7a35bd8e24f93efaff1a03c6850710
BLAKE2b-256 checksum
How to use checksums
cfcc079236b8947fbfcb9756fa90416ce1d8c4df7d093729b4fc8f73f9592312
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page