Skip to main content

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:

BlockWhat it's forDrivers in v0.1.0
kvTool-result caching and scratchpads: TTL'd, typed, with an optional heat-based cache tiermemory, postgres
episodicAppend-only event log (messages, tool calls, observations), replayable and live-tailable, with first-class roles and sessionsmemory, postgres
semanticEmbed-and-search over records: bitemporal and revisable, with hybrid (dense + sparse) retrievalmemory, postgres (pgvector)
artifactBlob storage with metadata for generated files, streamed in and outmemory, fs, s3 (S3 / MinIO / R2)
leaseDistributed locks with TTL for multi-agent coordinationmemory, postgres
graphTyped nodes/edges with bounded traversal: bitemporal, as-of queryablememory, 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.

The example keypair is public

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 kv and episodic payloads, 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 to ghcr.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.