Zekra
Long-term memory and a knowledge graph for AI agents: recall, notes, secrets and data sources.
Que pouvez-vous faire avec Zekra ?
- Retain / recall — hybrid retrieval: dense vectors + multilingual BM25 fused with RRF,
- Many brains — one namespace per project or team, with per-agent grants and access
- Knowledge graph — entities and typed relations extracted from memories, with
- Data sources — connectors (
text,markdown,crawler,github,sql,webhook) - Chat with a brain — a tool-calling agent that uses the brain's own recall / search /
- 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.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http zekra 'https://mcp.zekra.dev'
{
"mcpServers": {
"zekra": {
"type": "http",
"url": "https://mcp.zekra.dev"
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
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.
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:
forgetsoft-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.
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/):
- Introduction and Quickstart
- MCP server: tool reference and client setup
- CLI: the
zekracommand and the Claude Code plugin - REST API: endpoints, errors, events, TypeScript client
- Data sources · Capture hook · Security · Self-hosting
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
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
- Discord: chat with the team and other users
- GitHub Discussions: questions, ideas, show and tell
- Issues: bugs and feature requests
- Security reports: see SECURITY.md
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.
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.
Questions fréquentes
Qu'est-ce que Zekra ?
Long-term memory and a knowledge graph for AI agents: recall, notes, secrets and data sources.
Comment installer Zekra ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http zekra 'https://mcp.zekra.dev'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Zekra ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
Zekra est-il open source ?
Oui. Son code est sur GitHub sous licence AGPL-3.0.
Qui maintient Zekra ?
Il est publié par fadymondy. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.