by vshulcz
Search your past AI coding sessions — Claude Code, Codex, Cursor and 17 more. Indexes the session history they already wrote to disk, including months from before you installed it, and recalls it in any of them. No LLM, no embeddings, one local Go binary.
# Add to your Claude Code skills
git clone https://github.com/vshulcz/deja-vuLast scanned: 7/16/2026
{
"issues": [
{
"file": "README.md",
"line": 34,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | s\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-07-16T06:18:44.140Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}deja-vu is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by vshulcz. Search your past AI coding sessions — Claude Code, Codex, Cursor and 17 more. Indexes the session history they already wrote to disk, including months from before you installed it, and recalls it in any of them. No LLM, no embeddings, one local Go binary. It has 737 GitHub stars.
Yes. deja-vu passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/vshulcz/deja-vu" and add it to your Claude Code skills directory (see the Installation section above).
deja-vu is primarily written in Go. It is open-source under vshulcz on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh deja-vu against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
deja install --auto
Ten seconds to install, about ten to index, and it is useful. The second command wires MCP recall into every agent it finds, turns on session-start recall where the agent supports it, and builds the first index so the next session does not pay for it.
Start a new agent session and ask it something you worked on months ago:
have we dealt with jwt refresh rotation before? check your memory
It does not have to be asked, either — with auto-recall the agent already knows what you solved in that project when the session opens.
brew install deja-vu, go install github.com/vshulcz/deja-vu/cmd/deja@latest,
or npx @vshulcz/deja-vu "query" to try it without installing anything. Desktop apps that
take MCP servers as bundles can open the .mcpb from the
latest release; it carries the binary.
Claude Code, Codex, Cursor, Qwen, OpenClaw and Copilot can take the same plugin bundle from their own marketplaces instead:
claude plugin marketplace add vshulcz/deja-vu && claude plugin install deja-vu@deja-vu
On Windows the install script exits with unsupported OS — it is a shell script. Use
Scoop instead, from the main bucket every Scoop install already has:
scoop install deja-vu
Or take deja-vu_<version>_windows_amd64.zip from the
latest release and put deja.exe on
your PATH, e.g. in %USERPROFILE%\.local\bin.
The binary alone is a complete install for searching: index, search, show, ctx, blame,
--json and redaction need nothing else. deja install is what wires MCP into your agents
and turns on session-start recall — worth having, and optional. On a binary-only setup
deja doctor reports every MCP target as not-wired, which is that setup working as
intended. deja warmup also leaves a skill at ~/.agents/skills/deja-search/SKILL.md
that teaches an agent the CLI contract — deja search --json, ctx, blame, how to read
tier and total — so it knows history is searchable without MCP. The copy in the repo is
skills/deja-search/SKILL.md.
deja install --all is --auto without the session-start recall: agents answer from memory
when they decide to call it, rather than starting each session with it. The
agent setup guide covers what each
harness supports, aider's read-only context file, and the Windows cmd /c deja mcp wrapper.
Install also writes user-level guidance for the harnesses it detects: Claude Code, Codex, opencode, Gemini CLI, Antigravity, Qwen, Kimi Code, pi, Copilot, Cursor, Goose, OpenClaw, Hermes, Roo Code, omp, DeepSeek Harness and Zed each get it in their own guidance file (or under the configured XDG_CONFIG_HOME). Re-run rewrites deja's skill or marked block without changing surrounding user content. Use deja install --all --no-guidance to opt out; Grok Build gets the shared skill in ~/.agents/skills, which is what it reads; the ~/.grok/GROK.md written beside it is for the unrelated community CLI that shares that directory. Cursor has no user-level instructions file, so it gets a skill at ~/.cursor/skills/ instead, read only when something looks relevant rather than every session.
Solve it in Codex. Claude remembers. Twenty coding agents write every conversation to local files, and deja turns those files into one memory layer all of them read.
| Retroactive search | deja "connection pool exhausted" over gigabytes, including everything from before you installed deja. Natural-language questions fall back to a relevance tier. Time is a hint, not a filter. |
| Cross-agent recall | The MCP recall tool answers "we fixed this three weeks ago" in whichever agent asks, whoever solved it originally. |
| It survives compaction | Measured over 43 compactions: the summary keeps 77% of the decisions and 0.2% of the commands you ran. deja hands back the other 99.8%. |
| Recall at the point of action | Before an agent edits a file or runs a command, deja names that file's prior decision or that command's working invocation, from a PreToolUse hook. When a command fails, a PostToolUse hook answers with what followed that same error here before — the pair an agent never thinks to ask for. |
| It indexes the work, not just the talk | The files each turn opened, the commands that ran with their exit status, and the exact spans an edit replaced. That is the part every summary throws away. |
| It knows what held | deja promote <id> --state rejected --note "why" marks a decision you reverted. Every later hit for that session shows it was tried and rejected, with the reason. Nothing is deleted, and --state accepted takes the mark back. |
| It says when the ground moved | A hit reports 4 files this session touched have changed since, and says nothing when it cannot tell. It never claims anything is unchanged. |
| Sync and handoff | deja sync ssh laptop moves memory between machines, append-only, no cloud in the middle. deja handoff --to codex packages the live context so you can continue in another agent. |
| Redaction | Keys, tokens, JWTs and private key blocks are stripped at index time, so the cache is safe to keep. |
deja stats --card draws it in the terminal; give it a filename and it writes an
SVG for a profile README.
The full feature reference lives in the docs.
Indexing and search are local. The network is used only by deja update, deja sync ssh,
and the version check in deja doctor.
Credentials are redacted at index time: AWS keys, api_key= and token= assignments,
bearer tokens and raw JWTs, PEM private key blocks, provider tokens, scheme://user:pass@host
URLs, and high-entropy values for shapes no pattern knows. The value becomes
[redacted:<kind>] and the surrounding text stays searchable. deja share and
deja sync export re-apply redaction on the way out.
deja forget removes sessions from a rebuilt index and writes tombstones, so a later
deja index cannot restore them from the source history. --unforget lifts a tombstone.
Project exclusions are one pattern per line in ~/.config/deja/exclude.
The security model documents data flows, redaction limits, trust assumptions and release verification.
$ deja "jwt refresh token"
[claude] api · Jul 8 · 8f31c0a9 — 2 matches
login started failin