lunaris-integrations
Memory adapters that drop Lunaris into your existing agent framework. One thin, transport-agnostic layer — pick a transport once, reuse it across every adapter.
pip install -e "path/to/lunaris/integrations[langgraph]" # or [crewai] / [letta]
lunaris-integrations is not on PyPI yet. integrations-publish.yml
builds and uploads it on a v* tag, so from the next release on the line is:
pip install "lunaris-integrations[langgraph]"
Until that tag lands, install from a checkout with the -e form above — the
one the examples and CI both use, so it is the path that is
actually exercised.
Why a separate package
lunaris_integrations is a pure-Python package, separate from the native
lunaris core wheel. Importing the client + scope layer never loads the
compiled cdylib, and the framework deps (langgraph / crewai / letta) are
optional extras — never hard dependencies of Lunaris core.
The shared client
Every adapter is built over one LunarisClient, scope-bound at construction:
| Transport | Use when |
|---|---|
HttpLunarisClient |
You run lunaris-server; talks the MemoryProtocol HTTP verbs. |
SdkLunarisClient |
You embed the in-process lunaris wheel (pip install lunaris). |
StubLunarisClient |
Tests — records calls, returns canned hits (no backend). |
The HTTP transport binds scope to the JWT server-side; the partition scope
never travels on the wire. Namespaces map to scopes through the Lunaris
alphabet ([A-Za-z0-9_\-.]{1,128}, : rejected) so no key can byte-alias
another scope's partition.
Adapters
| Framework | Class | Maps |
|---|---|---|
| LangGraph | langgraph.LunarisStore |
aput/aget/asearch → ingest/recall |
| CrewAI | crewai.LunarisCrewAIStorage |
save/search/reset → ingest/recall/forget |
| Letta | letta.LunarisArchivalConnector |
insert/search → ingest/recall (connector shim + recipe) |
Letta ships as a client-backed connector shim + a recipe: its archival store is server-side, so there is no clean drop-in base to subclass yet. The insert/search mapping is identical to the other adapters.
Examples
Runnable per-framework examples live in ../examples/:
langgraph-lunaris/, crewai-lunaris/, letta-lunaris/.
Tests
pip install -e ".[langgraph,crewai,letta,test]" # from integrations/
pytest tests/
The unit layer runs against StubLunarisClient — no backend, model, or wheel.
Live HTTP/SDK + a real framework end-to-end is exercised by the examples.
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 lunaris_integrations-0.8.0.tar.gz.
File metadata
- Download URL: lunaris_integrations-0.8.0.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595fff27937b6bfb39ade90cb09c528f99caf2519469e9e1366cbb997f3e4c42
|
|
| MD5 |
e1aae6f4a5c503c7c1975f1bbf0f5ef7
|
|
| BLAKE2b-256 |
37b90b67a20f225892b677ced5be571c1f2e321169eb3c690a49cae8accf9315
|
File details
Details for the file lunaris_integrations-0.8.0-py3-none-any.whl.
File metadata
- Download URL: lunaris_integrations-0.8.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bc9a35699e0ce00010d4e462bfd12ecec6e307d5d4f39f9236b9f52ca5ea40e
|
|
| MD5 |
f46b4790e077f4bba258241e22aae19f
|
|
| BLAKE2b-256 |
4bbf313820a4763bb9083b3662e8b253cba7e889d984715d944a266432273aab
|