This is where Zikra started — Mukarram's first build to fix the Claude Web ↔ Claude Code disconnect. One Python process. One SQLite file. No Docker, no PostgreSQL. If you're a solo developer, this is all you need.
Up and running in minutes
Set up the database and Python framework. This is the persistent engine of Zikra Lite.
Expose your local Zikra HTTP port to the outside world so remote agents and MCP can interface.
Connect the MCP to the web session and run a fast curl test to ensure auth tokens hit the DB.
Install the background auto-save hooks into Claude Code, Codex, or Gemini CLI.
All sent as POST /webhook/zikra with a Bearer token.
Hybrid vector + keyword search across all memories. Returns ranked results with scores and snippets. Token budget applied automatically.
aliases: find · query · recall · retrieve
Save any context — decisions, patterns, errors — with an embedding. Deduplicates by title + type. Access count tracked per memory.
aliases: save · store · write
Retrieve a specific memory by title or ID. Returns full content, tags, resolution, and timestamps.
aliases: fetch_memory · read_memory
Retrieve a named runbook prompt by title. Increments access count. Use to store and retrieve reusable agent instructions.
aliases: fetch_prompt · run_prompt
Log a completed agent session with status, token counts, cost, and a summary. Builds an audit trail of AI activity.
aliases: log_session · end_session
Log errors and failures with type, message, stack trace, and context. Query later to spot recurring patterns.
aliases: log_bug · report_error
Save a project requirement with searchable content. Stored as a memory with type requirement — searchable alongside all other context.
Return the full SQLite schema — all table definitions. Useful for debugging and confirming Lite is running correctly.
aliases: schema
Two required variables. Everything else has sane defaults.
Fork it, embed it, ship it. No attribution required beyond the license header. Star the repo if Zikra Lite saves you time.