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 onwrite, 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 accesstokens (
cbt_…) enforced server-side. - Knowledge graph — entities and typed relations extracted from memories, withtraverse / 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, thenconnect 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 rerankermodels.
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, aone-shot schema job, the Go API, the Next.js console and two CPUTEI servers (embeddings andreranking), which download their models on first start. Then mint a token underAdmin → 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 iscovered 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), theopen-source, API-first framework for Go + sqlc + Atlas + GraphQL/OpenAPI + Next.js with aLaravel-style CLI. The kernel is small and everything else is a plugin; these are the piecesZekra 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.
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 withCONTRIBUTING.md, which covers setup, conventions and the DCO sign-off. Thenlook for a good first issue.AI coding agents should start with AGENTS.md.
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 + Reactframework 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 theGNU Affero General Public License v3.0 (AGPL-3.0-only). If you run a modifiedversion as a network service, you must offer its source to your users. Third-partycomponents keep their own licenses.
Commercial licensing available: for a license without the AGPL obligations, contact[email protected].
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.