# pramila180/memori architecture

> Architecture diagram of the GitHub repository pramila180/memori, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pramila180/memori
- Repository: https://github.com/pramila180/memori

## Overview

Memori is a multi-language agent-memory product: Python and TypeScript SDKs, a shared Rust core, database adapters, and agent integrations. The main workflow attributes an LLM interaction, captures conversation or execution activity, augments it into structured memories, persists it, and retrieves relevant context for later requests. Separate branches cover BYODB and database provisioning, cloud/API access, and agent-specific integrations. Source evidence is sampled and incomplete; edges for documented but unsampled capabilities rely on README statements, and uncertain implementation links are omitted.

Main entry points: [`core/src/retrieval/pipeline.rs`](https://github.com/pramila180/memori/blob/main/core/src/retrieval/pipeline.rs) (Recall pipeline), [`memori/__init__.py`](https://github.com/pramila180/memori/blob/main/memori/__init__.py) (Python SDK), [`memori-ts/src/core/engine.ts`](https://github.com/pramila180/memori/blob/main/memori-ts/src/core/engine.ts) (TypeScript SDK), [`memori/memory/augmentation/_manager.py`](https://github.com/pramila180/memori/blob/main/memori/memory/augmentation/_manager.py) (Memory augmentation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sdk["SDKs and orchestration"]
  node_py_sdk["Python SDK<br/>[__init__.py]"]
  node_ts_sdk["TypeScript SDK<br/>[engine.ts]"]
  node_llm_hooks["LLM hooks"]
  node_rust_bridge["Native engine bridge<br/>[engine.rs]"]
end

subgraph group_memory["Memory lifecycle"]
  node_capture["Conversation capture<br/>[_manager.py]"]
  node_augmentation["Memory augmentation<br/>[_manager.py]"]
  node_rust_augmentation["Augmentation pipeline<br/>[pipeline.rs]"]
  node_embeddings["Embedding generation<br/>[api.rs]"]
end

subgraph group_data["Storage and retrieval"]
  node_recall["Recall pipeline<br/>[pipeline.rs]"]
  node_search["Fact search<br/>[api.rs]"]
  node_storage_manager["Storage manager<br/>[manager.rs]"]
  node_sql_drivers["SQL drivers<br/>[mod.rs]"]
  node_python_storage["Python storage adapters<br/>[_registry.py]"]
  node_ts_storage["TypeScript storage<br/>[manager.ts]"]
  node_databases[("BYODB database")]
end

subgraph group_services["Cloud and provisioning"]
  node_cloud_api["Memori Cloud API"]
  node_provisioning["Database provisioning<br/>[_manager.py]"]
end

subgraph group_integrations["Agent integrations"]
  node_openclaw["OpenClaw plugin<br/>[index.ts]"]
  node_hermes["Hermes provider<br/>[__init__.py]"]
  node_claude_mcp["Claude Code MCP<br/>[index.ts]"]
end

node_developer(("Application or agent"))

node_developer -->|"registers LLM"| node_py_sdk
node_developer -->|"registers LLM"| node_ts_sdk
node_py_sdk -.->|"integrates LLM"| node_llm_hooks
node_llm_hooks -.->|"captures turns"| node_capture
node_capture -->|"submits activity"| node_augmentation
node_augmentation -.->|"requests augmentation"| node_cloud_api
node_augmentation -.->|"queues writes"| node_databases
node_rust_bridge -.->|"invokes pipeline"| node_rust_augmentation
node_rust_augmentation -->|"calls API"| node_cloud_api
node_rust_augmentation -->|"writes batch"| node_storage_manager
node_recall -->|"fetches candidates"| node_storage_manager
node_recall -->|"ranks facts"| node_search
node_recall -.->|"uses query vectors"| node_embeddings
node_storage_manager -->|"dispatches by dialect"| node_sql_drivers
node_sql_drivers -.->|"queries"| node_databases
node_py_sdk -.->|"exposes BYODB"| node_python_storage
node_python_storage -.->|"adapts connections"| node_databases
node_ts_sdk -->|"loads native engine"| node_rust_bridge
node_ts_sdk -->|"configures storage"| node_ts_storage
node_ts_storage -.->|"adapts connections"| node_databases
node_developer -->|"installs plugin"| node_openclaw
node_openclaw -->|"captures and recalls"| node_cloud_api
node_developer -->|"configures provider"| node_hermes
node_hermes -->|"captures and recalls"| node_cloud_api
node_developer -->|"connects agent"| node_claude_mcp
node_claude_mcp -->|"accesses memory"| node_cloud_api
node_developer -->|"requests database"| node_provisioning
node_provisioning -->|"provisions service"| node_cloud_api
node_provisioning -.->|"configures connection"| node_databases

click node_py_sdk "https://github.com/pramila180/memori/blob/main/memori/__init__.py"
click node_ts_sdk "https://github.com/pramila180/memori/blob/main/memori-ts/src/core/engine.ts"
click node_llm_hooks "https://github.com/pramila180/memori/blob/main/memori/llm/pipelines/conversation_injection.py"
click node_rust_bridge "https://github.com/pramila180/memori/blob/main/core/bindings/node/src/engine.rs"
click node_capture "https://github.com/pramila180/memori/blob/main/memori/memory/_manager.py"
click node_augmentation "https://github.com/pramila180/memori/blob/main/memori/memory/augmentation/_manager.py"
click node_rust_augmentation "https://github.com/pramila180/memori/blob/main/core/src/augmentation/pipeline.rs"
click node_embeddings "https://github.com/pramila180/memori/blob/main/core/src/embeddings/api.rs"
click node_recall "https://github.com/pramila180/memori/blob/main/core/src/retrieval/pipeline.rs"
click node_search "https://github.com/pramila180/memori/blob/main/core/src/search/api.rs"
click node_storage_manager "https://github.com/pramila180/memori/blob/main/core/src/storage/manager.rs"
click node_sql_drivers "https://github.com/pramila180/memori/blob/main/core/src/storage/drivers/mod.rs"
click node_python_storage "https://github.com/pramila180/memori/blob/main/memori/storage/_registry.py"
click node_ts_storage "https://github.com/pramila180/memori/blob/main/memori-ts/src/storage/manager.ts"
click node_provisioning "https://github.com/pramila180/memori/blob/main/memori/provisioning/_manager.py"
click node_openclaw "https://github.com/pramila180/memori/blob/main/integrations/openclaw/src/index.ts"
click node_hermes "https://github.com/pramila180/memori/blob/main/integrations/hermes/src/memori_hermes/__init__.py"
click node_claude_mcp "https://github.com/pramila180/memori/blob/main/integrations/claude-code/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_py_sdk,node_ts_sdk,node_llm_hooks,node_rust_bridge toneBlue
class node_capture,node_augmentation,node_rust_augmentation,node_embeddings toneAmber
class node_recall,node_search,node_storage_manager,node_sql_drivers,node_python_storage,node_ts_storage,node_databases toneMint
class node_cloud_api,node_provisioning toneRose
class node_openclaw,node_hermes,node_claude_mcp,node_developer toneIndigo
```

## Components

### SDKs and orchestration

- [Python SDK](https://github.com/pramila180/memori/blob/main/memori/__init__.py): `memori/__init__.py`
- [TypeScript SDK](https://github.com/pramila180/memori/blob/main/memori-ts/src/core/engine.ts): `memori-ts/src/core/engine.ts`
- [LLM hooks](https://github.com/pramila180/memori/blob/main/memori/llm/pipelines/conversation_injection.py): `memori/llm/pipelines/conversation_injection.py`
- [Native engine bridge](https://github.com/pramila180/memori/blob/main/core/bindings/node/src/engine.rs): `core/bindings/node/src/engine.rs`

### Memory lifecycle

- [Conversation capture](https://github.com/pramila180/memori/blob/main/memori/memory/_manager.py): `memori/memory/_manager.py`
- [Memory augmentation](https://github.com/pramila180/memori/blob/main/memori/memory/augmentation/_manager.py): `memori/memory/augmentation/_manager.py`
- [Augmentation pipeline](https://github.com/pramila180/memori/blob/main/core/src/augmentation/pipeline.rs): `core/src/augmentation/pipeline.rs`
- [Embedding generation](https://github.com/pramila180/memori/blob/main/core/src/embeddings/api.rs): `core/src/embeddings/api.rs`

### Storage and retrieval

- [Recall pipeline](https://github.com/pramila180/memori/blob/main/core/src/retrieval/pipeline.rs): `core/src/retrieval/pipeline.rs`
- [Fact search](https://github.com/pramila180/memori/blob/main/core/src/search/api.rs): `core/src/search/api.rs`
- [Storage manager](https://github.com/pramila180/memori/blob/main/core/src/storage/manager.rs): `core/src/storage/manager.rs`
- [SQL drivers](https://github.com/pramila180/memori/blob/main/core/src/storage/drivers/mod.rs): `core/src/storage/drivers/mod.rs`
- [Python storage adapters](https://github.com/pramila180/memori/blob/main/memori/storage/_registry.py): `memori/storage/_registry.py`
- [TypeScript storage](https://github.com/pramila180/memori/blob/main/memori-ts/src/storage/manager.ts): `memori-ts/src/storage/manager.ts`
- **BYODB database**

### Cloud and provisioning

- **Memori Cloud API**
- [Database provisioning](https://github.com/pramila180/memori/blob/main/memori/provisioning/_manager.py): `memori/provisioning/_manager.py`

### Agent integrations

- [OpenClaw plugin](https://github.com/pramila180/memori/blob/main/integrations/openclaw/src/index.ts): `integrations/openclaw/src/index.ts`
- [Hermes provider](https://github.com/pramila180/memori/blob/main/integrations/hermes/src/memori_hermes/__init__.py): `integrations/hermes/src/memori_hermes/__init__.py`
- [Claude Code MCP](https://github.com/pramila180/memori/blob/main/integrations/claude-code/index.ts): `integrations/claude-code/index.ts`

### Other components

- **Application or agent**

## Connections

- Application or agent → Python SDK: registers LLM (evidence: `README.md`)
- Application or agent → TypeScript SDK: registers LLM (evidence: `README.md`)
- Python SDK → LLM hooks: integrates LLM
- LLM hooks → Conversation capture: captures turns
- Conversation capture → Memory augmentation: submits activity (evidence: `memori/memory/_manager.py`)
- Memory augmentation → Memori Cloud API: requests augmentation
- Memory augmentation → BYODB database: queues writes
- Native engine bridge → Augmentation pipeline: invokes pipeline
- Augmentation pipeline → Memori Cloud API: calls API (evidence: `core/src/augmentation/pipeline.rs`)
- Augmentation pipeline → Storage manager: writes batch (evidence: `core/src/augmentation/pipeline.rs`)
- Recall pipeline → Storage manager: fetches candidates (evidence: `core/src/retrieval/pipeline.rs`)
- Recall pipeline → Fact search: ranks facts (evidence: `core/src/retrieval/pipeline.rs`)
- Recall pipeline → Embedding generation: uses query vectors
- Storage manager → SQL drivers: dispatches by dialect (evidence: `core/src/storage/manager.rs`)
- SQL drivers → BYODB database: queries
- Python SDK → Python storage adapters: exposes BYODB
- Python storage adapters → BYODB database: adapts connections
- TypeScript SDK → Native engine bridge: loads native engine (evidence: `memori-ts/src/core/engine.ts`)
- TypeScript SDK → TypeScript storage: configures storage (evidence: `memori-ts/src/core/engine.ts`)
- TypeScript storage → BYODB database: adapts connections
- Application or agent → OpenClaw plugin: installs plugin (evidence: `README.md`)
- OpenClaw plugin → Memori Cloud API: captures and recalls (evidence: `README.md`)
- Application or agent → Hermes provider: configures provider (evidence: `README.md`)
- Hermes provider → Memori Cloud API: captures and recalls (evidence: `README.md`)
- Application or agent → Claude Code MCP: connects agent (evidence: `README.md`)
- Claude Code MCP → Memori Cloud API: accesses memory (evidence: `README.md`)
- Application or agent → Database provisioning: requests database (evidence: `memori/provisioning/_manager.py`)
- Database provisioning → Memori Cloud API: provisions service
- Database provisioning → BYODB database: configures connection
