llm-engram
Durable, explainable long-term memory for Simon Willison's llm CLI, powered by Engram (Lumetra).
llm-engram registers six tools that let any model running under llm store and recall facts across sessions, with semantic + knowledge-graph retrieval handled server-side.
Install
llm install llm-engram
(or, from a checkout: llm install -e .)
Configure
Get an API key at https://lumetra.io, then export it:
export LLM_ENGRAM_API_KEY=eng_live_...
# Optional: pin a default bucket so you don't have to repeat it
export LLM_ENGRAM_DEFAULT_BUCKET=my-project
# Optional: self-hosted Engram
export LLM_ENGRAM_API_BASE=https://engram.internal.example.com
ENGRAM_API_KEY is also accepted for parity with other Engram clients; LLM_ENGRAM_API_KEY wins if both are set.
Tools
| Tool | What it does |
|---|---|
engram_store_memory |
Save an atomic fact/preference/decision. Args: content, optional bucket. |
engram_query_memory |
Ask a natural-language question against memory. Args: question, optional bucket. |
engram_list_memories |
List raw memories in a bucket. Args: optional bucket, limit, offset. |
engram_list_buckets |
List buckets visible to this API key. Args: optional limit, offset. |
engram_delete_memory |
Delete one memory by memory_id. Args: memory_id, optional bucket. |
engram_clear_memories |
Wipe a bucket. Destructive. Args: optional bucket. |
Usage
List the tools:
llm tools
One-shot:
llm -T engram_store_memory "Remember: I prefer pytest over unittest."
llm -T engram_query_memory "What testing framework do I prefer?"
Chat with memory wired in:
llm chat -T engram_store_memory -T engram_query_memory \
-T engram_list_memories -T engram_list_buckets
Per-call bucket override:
llm -T engram_store_memory \
"Q2 OKR: ship v2 of the ingest pipeline" \
--tools-arg engram_store_memory bucket=work
Self-hosting
Point LLM_ENGRAM_API_BASE at any Engram-compatible REST endpoint. The plugin uses only the documented /v1/... routes.
Privacy
See PRIVACY.md.
License
MIT — see LICENSE.
Metadata
Release files for llm-engram 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| llm_engram-0.1.1.tar.gz | 5.5 kB | Without provenance | Details for llm_engram-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| llm_engram-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for llm_engram-0.1.1-py3-none-any.whl |
Total release size: 11.4 kB
Release files / llm_engram-0.1.1.tar.gz
| Download URL | llm_engram-0.1.1.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b1ea69ddcc9450d4e67ace3498aa43a2bdd4ada85969a41fd9dd15abb4f7413
|
|
BLAKE2b-256 checksum How to use checksums |
1aeb78fbe852c579cec0b89721295e8bbb77bc9fa14b55ffe31c7a8561101d3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / llm_engram-0.1.1-py3-none-any.whl
| Download URL | llm_engram-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
637cb1473d7add91fe19cf8a29cf17533a06c83a6c9bcc8df6c52dc571f8b7b5
|
|
BLAKE2b-256 checksum How to use checksums |
e810f118f93618132e2c77098f31b50f828e90f2b1a0c39ee51bda75fdad0631
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Security for llm-engram 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.