Skip to main content
Glama

Zekra — ذكرى

Shared long-term memory for AI agents. What one session learns, the next one already knows.

Zekra is a memory service that any agent (Claude Code, Codex, Gemini, Cursor, your own fleet) reaches over MCP. It stores what agents and people learn, deduplicates and updates it on write, and returns the right memory on recall, with citations.

Built with ToGO ToGO on GitHub CI License: AGPL-3.0 Discord GitHub stars

Website · Docs · Discord · Discussions · Issues

Features

  • Retain / recall — hybrid retrieval: dense vectors + multilingual BM25 fused with RRF, a salience nudge, reranking, and 1-hop entity expansion. A write-decision step (ADD / UPDATE / INVALIDATE / NOOP) updates contradicted facts instead of duplicating them. Nothing is hard-deleted: forget soft-invalidates and history stays queryable.

  • Many brains — one namespace per project or team, with per-agent grants and access tokens (cbt_…) enforced server-side.

  • Knowledge graph — entities and typed relations extracted from memories, with traverse / neighbors / path / ontology queries and a graph "spine".

  • Data sources — connectors (text, markdown, crawler, github, sql, webhook) pull external content, chunk it and retain it through the same write pipeline. See Data sources.

  • Chat with a brain — a tool-calling agent that uses the brain's own recall / search / graph / retain as tools and answers with citations and an auditable trace.

  • Knowledge gaps, secrets vault, activity log — plus a web console to manage it all.

  • Tiers — Redis L1 working-memory cache, hot Postgres tier, object-store cold tier.

Related MCP server: knowledge-base-server

Quick start

Hosted

Sign up at app.zekra.dev, create a brain and mint a token, then connect your agent:

curl -fsSL https://app.zekra.dev/install.sh | sh     # installs the `zekra` CLI
zekra auth login --token <cbt_…>
zekra mcp:install claude-code                        # or claude-desktop | codex | gemini | cursor

The CLI lives in fadymondy/zekra-cli.

Self-host with Docker Compose

Requirements: Docker with Compose v2, and about 6 GB of disk for the embedding and reranker models.

git clone https://github.com/fadymondy/zekra.git && cd zekra
cp .env.selfhost.example .env.selfhost
# fill in POSTGRES_PASSWORD, AUTH_SECRET, ZEKRA_SECRETS_KEY and MFA_CHALLENGE_SECRET
# (generate each with: openssl rand -hex 32), and your email in ADMIN_EMAILS
docker compose -f docker-compose.selfhost.yml --env-file .env.selfhost up -d --build

Open http://localhost:3020 and register. The stack runs Postgres 17 with VectorChord, a one-shot schema job, the Go API, the Next.js console and two CPU TEI servers (embeddings and reranking), which download their models on first start. Then mint a token under Admin → Tokens and run zekra auth login --url http://localhost:3020 --token cbt_….

For a public deployment, put a TLS reverse proxy in front and set APP_URL. Every setting is covered in docs/self-hosting.md and DEPLOY.md.

MCP tools

MCP tools include memory_retain, memory_recall, memory_get, memory_forget, memory_share, memory_edit, graph_*, memory_gaps, brain_* (list, grants, tokens, chat), secret_* and datasource_*. Full reference: MCP server · contracts: contracts/tools.md.

Architecture

  Claude Code · Codex · Cursor · your agents        web console · mobile · desktop · extension
          │ MCP (Streamable HTTP or stdio)                    │ REST / GraphQL / SSE
          └───────────────────────┬───────────────────────────┘
                 ┌────────────────▼─────────────────────────────────────┐
                 │ Go API (ToGO: plugins on a microkernel)               │
                 │  brain plugin: retain → write-decision (ADD/UPDATE/    │
                 │  INVALIDATE/NOOP) · recall: vectors + BM25 → RRF →    │
                 │  rerank → 1-hop graph · graph · data sources · chat   │
                 └──────┬──────────────────┬─────────────────┬───────────┘
                        │                  │                 │
           ┌────────────▼──────┐   ┌───────▼──────┐   ┌──────▼─────────┐
           │ Postgres + vchord │   │ TEI embed /  │   │ Redis L1 ·     │
           │ BM25 · partman    │   │ rerank       │   │ Cognee (opt.)  │
           └───────────────────┘   └──────────────┘   └────────────────┘

Zekra is a ToGO app built from plugins:

Part

Where

Role

brain

plugins/brain (module github.com/togo-framework/brain)

the memory organ: schema, retain/recall, graph, connectors, chat, REST

brain-tei

plugins/brain-tei

embeddings + rerank via TEI (Qwen3-Embedding-0.6B, bge-reranker-v2-m3)

brain-cognee

plugins/brain-cognee

entity / graph extraction engine (Cognee)

cache-redis

plugins/cache-redis

L1 cache

harness

cmd/api, cmd/migrate, internal/, web/

the app: API server, migrations, React console

zekra-mcp

cmd/zekra-mcp

stdio MCP server — thin adapter over the REST API

zekractl

cmd/zekractl

ops CLI: inspect DB, apply schema/BM25, BM25 smoke test, graph mirror

Design: SPEC.md · decisions: contracts/internal/decisions.md · deploy: DEPLOY.md.

Built on ToGO

Zekra is built on ToGO (GitHub), the open-source, API-first framework for Go + sqlc + Atlas + GraphQL/OpenAPI + Next.js with a Laravel-style CLI. The kernel is small and everything else is a plugin; these are the pieces Zekra uses:

ToGO piece

What it does in Zekra

Kernel

Config, the hook/event bus, the plugin registry and server bootstrap

CLI

togo generate (sqlc → gqlgen → Atlas → OpenAPI), togo serve, togo install

auth

Sign-in, JWT sessions, roles and API tokens; MFA, passkeys and OAuth come from the auth plugin family

db-postgres

The Postgres driver under the brain schema

queue · cache · storage · mail

Ingestion jobs, caching, media and transactional email

Plugin model

The memory organ itself ships as ToGO plugins: brain, brain-tei, brain-cognee, cache-redis

Want the same foundation for your own app? Run go install github.com/togo-framework/cli@latest && togo new myapp, then read the ToGO docs and browse the plugin marketplace.

Read the case study: MCP Server in Go: How Zekra Is Built on ToGO Plugins.

Documentation

Full docs at https://zekra.dev/en/docs (source: docs/):

Contributing

Bug reports, docs and code contributions are all welcome. Start with CONTRIBUTING.md, which covers setup, conventions and the DCO sign-off. Then look for a good first issue. AI coding agents should start with AGENTS.md.

Translations

Translation status

Zekra is translated on Hosted Weblate, help us translate it into your language: https://hosted.weblate.org/projects/zekra/. See CONTRIBUTING.md for how it works.

Community

Please follow the Code of Conduct.

Sponsor

Zekra is built on ToGO, the open-source Go + React framework that powers this whole family of apps. The best way to support Zekra is to sponsor ToGO: every sponsorship goes into the framework and the apps built on it.

Sponsor ToGO →

License

Copyright (C) 2026 Fady Mondy. Zekra is free software, licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only). If you run a modified version as a network service, you must offer its source to your users. Third-party components keep their own licenses.

Commercial licensing available: for a license without the AGPL obligations, contact info@3x1.io.

More open source from the same author

  • TomatoPHP: 60+ open-source FilamentPHP plugins for Laravel

  • Laravilt: Laravel admin panels rendered with Inertia on Vue 3 or React 19

  • ToGO: the Laravel-style workflow for Go + React apps, with a plugin marketplace

Built by Fady Mondy.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      B
      maintenance
      Shared fleet memory for AI agents — what one agent learns, the whole fleet knows. Nightly self-correction: stale facts rewritten in place, duplicates merged. Recall pushed into every prompt in supported coding agents. Self-hosted.
      11
      3
      -
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI agents to share persistent memory by capturing, classifying, synthesizing, and retrieving knowledge from sources like Obsidian, code, and transcripts via MCP and REST APIs. Provides token-optimized search, three-tier memory, and self-learning capture of sessions and fixes so multiple agents can build on prior context.
      10 npm
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI agents to share a persistent, self-improving memory by ingesting sources such as Obsidian vaults, code, transcripts, and bookmarks, then classifying, promoting, synthesizing, and retrieving that knowledge through token-optimized search across MCP and REST interfaces. Agents can capture sessions and fixes so context compounds across sessions and across Claude, Codex, Gemini, and any other MCP client.
      10 npm
      MIT