npx claudepluginhub dvquy13/qrecqrec session recall engine
Total recall for Claude Code — yours and Claude's. On-device.
<video src="https://github.com/user-attachments/assets/4228bb2a-d022-41fd-98da-be77929cfe2b" autoplay loop muted playsinline></video>
qrec runs a local daemon that indexes your Claude Code sessions into a searchable database. Summaries and tags are generated by an on-device model — no API calls, no tokens spent. You browse via a web UI; Claude queries it directly during conversations via qrec search. Your full session history — including sessions Claude Code would have deleted after 30 days — stays on your machine.
| Requirement | Details |
|---|---|
| macOS | Fully supported on Apple Silicon (tested on M2). |
| Linux | Supported. NVIDIA GPU strongly recommended for enrichment (tested on Tesla T4 with CUDA 12). |
| Windows | Not supported. |
| Bun | v1.1.0+ — auto-installed by the npm postinstall script if not present. |
| Node.js | v18+ — only needed to bootstrap the CLI wrapper; Bun handles everything else. |
| Disk space | ~500 MB for the embedding model (embeddinggemma-300M-Q8_0, ~313 MB) + enrichment model (Qwen3-1.7B, ~1.7 GB, downloaded on first qrec enrich). |
Linux CUDA note: qrec auto-detects CUDA at startup via
libcuda.so/nvidia-smi. No manual configuration needed — just have the NVIDIA driver installed.
npm install -g @dvquys/qrec
qrec serve --daemon
On first run, the daemon downloads the embedding model (~313 MB) and indexes your Claude sessions. Your browser opens automatically — watch progress there.
Install the plugin to unlock in-session recall: Claude can search your past conversations in real time to answer questions about prior work.
claude plugin marketplace add dvquy13/qrec
claude plugin install qrec@qrec
Once installed, you can ask Claude things like:
The plugin also ensures the qrec daemon starts automatically with every Claude Code session — no manual qrec serve needed.
The daemon runs at http://localhost:25927. Open it in your browser to search sessions and monitor indexing activity.
qrec status # check daemon status
qrec stop # stop the daemon
curl -s -X POST http://localhost:25927/search \
-H "Content-Type: application/json" \
-d '{"query": "sqlite vec extension", "k": 5}' | jq .
{
"results": [
{
"session_id": "a1b2c3d4",
"title": "...",
"date": "2026-03-09",
"project": "qrec",
"score": 0.042,
"preview": "...best matching chunk..."
}
],
"latencyMs": 58
}
qrec search "embedding pipeline" --k 5 # search indexed sessions (JSON output)
qrec get <session-id> # print full session markdown
| Command | Description |
|---|---|
qrec serve [--daemon] | Start HTTP server on port 25927; auto-downloads model + indexes on first run |
qrec stop | Stop daemon |
qrec teardown | Stop daemon and remove all qrec data (~/.qrec/) |
qrec index [path] | Re-index sessions (default: ~/.claude/projects/) |
qrec search "<query>" [--k N] | Search indexed sessions (prints JSON) |
qrec get <session-id> | Print full session markdown |
qrec status | Status summary + log tail |
qrec enrich [--limit N] | Backfill session summaries, tags, and entities |
Contributions are welcome! See CONTRIBUTING.md for dev setup, testing, and PR guidelines.
bun install
bun link # register qrec globally → ~/.bun/bin/qrec
qrec serve --daemon