Python SDK for Engramme's human memory API
Project description
Engramme Python SDK
Engramme is the API to augment human memory.
Engramme turns documents, notes, transcripts, and other lived context into structured episodic memories. Its Large Memory Models (LMMs) extract who was involved, what happened, when it happened, and how experiences connect, so applications can help people recall relevant memories naturally.
Use the Python SDK to build with Engramme from notebooks, scripts, backend services, and internal tools.
The SDK currently supports the tested public workflow:
- Authenticate with an Engramme API key.
- Upload content with
memorize. - Retrieve raw memories with
recall. - Check API health.
It does not expose ask() or feedback submission yet. Feedback is currently handled by the Engramme webapp while we keep the public SDK contract focused and stable.
Installation
pip install engramme
Authentication
Pass an API key directly:
from engramme import Engramme
client = Engramme(api_key="eng_sk_...")
Or set an environment variable:
export ENGRAMME_API_KEY="eng_sk_..."
Then initialize without arguments:
from engramme import Engramme
client = Engramme()
You can also save a key locally:
engramme login
engramme whoami
engramme profiles
engramme logout
Local credentials are stored in ~/.engramme/config.yaml. Override that path with:
export ENGRAMME_CONFIG_PATH="/path/to/config.yaml"
Quickstart
from engramme import Engramme
client = Engramme()
print(client.health_check())
upload = client.memorize(
file=b"Meeting notes about the Q4 roadmap and launch timeline.",
user_name="Sanket",
source_type="text",
filename="meeting-notes.txt",
)
print(upload["item_id"])
results = client.recall("Q4 roadmap launch timeline")
for memory in results.get("memories", []):
print(memory)
Memorization starts asynchronous processing. A successful memorize response means the upload was accepted and a workflow started; the content may not be immediately recallable.
API
Engramme(...)
client = Engramme(
api_key=None,
profile=None,
base_url="https://memorymachines-gateway-prod-btf57kda.uc.gateway.dev",
timeout=30,
)
API key resolution order:
- Explicit
api_key ENGRAMME_API_KEY- Active profile in
~/.engramme/config.yaml
memorize(...)
Upload content for memory extraction and indexing.
client.memorize(
file="notes.txt",
user_name="Sanket",
item_id="optional-stable-id",
source_type="text",
)
file can be:
- A path string
- A
pathlib.Path - Raw bytes
When passing bytes, use filename if you want a specific uploaded filename:
client.memorize(
file=b"Some text",
user_name="Sanket",
source_type="text",
filename="note.txt",
)
recall(...)
Retrieve memories by semantic similarity.
results = client.recall(
"meetings about roadmap planning",
source="text",
enable_trace=True,
alpha=0.5,
)
Arguments:
text: Query text, max 1000 characters.source: Optional source filter.enable_trace: Include trace metadata when the API supports it.alpha: Optional hybrid search weight between0.0and1.0.
health_check()
ok = client.health_check()
Returns True when GET /v1/health returns HTTP 200.
Feedback
Feedback is not part of the public SDK surface yet.
The Engramme webapp supports rich recall feedback, including overall ratings, memory-level ratings, comments, and issue codes. That flow is currently owned by the webapp backend, not the Core API gateway used by this SDK.
When a stable SDK-facing feedback endpoint exists, the SDK should expose a simple method that lets developers rate recall quality without knowing the webapp telemetry schema.
Errors
The SDK raises:
AuthenticationErrorRateLimitErrorNotFoundErrorValidationErrorAPIError
All inherit from EngrammeError.
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 engramme-0.1.1.tar.gz.
File metadata
- Download URL: engramme-0.1.1.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1e6e83d8ed8e9b2a1aa90f1237c4021cb90a52a774d33e654a3f93b78b78ea2
|
|
| MD5 |
eea48a36b3d94cbb5e1e9624248dddda
|
|
| BLAKE2b-256 |
501bf99be47c33b732b0f8169ae07666d8b97c2215ad6f98e8a950251f8afa0a
|
File details
Details for the file engramme-0.1.1-py3-none-any.whl.
File metadata
- Download URL: engramme-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5439a664050b4b45ac264594fc183edf4e4f87b94e42c77d398d7a6d1d0a8f6d
|
|
| MD5 |
224e32046d1d916d1ab2783bfb0644bc
|
|
| BLAKE2b-256 |
2b5b3fe8a859a167a1c4ffa923e8b21508385bd1d3338d45cefbd3dcf7776a7d
|