Typed, append-only memory store for agentic Claude / LLM sessions. Hybrid text + structured-tag query.
Project description
eml-memory
Typed, append-only memory store for agentic Claude / LLM sessions.
This is the v0.1 carve-out of the structured agentic-memory system used across the Monogate project ecosystem. It gives any LLM agent a typed, append-only, queryable knowledge store that survives across sessions.
Install
pip install eml-memory
Quick start
$ eml-memory add fact "Buzzard drama: capacitor C7 spec mismatch" \
--source notes/buzzard.md --confidence high
added m_a1b2c3d4ef (fact)
$ eml-memory query "Buzzard drama"
1 match
[fact ] [high ] m_a1b2c3d4ef
Buzzard drama: capacitor C7 spec mismatch
source: notes/buzzard.md
Every entry has a typed schema:
| field | meaning |
|---|---|
id |
content + UTC timestamp hash |
type |
fact / decision / convention / todo / retraction |
content |
the main statement |
source |
optional citation |
confidence |
high / medium / low |
tags |
optional list of strings |
metadata |
optional structured dict |
Python API
from eml_memory import MemoryStore
store = MemoryStore.default() # ~/.eml-memory/store.jsonl
# write
store.add("fact", "Lean theorems = 50",
source="data/lean.md", confidence="high")
# read
for hit in store.query("Lean"):
print(hit.id, hit.content)
# retract
store.retract("m_a1b2c3d4ef", "superseded by 2026-05-01 audit")
The store object is project-agnostic; pass MemoryStore(path=...) to
point at a per-repo or per-feature JSONL file.
CLI
eml-memory add TYPE CONTENT [--source X] [--confidence high|medium|low]
[--tag T ...] [--project P]
eml-memory query TEXT [--type T] [--project P] [--tag T] [--limit N]
[--include-retracted] [--verbose] [--json]
eml-memory list [--type T] ...
eml-memory retract ENTRY_ID REASON
eml-memory dashboard
eml-memory version
Override the store path via $EML_MEMORY_STORE or --store PATH.
Storage format
Append-only JSONL — one entry per line. Retractions are first-class entries pointing at the retracted ID; the original entry is never overwritten. This means:
- You can
tail -fthe store from any process. - Concurrent writers converge on the next read.
- Audit log is the source file itself.
Roadmap
This is v0.1 — text + tag query only. Planned:
- v0.2 — caller-supplied embedding hooks for hybrid retrieval.
- v0.3 — sync adapters (Linear / Notion / GitHub issues).
- v1.0 — bundled embedding model + SQLite backend for high-volume use, plus the contradiction-scan / drift-check passes from the monogate-research curator.
License
PROPRIETARY-PRE-RELEASE.
Project details
Release history Release notifications | RSS feed
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 eml_memory-0.1.0.tar.gz.
File metadata
- Download URL: eml_memory-0.1.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859ff087723dadf1e9c53ede43e67bc7439eb0f729de0f1ad5403bce964da4b5
|
|
| MD5 |
cdf01196b2a463a5a51996106b92041b
|
|
| BLAKE2b-256 |
f5e910a9e9c005850248c7225be09a6df05f46da3c5e82113093967485e6871d
|
File details
Details for the file eml_memory-0.1.0-py3-none-any.whl.
File metadata
- Download URL: eml_memory-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed6f72d0a7833ab2bd824d25e6f4b0d7ce73d969e4946bdfd06afa277645db7f
|
|
| MD5 |
98fb8bdea89ca557b23712bd72a5cd6f
|
|
| BLAKE2b-256 |
c6bf5dbf24d64a485d47fb0f623c024220475bb045cff4206eca7a416b362431
|