Skip to main content

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:

  1. Explicit api_key
  2. ENGRAMME_API_KEY
  3. 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 between 0.0 and 1.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:

  • AuthenticationError
  • RateLimitError
  • NotFoundError
  • ValidationError
  • APIError

All inherit from EngrammeError.

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

engramme-0.1.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

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

engramme-0.1.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

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

Hashes for engramme-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f1e6e83d8ed8e9b2a1aa90f1237c4021cb90a52a774d33e654a3f93b78b78ea2
MD5 eea48a36b3d94cbb5e1e9624248dddda
BLAKE2b-256 501bf99be47c33b732b0f8169ae07666d8b97c2215ad6f98e8a950251f8afa0a

See more details on using hashes here.

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

Hashes for engramme-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5439a664050b4b45ac264594fc183edf4e4f87b94e42c77d398d7a6d1d0a8f6d
MD5 224e32046d1d916d1ab2783bfb0644bc
BLAKE2b-256 2b5b3fe8a859a167a1c4ffa923e8b21508385bd1d3338d45cefbd3dcf7776a7d

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