Open source · MIT licence · Python 3.10+
Hermes Fleet Memory
One private memory for the AI agents on your work laptop, your home PC and your Telegram bot. They look things up only when a question needs it, an update replaces the old fact instead of piling up next to it, and work data never reaches your personal machine.
- memory tokens in prompts that don’t need it
- 0
- memory domains, gated on each machine
- 3
- INT8-quantised vectors in Qdrant
- 384-d
Your agents forget between machines
Every machine starts from zero, and the usual fix costs tokens on every message.
Run Claude Desktop on a work laptop, Cursor on a home PC and a Telegram bot on a server, and each one starts from nothing. What you set up on one machine is unknown to the others.
The usual fix is a memory plugin that pastes stored notes into the system prompt on every turn. That spends tokens on messages that never needed the memory, and syncing a flat memory between work and personal machines can leak company details into personal chats.
Fleet Memory is an MCP server instead. Your agent calls fleet_memory_search when a question needs context, and gets back only the cards that answer it.
Memory that updates instead of piling up
Change a fact once and every machine sees the new version, not both.
- Slots with fixed addresses. A write to
hardware / ramalways lands on the same point: its id is a UUID5 of domain, client id and slot name. - Last write wins. Each slot keeps a revision number. A write carrying an older timestamp than the stored one is rejected.
- Near-duplicate check. A note without a slot that is at least 0.95 cosine-similar to an existing note in the same domain replaces it instead of stacking up.
- Pinned or expiring. Slot cards are pinned. Other notes expire after 90 days unless pinned, and a cleaner archives them off the index.
Work stays at work
The boundary is enforced by the machine, not by asking the model nicely.
Each machine sets FLEET_HARD_DOMAIN to work, personal or all. The check runs inside the MCP server on that machine before any request is built, so a confused agent or a crafted prompt cannot reach another domain. Knowledge every machine should share goes in shared.
Relations, not only vectors
Ask what connects to a component, not only what sounds similar.
Reach the PC at home from anywhere
Check a GPU, fetch a file or put the machine to sleep from your phone.
Six tools reach the home PC through the bridge: desktop_status, desktop_exec, desktop_read_file, desktop_download_file, desktop_archive_folder and desktop_power. If the PC is off, the agent says so within seconds and answers from the last stored hardware card instead of hanging.
Hand work to a machine that is asleep
Queue a job now; the workstation runs it when it wakes and proves it did.
What your agent gets
MCP tools, available to Claude Desktop, Claude Code, Cursor and Hermes Agent.
Memory
- fleet_memory_search
- fleet_memory_store
- fleet_graph_query
Desktop bridge
- desktop_status
- desktop_exec
- desktop_read_file
- desktop_download_file
- desktop_archive_folder
- desktop_power
Task plane
- fleet_task_delegate
- fleet_task_status
Try it in 60 seconds
Standalone mode runs on one machine, with no VPS or Qdrant cluster to set up first.
git clone https://github.com/amrlazw/hermes-fleet-memory.git
cd hermes-fleet-memory
python setup.py --role standalone --non-interactive
python client/fleet_memory.py --test
Then register it with your agent. For Claude Code:
python client/fleet_memory.py --doctor
python client/fleet_memory.py --init --domain personal
claude mcp add fleet-memory -- python /absolute/path/to/hermes-fleet-memory/client/fleet_memory.py
For Hermes Agent, add it to ~/.hermes/config.yaml:
mcp_servers:
fleet-memory:
command: python3
args:
- /absolute/path/to/hermes-fleet-memory/client/fleet_memory.py
env:
FLEET_HARD_DOMAIN: all
When a second machine joins, choose where the memory lives:
| Option | You need | Good for |
|---|---|---|
| Managed cloud | A Qdrant Cloud free-tier cluster | Two or more machines, no server to run |
| Self-hosted VPS | Any Linux VPS | Full control of the data and TLS |
| Full fleet mesh | A home PC and a relay VPS | Commands and files on a PC behind NAT |
| Local task plane | The machines you already have | Delegated tasks with signed receipts |
Run it on the machines you already have
MIT licensed. Start with one laptop in standalone mode, then point a second machine at a Qdrant Cloud free tier or your own VPS.