RAG-powered AI development for any codebase
Semantic search · Project memory · Architecture decisions · Coding workflows
Reka is a Claude Code plugin that connects your AI assistant to a shared RAG (Retrieval-Augmented Generation) infrastructure. It gives Claude persistent project memory, semantic codebase search, architecture awareness, and structured development workflows — across sessions and team members.
| Capability | How it works |
|---|---|
| Semantic search | Search code, docs, and Confluence by meaning, not just keywords |
| Project memory | Decisions, patterns, and insights persist across sessions via Ebbinghaus-inspired retention |
| Architecture awareness | ADRs, dependency graphs, blast radius analysis before every change |
| Structured workflows | 5-phase coding, deep investigation, tribunal debates, and more |
| Auto session lifecycle | Hooks start/end RAG sessions automatically, trigger memory consolidation |
/plugin marketplace add getreka/reka-plugin
/plugin install reka@reka-plugins
On first enable, Claude Code prompts for three settings:
| Setting | Description | Example |
|---|---|---|
| RAG API URL | Your RAG API server | http://localhost:3100 |
| RAG API Key | Project-scoped key (rk_{project}_…) |
rk_myapp_… |
| Project Name | Used to mint the key; the namespace is resolved from the key | myapp |
Multiple projects on one machine? The single bundled config above is for one project. For several repos, run
npx @getreka/cli init(or/reka:onboard) once per project — each writes its own gitignored.mcp.jsonwith its ownrk_{project}_…key and resolves its own namespace from that key, independently.
Add to your project's .claude/settings.json so everyone gets it automatically:
{
"extraKnownMarketplaces": {
"reka-plugins": {
"source": { "source": "github", "repo": "getreka/reka-plugin" }
}
},
"enabledPlugins": {
"reka@reka-plugins": true
}
}| Command | Description |
|---|---|
/reka:code |
5-phase workflow: context → plan → implement → verify → remember |
/reka:investigate |
Deep research — find, trace, debug. Saves to memory, never modifies code |
/reka:review |
Architecture-aware code review against patterns and ADRs |
| Command | Description |
|---|---|
/reka:arch |
Record and analyze architecture decisions (ADRs) |
/reka:debate |
Adversarial tribunal debate for complex decisions (2-4 positions) |
| Command | Description |
|---|---|
/reka:start |
Display session status and project stats (sessions auto-start via hook) |
/reka:end |
Save knowledge, close session, trigger memory consolidation |
/reka:memory-review |
Triage quarantine queue, promote/reject auto-extracted memories |
| Command | Description |
|---|---|
/reka:onboard |
Set up RAG for a new project: configure, index, verify |
Internal subagents used by the workflows — /reka:code, /reka:investigate, and /reka:review delegate to them via the Task tool. For direct requests, prefer the corresponding /reka:* command.
| Agent | Model | Used by |
|---|---|---|
reka:feature-builder |
Sonnet | /reka:code Phase 3 — multi-file implementations with RAG context |
reka:code-reviewer |
Sonnet | /reka:review — per-file review against patterns and ADRs |
reka:rag-researcher |
Haiku | /reka:investigate — parallel semantic search and graph traversal |
reka:rag-ops |
Haiku | Operations: indexing, collections, memory maintenance |
All agents have persistent memory (memory: project) — they learn your codebase patterns across sessions.
| Event | Action |
|---|---|
| SessionStart | Auto-starts RAG session, injects RAG_SESSION_ID env var, injects the session digest into context |
| SessionEnd | Ships the session transcript to your RAG API, ends the RAG session, triggers consolidation agent |
Transcript capture sends the last 2 MiB of the Claude Code transcript to POST /api/capture/transcript on the RAG API URL you configured — your own server is the only destination; the plugin sends data nowhere else. Set REKA_TRANSCRIPT_CAPTURE=0 to disable it.
Reference skills loaded automatically by commands and agents:
- memory-protocol — Session lifecycle, smart remember with relationship detection, memory type selection, structured facts
- rag-workflows — Search tool priority guide (Grep → find_symbol → hybrid_search → search_graph → context_briefing)
- obsidian-sync — Bidirectional sync between RAG memories and Obsidian vault
Claude Code
│
└── Reka Plugin
├── 9 Commands (/reka:code, /reka:investigate, ...)
├── 4 Agents (feature-builder, code-reviewer, ...)
├── 3 Skills (memory-protocol, rag-workflows, obsidian-sync)
├── 2 Hooks (session lifecycle)
│
└── MCP Server (@getreka/mcp)
│ 29 tools: search, memory, architecture, sessions, agents
│
└── RAG API
├── Qdrant — vector database
├── Ollama — embeddings (qwen3-embedding) + local LLM
└── Claude — complex tasks (optional, hybrid routing)
- RAG API server running (getreka/reka)
- Qdrant vector database
- Ollama — embeddings + local LLM (default provider)
Optional but recommended:
typescript-lsp@claude-plugins-officialfor TypeScript code intelligence- Obsidian for memory visualization (via
/reka:obsidian-syncskill)
claude --plugin-dir ./reka-pluginUse /reload-plugins after making changes to pick up updates without restarting.
Test the hooks (plain bash, mocks curl via a PATH shim):
bash tests/session-start.test.sh
bash tests/session-end.test.sh