Give your AI agents persistent memory across sessions: agent identity, memory storage and hybrid retrieval through an API, SDKs and MCP.
License (Source Available)
Memro is licensed under the PolyForm Noncommercial License 1.0.0.
Free for Non-Commercial Use: Personal study, experiments, hobby projects, research, and testing without commercial application.
Commercial Use: Using Memro for commercial products or production services requires a managed subscription on Memro Cloud or an enterprise commercial license.
How to Get a Commercial License: Visit memro.co/pricing or contact licensing@memro.co.
Repository Notice: github.com/memrohq/memro is the single public repository for Memro. It contains the Go server, official SDKs (Python, JavaScript/TypeScript, Go), Model Context Protocol (MCP) server, and the CLI.
npx memro-cli connect
npx memro-cli status
In your assistant, say: "Remember that our primary database is PostgreSQL 16 with pgvector."
Restart your session and ask: "What database and extensions do we use?"
Run the full Memro API server and PostgreSQL with pgvector on your own infrastructure:
git clone https://github.com/memrohq/memro && cd memro
cp .env.example .env # add OPENAI_API_KEY for hybrid search; set METRICS_TOKEN
docker compose up -d # API on :8081, dashboard on :5173, Postgres on 127.0.0.1:55432
curl http://localhost:8081/health
curl -fsSL https://raw.githubusercontent.com/memrohq/memro/v0.1.0/docker-compose.release.yml -o docker-compose.yml && docker compose up -d
curl http://localhost:8081/health
(Note: The prebuilt image one-liner downloads docker-compose.release.yml with pinned ghcr.io/memrohq/memro:0.1.0 and ghcr.io/memrohq/memro-dashboard:0.1.0 images, available once v0.1.0 is published.)
- Backend API :
http://localhost:8081 - Dashboard :
http://localhost:5173 - Postgres Database : Port
55432on localhost (Option 1 clone) to avoid port 5432 collisions with existing local Postgres setups. - Metrics Token : Set
METRICS_TOKEN(min 32 characters) in.envto protectGET /metricsandGET /stats/cache; the server logs a warning if unset. - Verify Signatures : Verify published container images keylessly using Cosign:
cosign verify ghcr.io/memrohq/memro:0.1.0 \
--certificate-identity-regexp 'https://github.com/memrohq/memro/' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
For complete deployment options, production topologies, and configuration tables, see docs/self-hosting.md.
┌──────────────────────────────────────┐
│ Clients & MCP Tools │
│ Claude Code · Cursor · Codex · SDKs│
└──────────────────┬───────────────────┘
│ HTTP REST / Stdio MCP
┌──────────────────▼───────────────────┐
│ Memro API (Go) │
│ Sovereign Ed25519 Identity · RRF │
└──────────────────┬───────────────────┘
│ SQL & Embeddings
┌──────────────────▼───────────────────┐
│ PostgreSQL 16 + pgvector │
│ pgvector Dense Search + tsvector FTS│
└──────────────────────────────────────┘
Memro runs a Go HTTP API backed by PostgreSQL and pgvector. Search queries combine vector cosine similarity and full-text keyword search using Reciprocal Rank Fusion (RRF,
memrohq/memro holds all components in one mono-repository:
| Path | Description | Documentation |
|---|---|---|
server/ |
Go API server, PostgreSQL + pgvector engine | Self-Hosting Guide |
cli/ |
One-command connector ( npx memro-cli connect ) |
CLI Documentation |
mcp/ |
Model Context Protocol server (stdio & SSE HTTP) | MCP Guide |
sdk/python/ |
Official Python SDK (PyPI: memro ) |
Python SDK Guide |
sdk/js/ |
Official JavaScript / TypeScript SDK (npm: @memro/sdk ) |
JavaScript SDK Guide |
sdk/go/ |
Official Go SDK ( github.com/memrohq/memro/sdk/go@v0.1.0 ) |
Go SDK Guide |
examples/ |
Runnable integrations (Claude Code, Cursor, Codex) | Examples Index |
bench/ |
Reproducible benchmark harness and test suites | Benchmarks Index |
docs/ |
Architecture, concepts, API reference, decisions | Documentation Index |
pip install memro
python
from memro import Agent
agent = Agent.create() # local sovereign Ed25519 identity
mem = agent.remember("The billing service was rewritten in Go", type="semantic")
results = agent.recall("billing service language")
print(results[0].content)
See runnable script at examples/python/register_remember_recall.py.
npm install @memro/sdk
js
import { Agent } from '@memro/sdk';
const agent = await Agent.create(); // local sovereign Ed25519 identity
const mem = await agent.remember('The billing service was rewritten in Go', { type: 'semantic' });
const results = await agent.recall('billing service language');
console.log(results[0].content);
See runnable script at examples/typescript/index.js.
go get github.com/memrohq/memro/sdk/go@v0.1.0
package main
import (
"context"
"fmt"
memro "github.com/memrohq/memro/sdk/go"
)
func main() {
ctx := context.Background()
agent, _ := memro.CreateAgent(nil)
mem, _ := agent.Remember(ctx, "The billing service was rewritten in Go", nil)
results, _ := agent.Recall(ctx, "billing service language", nil)
fmt.Println(results[0].Content)
}
See runnable script at examples/go/main.go.
Step-by-step guides for connecting coding tools with full session-restart memory verification:
Memro includes structured primitives and cognitive graphs beyond basic vector search:
- Typed Memories : Categorize observations as
semantic(facts),episodic(events/conversations),procedural(runbooks/recipes), orprofile(agent guardrails). SeeMemory Concepts . - Temporal Search & Evolution : Query memories with timestamp weighting and trace how beliefs evolve over time. SeeAPI Reference .
- Conflict Analysis & Resolution : Identify contradictory facts across sessions and mark superseded memories using
resolve_conflict(). SeeConflict Resolution . - Reasoning Graphs : Trace memory provenance, causal chains, and dependencies between stored observations. SeeOpinionated Guide .
Memro publishes empirical evaluations and methodology:
- LongMemEval Benchmark : Evaluated across 500 questions testing multi-session recall and knowledge updates. SeeLongMemEval Report .
- Empirical Failure & Boundary Evaluations : Runnable test suite for identity boundaries, contradictory facts, stale facts, and distractor rejection. SeeMeasurable Evaluations .
- Clean-Machine Verification : Full transcript verifying every quickstart command in a container without local caches. SeeVerification Transcript .
docker compose up -d db
cd server
DATABASE_URL=postgres://memro:memro@localhost:55432/memro go run ./cmd/memro-api
MEMRO_TEST_DATABASE_URL=postgres://memro:memro@localhost:55432/memro go test -race ./...
Please review CONTRIBUTING.md and SECURITY.md before submitting pull requests.
Repository: github.com/memrohq/memro · Documentation: https://memro.co License: Source available under PolyForm Noncommercial 1.0.0. Free for non-commercial use; commercial use requires Memro Cloud or a commercial license.