Skip to main content

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 -f the 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eml_memory-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eml_memory-0.1.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

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

Hashes for eml_memory-0.1.0.tar.gz
Algorithm Hash digest
SHA256 859ff087723dadf1e9c53ede43e67bc7439eb0f729de0f1ad5403bce964da4b5
MD5 cdf01196b2a463a5a51996106b92041b
BLAKE2b-256 f5e910a9e9c005850248c7225be09a6df05f46da3c5e82113093967485e6871d

See more details on using hashes here.

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

Hashes for eml_memory-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed6f72d0a7833ab2bd824d25e6f4b0d7ce73d969e4946bdfd06afa277645db7f
MD5 98fb8bdea89ca557b23712bd72a5cd6f
BLAKE2b-256 c6bf5dbf24d64a485d47fb0f623c024220475bb045cff4206eca7a416b362431

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page