{"slug": "show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex", "title": "Show HN: Memro – Persistent Memory for Claude Code, Cursor and Codex", "summary": "Memro launched as a source-available project under the PolyForm Noncommercial License 1.0.0, giving AI coding agents such as Claude Code, Cursor and Codex persistent memory across sessions through a Go API server, Python, JavaScript/TypeScript and Go SDKs, a Model Context Protocol server and a CLI. The system stores agent identity and memory in PostgreSQL 16 with pgvector and combines vector cosine similarity with full-text keyword search via Reciprocal Rank Fusion; commercial use requires a Memro Cloud subscription or an enterprise license. The v0.1.0 release ships pinned container images (ghcr.io/memrohq/memro:0.1.0 and memro-dashboard:0.1.0) verifiable with Cosign, with the API on port 8081, dashboard on 5173 and Postgres on 55432.", "body_md": "Give your AI agents persistent memory across sessions: agent identity, memory storage and hybrid retrieval through an API, SDKs and MCP.\n\n**License (Source Available)**\n\nMemro is licensed under the [PolyForm Noncommercial License 1.0.0](https://github.com/memrohq/memro/blob/main/LICENSE).\n\n**Free for Non-Commercial Use**: Personal study, experiments, hobby projects, research, and testing without commercial application.\n**Commercial Use**: Using Memro for commercial products or production services requires a managed subscription on [Memro Cloud](https://memro.co) or an enterprise commercial license.\n**How to Get a Commercial License**: Visit [memro.co/pricing](https://memro.co/pricing) or contact `licensing@memro.co`.\n\n**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.\n\n```\n# 1. Connect installed agent tools via device login:\nnpx memro-cli connect\n\n# 2. Check connection status:\nnpx memro-cli status\n```\n\nIn your assistant, say: *\"Remember that our primary database is PostgreSQL 16 with pgvector.\"*\n\nRestart your session and ask: *\"What database and extensions do we use?\"*\n\nRun the full Memro API server and PostgreSQL with pgvector on your own infrastructure:\n\n```\ngit clone https://github.com/memrohq/memro && cd memro\ncp .env.example .env              # add OPENAI_API_KEY for hybrid search; set METRICS_TOKEN\ndocker compose up -d              # API on :8081, dashboard on :5173, Postgres on 127.0.0.1:55432\ncurl http://localhost:8081/health\ncurl -fsSL https://raw.githubusercontent.com/memrohq/memro/v0.1.0/docker-compose.release.yml -o docker-compose.yml && docker compose up -d\ncurl http://localhost:8081/health\n```\n\n*(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.)*\n\n- **Backend API** :`http://localhost:8081`\n- **Dashboard** :`http://localhost:5173`\n- **Postgres Database** : Port`55432` on localhost (Option 1 clone) to avoid port 5432 collisions with existing local Postgres setups.\n- **Metrics Token** : Set`METRICS_TOKEN` (min 32 characters) in`.env` to protect`GET /metrics` and`GET /stats/cache` ; the server logs a warning if unset.\n- **Verify Signatures** : Verify published container images keylessly using Cosign:\n\n```\ncosign verify ghcr.io/memrohq/memro:0.1.0 \\\n  --certificate-identity-regexp 'https://github.com/memrohq/memro/' \\\n  --certificate-oidc-issuer https://token.actions.githubusercontent.com\n```\n\nFor complete deployment options, production topologies, and configuration tables, see [docs/self-hosting.md](https://github.com/memrohq/memro/blob/main/docs/self-hosting.md).\n\n```\n┌──────────────────────────────────────┐\n│         Clients & MCP Tools          │\n│   Claude Code · Cursor · Codex · SDKs│\n└──────────────────┬───────────────────┘\n                   │  HTTP REST / Stdio MCP\n┌──────────────────▼───────────────────┐\n│            Memro API (Go)            │\n│  Sovereign Ed25519 Identity · RRF    │\n└──────────────────┬───────────────────┘\n                   │  SQL & Embeddings\n┌──────────────────▼───────────────────┐\n│       PostgreSQL 16 + pgvector       │\n│  pgvector Dense Search + tsvector FTS│\n└──────────────────────────────────────┘\n```\n\nMemro 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, \n\n`memrohq/memro` holds all components in one mono-repository:\n\n| Path | Description | Documentation | \n|---|---|---|\n| [`server/`](https://github.com/memrohq/memro/blob/main/server) | Go API server, PostgreSQL + pgvector engine | [Self-Hosting Guide](https://github.com/memrohq/memro/blob/main/docs/self-hosting.md) | \n| [`cli/`](https://github.com/memrohq/memro/blob/main/cli) | One-command connector ( `npx memro-cli connect` ) | [CLI Documentation](https://github.com/memrohq/memro/blob/main/cli/README.md) | \n| [`mcp/`](https://github.com/memrohq/memro/blob/main/mcp) | Model Context Protocol server (stdio & SSE HTTP) | [MCP Guide](https://github.com/memrohq/memro/blob/main/docs/mcp.md) | \n| [`sdk/python/`](https://github.com/memrohq/memro/blob/main/sdk/python) | Official Python SDK (PyPI: `memro` ) | [Python SDK Guide](https://github.com/memrohq/memro/blob/main/sdk/python/README.md) | \n| [`sdk/js/`](https://github.com/memrohq/memro/blob/main/sdk/js) | Official JavaScript / TypeScript SDK (npm: `@memro/sdk` ) | [JavaScript SDK Guide](https://github.com/memrohq/memro/blob/main/sdk/js/README.md) | \n| [`sdk/go/`](https://github.com/memrohq/memro/blob/main/sdk/go) | Official Go SDK ( `github.com/memrohq/memro/sdk/go@v0.1.0` ) | [Go SDK Guide](https://github.com/memrohq/memro/blob/main/sdk/go/README.md) | \n| [`examples/`](https://github.com/memrohq/memro/blob/main/examples) | Runnable integrations (Claude Code, Cursor, Codex) | [Examples Index](https://github.com/memrohq/memro/blob/main/examples/README.md) | \n| [`bench/`](https://github.com/memrohq/memro/blob/main/bench) | Reproducible benchmark harness and test suites | [Benchmarks Index](https://github.com/memrohq/memro/blob/main/docs/benchmarks/README.md) | \n| [`docs/`](https://github.com/memrohq/memro/blob/main/docs) | Architecture, concepts, API reference, decisions | [Documentation Index](https://github.com/memrohq/memro/blob/main/docs/README.md) | \n\n```\n# PyPI (once published) or install from source: pip install ./sdk/python\npip install memro\npython\nfrom memro import Agent\n\nagent = Agent.create()  # local sovereign Ed25519 identity\nmem = agent.remember(\"The billing service was rewritten in Go\", type=\"semantic\")\nresults = agent.recall(\"billing service language\")\nprint(results[0].content)\n```\n\nSee runnable script at [`examples/python/register_remember_recall.py`](https://github.com/memrohq/memro/blob/main/examples/python/register_remember_recall.py).\n\n```\n# npm (once published) or install from local build: npm install ./sdk/js\nnpm install @memro/sdk\njs\nimport { Agent } from '@memro/sdk';\n\nconst agent = await Agent.create(); // local sovereign Ed25519 identity\nconst mem = await agent.remember('The billing service was rewritten in Go', { type: 'semantic' });\nconst results = await agent.recall('billing service language');\nconsole.log(results[0].content);\n```\n\nSee runnable script at [`examples/typescript/index.js`](https://github.com/memrohq/memro/blob/main/examples/typescript/index.js).\n\n```\ngo get github.com/memrohq/memro/sdk/go@v0.1.0\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\tmemro \"github.com/memrohq/memro/sdk/go\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\tagent, _ := memro.CreateAgent(nil)\n\tmem, _ := agent.Remember(ctx, \"The billing service was rewritten in Go\", nil)\n\tresults, _ := agent.Recall(ctx, \"billing service language\", nil)\n\tfmt.Println(results[0].Content)\n}\n```\n\nSee runnable script at [`examples/go/main.go`](https://github.com/memrohq/memro/blob/main/examples/go/main.go).\n\nStep-by-step guides for connecting coding tools with full session-restart memory verification:\n\nMemro includes structured primitives and cognitive graphs beyond basic vector search:\n\n- **Typed Memories** : Categorize observations as`semantic` (facts),`episodic` (events/conversations),`procedural` (runbooks/recipes), or`profile` (agent guardrails). See[Memory Concepts](https://github.com/memrohq/memro/blob/main/docs/concepts.md) .\n- **Temporal Search & Evolution** : Query memories with timestamp weighting and trace how beliefs evolve over time. See[API Reference](https://github.com/memrohq/memro/blob/main/docs/api-reference.md) .\n- **Conflict Analysis & Resolution** : Identify contradictory facts across sessions and mark superseded memories using`resolve_conflict()` . See[Conflict Resolution](https://github.com/memrohq/memro/blob/main/docs/concepts.md#conflict-resolution) .\n- **Reasoning Graphs** : Trace memory provenance, causal chains, and dependencies between stored observations. See[Opinionated Guide](https://github.com/memrohq/memro/blob/main/docs/Opinionated_Guide.md) .\n\nMemro publishes empirical evaluations and methodology:\n\n- **LongMemEval Benchmark** : Evaluated across 500 questions testing multi-session recall and knowledge updates. See[LongMemEval Report](https://github.com/memrohq/memro/blob/main/docs/benchmarks/longmemeval.md) .\n- **Empirical Failure & Boundary Evaluations** : Runnable test suite for identity boundaries, contradictory facts, stale facts, and distractor rejection. See[Measurable Evaluations](https://github.com/memrohq/memro/blob/main/docs/benchmarks/evaluations.md) .\n- **Clean-Machine Verification** : Full transcript verifying every quickstart command in a container without local caches. See[Verification Transcript](https://github.com/memrohq/memro/blob/main/docs/verify-quickstart.md) .\n\n```\n# 1. Start PostgreSQL with pgvector\ndocker compose up -d db\n\n# 2. Run backend API server\ncd server\nDATABASE_URL=postgres://memro:memro@localhost:55432/memro go run ./cmd/memro-api\n\n# 3. Run tests\nMEMRO_TEST_DATABASE_URL=postgres://memro:memro@localhost:55432/memro go test -race ./...\n```\n\nPlease review [CONTRIBUTING.md](https://github.com/memrohq/memro/blob/main/CONTRIBUTING.md) and [SECURITY.md](https://github.com/memrohq/memro/blob/main/SECURITY.md) before submitting pull requests.\n\nRepository: [github.com/memrohq/memro](https://github.com/memrohq/memro) · Documentation: [https://memro.co](https://memro.co)\nLicense: Source available under [PolyForm Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0). Free for non-commercial use; commercial use requires Memro Cloud or a commercial license.", "url": "https://wpnews.pro/news/show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex", "canonical_source": "https://github.com/memrohq/memro", "published_at": "2026-11-14 00:20:15+00:00", "updated_at": "2026-11-14 00:50:41.476759+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-infrastructure"], "entities": ["Memro", "Claude Code", "Cursor", "Codex", "PostgreSQL", "pgvector", "Model Context Protocol", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex", "markdown": "https://wpnews.pro/news/show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex.md", "text": "https://wpnews.pro/news/show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex.txt", "jsonld": "https://wpnews.pro/news/show-hn-memro-persistent-memory-for-claude-code-cursor-and-codex.jsonld"}}