Practical overview
When it fits
Use Membrane when an agent needs persistent structured memory rather than session-only context, especially when stored knowledge changes, successful procedures should be reused, or retrieval must respect scope and sensitivity rules.
Who it is for
- Developers building autonomous or LLM-based agents
- Go developers embedding memory in an agent process
- TypeScript, JavaScript or Python developers connecting through the gRPC daemon
- Teams that need self-hosted memory infrastructure for changing agent knowledge
Documented uses
- Carry agent work and context across sessions
- Store events, observations, facts, procedures and plans as linked records
- Revise, supersede, contest, fork or retract changing knowledge
- Retrieve bounded context using salience, vectors and access rules
- Track which procedures have worked and apply memory decay over time
Requirements & limits
The repository is public and MIT-licensed. The documented deployment is self-hosted and requires PostgreSQL with pgvector. Go, TypeScript, JavaScript, Python and protobuf-based integration paths are described.
- PostgreSQL with pgvector is required for both embedded-library and daemon deployments.
- Go is the native implementation language; TypeScript, JavaScript and Python connect through the gRPC daemon.
- Embedding providers are needed for automatic vector population and hybrid vector-and-salience ranking.
- LLM providers are optional for capture interpretation and semantic consolidation.
- The memory model includes episodic, working, semantic, competence, plan and entity layers.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up the Membrane daemon locally
Build Membrane, start its PostgreSQL and pgvector dependency, and launch the daemon.
Before you start
- A fresh Membrane checkout
- The Go toolchain declared in go.mod
- Docker Compose and Make
- PostgreSQL with pgvector
- OpenSSL for generating the documented database password
Steps
Clone the repository and change into its directory.
Run make build.
Set MEMBRANE_POSTGRES_PASSWORD and MEMBRANE_POSTGRES_DSN as documented.
Start the database with docker compose up -d and wait for pg_isready to report readiness.
Launch ./bin/membraned with the PostgreSQL DSN.
Expected outcome
A local Membrane daemon is started with its database schema applied and the documented local listener.
Guide limitations
- This setup guide does not configure TLS, authentication, scopes beyond the documented default, embedding providers or LLM providers.
- PostgreSQL with pgvector remains required even when the Go library is embedded.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 3 October 2026
- Original website title
- BennettSchwartz/membrane · Official homepage title · retained in its source language

