| FMRS | 72 / 100 · B | 76 / 100 · B |
| Reliability | 11 / 20 | 13 / 20 |
|---|
| Security and permissions | 14 / 20 | 14 / 20 |
|---|
| Maintenance | 15 / 20 | 18 / 20 |
|---|
| Documentation | 18 / 20 | 17 / 20 |
|---|
| Setup experience | 14 / 20 | 14 / 20 |
| Best for | - Developers who run several coding agents (Claude Code, Codex, Cursor, Copilot CLI, OpenClaw, opencode, Gemini CLI, Qwen Code, Kimi Code, Zed and more) and want them to share one history
- Users who want memory to stay entirely local, with no LLM or embedding key required for default search
- Engineers who need to reach back into months-old sessions to reuse prior fixes and decisions
| - Teams that want an AI assistant to directly operate on GitHub repos and collaboration workflows
- Users already in the GitHub Copilot ecosystem who want a zero-deployment remote option
|
| Not for | - Users looking for a hosted or cloud knowledge base rather than local session history
- Users unwilling to send (redacted, truncated) indexed text to a remote embedding endpoint, unless they configure a local Ollama or LM Studio runtime
- Organizations that need a managed, multi-tenant, centrally administered memory service
- Users expecting semantic recall with zero configuration, since it requires setting DEJA_EMBED_URL and related variables explicitly
| - Scenarios where you don't want the assistant to have write access to repos (enable only read-only toolsets)
- Environments with strict network isolation for private repos that can't reach the official remote endpoint
|
| Required permissions | - Reads the session-history directories of the agents on this machine (for example Claude Code's `~/.claude/projects`, Codex's `~/.codex/sessions`, Cursor's state.vscdb)
- Writes a local inverted index and vector sidecar (.vectors.bin) under `~/.cache/deja`
- `deja install` writes user-level guidance files (or a marked block inside them) for each harness it detects; `--no-guidance` opts out
- Some harness parsers rely on local tooling: Cursor, Grok Build, Hermes, opencode, Crush and Zed need sqlite3; DeepSeek Harness and Zed need zstd
- Network access is used only by `deja update`, `deja sync ssh`, and the version check in `deja doctor`; a remote endpoint receives redacted indexed text only after DEJA_EMBED_URL is configured
| - A personal access token (PAT) or OAuth App token; effective scope depends on the token's own permissions
- Enabling toolsets like actions/issues/pull_requests grants write access — request tokens on a least-privilege basis
|
| Risks and side effects | - Redaction is pattern matching, not secret detection: a shape it does not recognize can pass through into digests, share output or sync exports
- Secrets already present in the original harness files stay in those files; deja-vu does not modify the sources
- With a remote embedding endpoint configured, redacted indexed text (truncated to about 2k characters) leaves the machine; Ollama or LM Studio keeps embedding local
- `deja forget` removes sessions from a rebuilt index and writes tombstones, but does not delete the underlying harness files
- Session formats vary per harness and can change across versions, affecting parser completeness
| - Write toolsets (creating/merging PRs, triggering workflows) can cause accidental changes if the token is overscoped — try a read-only toolset first
- In hosted mode, credentials travel via the Authorization header — make sure the client-to-api.githubcopilot.com connection is trusted
|
| Supported clients | Claude Code, Codex, Cursor, GitHub Copilot CLI, VS Code Copilot Chat, Gemini CLI, Qwen Code, OpenCode, Zed, Cline, Goose, Kimi Code, OpenClaw, Roo Code, Continue, Crush, aider | Claude Desktop, Claude Code, VS Code, Cursor, Windsurf, JetBrains IDEs, Zed, Amp |
| Tools | 1 | 15 |