mindD
mindD is a self-hosted, OSS, framework-agnostic memory sidecar for agentic systems. It runs as a co-process to one or more agents and exposes a small, opinionated gRPC API over pluggable backends for the kinds of memory every agent stack ends up reinventing:
| Block | What it's for | Drivers in v0.1.0 |
|---|---|---|
| kv | Tool-result caching and scratchpads: TTL'd, typed, with an optional heat-based cache tier | memory, postgres |
| episodic | Append-only event log (messages, tool calls, observations), replayable and live-tailable, with first-class roles and sessions | memory, postgres |
| semantic | Embed-and-search over records: bitemporal and revisable, with hybrid (dense + sparse) retrieval | memory, postgres (pgvector) |
| artifact | Blob storage with metadata for generated files, streamed in and out | memory, fs, s3 (S3 / MinIO / R2) |
| lease | Distributed locks with TTL for multi-agent coordination | memory, postgres |
| graph | Typed nodes/edges with bounded traversal: bitemporal, as-of queryable | memory, postgres |
Those are the drivers that ship and are covered by the conformance suite and
the integration tests. The Driver interface per block is deliberately narrow
(five to seven methods), so adding Redis, Qdrant, Kafka or a native graph
engine is a self-contained piece of work rather than a rewrite. None of them
exist yet.
Agents talk to the sidecar; the sidecar talks to the substrate. The analogy is Dapr's building-block model, narrowed and specialised to memory for agentic workloads.
New here? The Use cases page is the fastest way to see what these blocks let you build: a hot-tier tool cache, a knowledge base that stays correct as facts change, hybrid retrieval, a temporal knowledge graph, and cost-governed autonomous agents.
Status
v0.1.0 is tagged. Container images, cross-platform binaries and
go install all work; see Install.
mindD is pre-1.0. Proto shapes under proto/mindd/*/v1 may still change
between minor versions. Each release also documents what it does not
enforce yet: read Security before you deploy, and
CHANGELOG.md
for the full notes.
Every quickstart, example config and compose file in this project uses a
development PASETO keypair whose private half is committed to the repository.
Anyone who has read it can mint a token for any tenant. Run
mindctl token gen-keypair before you deploy. See Security.
Why a sidecar
Every popular agent framework (LangGraph, CrewAI, Autogen, Mastra, bespoke stacks) re-implements memory plumbing in incompatible ways. Agent code ends up tightly coupled to specific backends, multi-agent memory sharing is ad-hoc, access control is either absent or framework-specific, and swapping one store for another means rewriting agent code.
mindD moves that plumbing out of the agent and into a sidecar with:
- One protocol (gRPC, with an HTTP/JSON gateway for most of it).
- One auth model. Every request carries a signed capability token scoped to a tenant, agent, namespace pattern, and op set.
- One policy surface. Declarative YAML rules
(allow / deny / rate-limit / cost-cap) enforced at
the edge, hot-reloadable via
SIGHUP. - One observability story. OpenTelemetry traces (stdout or OTLP) plus Prometheus metrics on the same gRPC instrumentation, including a write-vs-query cost split the memory layer is uniquely placed to expose.
What's in the box
- A single static Go binary (
mindd) plus a CLI (mindctl) that mints tokens, drives part of the data plane, and runs an MCP stdio server. - Drivers for in-memory, Postgres / pgvector, local filesystem, S3 / MinIO.
- Opt-in encryption at rest for
kvandepisodicpayloads, and opt-in tenant isolation across all six blocks. - A Python SDK and a TypeScript SDK, both of which handle capability headers for you, plus framework adapters for LangGraph, CrewAI and the Vercel AI SDK.
- A Helm chart for Kubernetes and a multi-stage
Docker image based on distroless
nonroot, published toghcr.io/vibed-project/mindd.
Where to go from here
- Want it running? Install, then the Quickstart.
- Deploying it? Read Security first. It is short and it matters.
- Wondering what it's for? Skim the Use cases, problem-first recipes that map real agent needs onto the blocks.
- Want to understand the model? Read the Architecture page.
- Looking for a specific block? Jump straight to KV, Episodic, Semantic, Artifact, Lease, or Graph, or Admin for cross-namespace introspection.
- Deploying to Kubernetes? See Helm.