Background memory consolidation plugin for Hermes
Project description
hermes-dreaming
A background memory consolidation plugin for Hermes, built around Hermes' small, always-prompt-visible memory model.
What it does
Hermes durable memory (MEMORY.md ≈2,200 chars, USER.md ≈1,375 chars) is scarce and injected into every session prompt. hermes-dreaming runs a periodic three-phase consolidation cycle:
- Light — scans recent sessions for candidate facts/preferences
- Deep — identifies patterns, contradictions, supersessions
- REM — scores candidates and applies at most a few high-confidence memory operations (
add,replace,remove)
A successful run may produce zero durable writes. The goal is highest future usefulness per character, not more memories.
Note: memory mutations take effect on the next session start (Hermes loads memory as a frozen snapshot at session init).
Install
pip install hermes-dreaming
Then enable in ~/.hermes/config.yaml:
plugins:
enabled:
- hermes-dreaming
Commands
/dreaming run — full cycle (schedules + manual)
/dreaming review — dry-run; proposes ops without mutating memory
/dreaming status — last run, candidate counts, memory usage
/dreaming compact — merge duplicates + remove obsolete; no new adds
CLI equivalents:
hermes dreaming run
hermes dreaming review
hermes dreaming status
hermes dreaming compact
hermes dreaming install-cron # register nightly 03:00 cron job
State files
All runtime state lives in ~/.hermes/dreaming/:
~/.hermes/dreaming/
├── DREAMS.md # human-readable audit diary
├── state.json # last run metadata
├── candidates.jsonl # staged Light-phase candidates
├── decisions.jsonl # all Deep/REM decisions (including rejections)
├── promotions.jsonl # applied memory operations (includes sidecar metadata)
├── runs/ # per-run JSON records
└── backups/ # timestamped MEMORY.md / USER.md snapshots
Configuration
dreaming:
enabled: true
schedule: "0 3 * * *"
max_changes_per_run: 3
Design
See docs/implementation-brief.md for the full design brief.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_dreaming-0.3.0.tar.gz.
File metadata
- Download URL: hermes_dreaming-0.3.0.tar.gz
- Upload date:
- Size: 34.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f102253849fe53245c0b8b7e26e74bec8a89b6d67508c3b33f357b970435c443
|
|
| MD5 |
150f50d0bf092496def791d4eb4b55b7
|
|
| BLAKE2b-256 |
61cc2d943ac5f5b7c4bf414716407c6f722d26f14c617ce04287e4d6bb09a099
|
Provenance
The following attestation bundles were made for hermes_dreaming-0.3.0.tar.gz:
Publisher:
publish.yml on alejandroiglesias/hermes-dreaming
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_dreaming-0.3.0.tar.gz -
Subject digest:
f102253849fe53245c0b8b7e26e74bec8a89b6d67508c3b33f357b970435c443 - Sigstore transparency entry: 1500635185
- Sigstore integration time:
-
Permalink:
alejandroiglesias/hermes-dreaming@25c094dadb34b1394bf0c86e5efd368eb43e57c8 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/alejandroiglesias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@25c094dadb34b1394bf0c86e5efd368eb43e57c8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hermes_dreaming-0.3.0-py3-none-any.whl.
File metadata
- Download URL: hermes_dreaming-0.3.0-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06c8e9b0ea508d6ab2f4c5530261b593c991d0b8871ebeb55082dbcf44adfed4
|
|
| MD5 |
278db01082bfde78674a7fdc0b65b8cb
|
|
| BLAKE2b-256 |
236f54b58e9a9aa8b2d7882b99f2887f6f2b9e2223510622fce8075bf5c66214
|
Provenance
The following attestation bundles were made for hermes_dreaming-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on alejandroiglesias/hermes-dreaming
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_dreaming-0.3.0-py3-none-any.whl -
Subject digest:
06c8e9b0ea508d6ab2f4c5530261b593c991d0b8871ebeb55082dbcf44adfed4 - Sigstore transparency entry: 1500635283
- Sigstore integration time:
-
Permalink:
alejandroiglesias/hermes-dreaming@25c094dadb34b1394bf0c86e5efd368eb43e57c8 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/alejandroiglesias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@25c094dadb34b1394bf0c86e5efd368eb43e57c8 -
Trigger Event:
release
-
Statement type: