Skip to main content
Glama
vshulcz

vshulcz/deja-vu

deja

Search your own past AI coding sessions to recall exact paths, errors, commands, and decisions before editing files, fixing errors, or continuing another session.

Instructions

This user's own past sessions from every AI coding tool on this machine — not general knowledge, not library docs. Modes:

  • recall: search past sessions. Pass 1-3 exact terms: a path, an error string, a flag or identifier.

  • context: the full story of one session, when a recall hit is not enough.

  • blame: why a file is the way it is, before you edit or delete it. Sessions, not git authorship.

  • fix: you just hit an error — what this machine ran after that same error. Pass the output verbatim.

  • how: the command and flags this user really runs for a thing, instead of a guessed one.

  • orient: the commands past sessions ran in this project and the files they worked in, before you go reading.

  • remember: store one settled decision for a later session.

  • handoff: continue another session's work. q: its id or harness. A bracketed marker on a result is the user's own later judgement; act on what it says. When a result helps, open your reply with one line: "déjà vu: — (deja:)". Say nothing about recalls that did not help.

Input Schema

NameRequiredDescriptionDefault
qNoWhat to ask about: for recall 1-3 exact terms; for blame a path, for fix the failing output verbatim, for remember the fact.
modeYes
limitNoMax sessions per ~4 KB page.
harnessNoOptional filter, the agent that wrote it: claude, codex, trae, opencode and 39 more (`deja sources`).
projectNoOptional project filter; for remember, where it is filed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.23.1
    • changedInput schema / properties / q / description
      Previous value: -"What to ask about: the question or exact token; for blame a path, for fix the failing output verbatim, for remember the fact."New value: +"What to ask about: for recall 1-3 exact terms; for blame a path, for fix the failing output verbatim, for remember the fact."
  2. Changed2 schema fields changedv0.23.0
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote it: claude, codex, trae, opencode and 38 more (`deja sources`)."New value: +"Optional filter, the agent that wrote it: claude, codex, trae, opencode and 39 more (`deja sources`)."
    • changedInput schema / properties / limit / description
      Previous value: -"Max results."New value: +"Max sessions per ~4 KB page."
  3. Changed1 schema field changedv0.22.2
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote it: claude, codex, trae, opencode and 34 more (`deja sources`)."New value: +"Optional filter, the agent that wrote it: claude, codex, trae, opencode and 38 more (`deja sources`)."
  4. Changed2 schema fields changedv0.21.6
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote it: claude, codex, opencode, aider and 31 more (`deja sources`)."New value: +"Optional filter, the agent that wrote it: claude, codex, trae, opencode and 34 more (`deja sources`)."
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "recall",
      -  "context",
      -  "blame",
      -  "fix",
      -  "how",
      -  "orient",
      -  "remember"
      -]New value: +[
      +  "recall",
      +  "context",
      +  "blame",
      +  "fix",
      +  "how",
      +  "orient",
      +  "remember",
      +  "handoff"
      +]
  5. Changed1 schema field changedv0.21.5
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote it: claude, codex, opencode, aider and 30 more (`deja sources`)."New value: +"Optional filter, the agent that wrote it: claude, codex, opencode, aider and 31 more (`deja sources`)."
  6. Changed14 schema fields changedv0.21.1
    • removedInput schema / properties / all
      Removed value: -{
      -  "description": "blame: every project, not just this one.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / error
      Removed value: -{
      -  "description": "fix: the failing output, verbatim. Multi-line pastes are fine.",
      -  "type": "string"
      -}
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 30 more — `deja sources` lists them."New value: +"Optional filter, the agent that wrote it: claude, codex, opencode, aider and 30 more (`deja sources`)."
    • removedInput schema / properties / mode / description
      Removed value: -"Which capability to use."
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "recall",
      -  "context",
      -  "blame",
      -  "fix",
      -  "how",
      -  "remember"
      -]New value: +[
      +  "recall",
      +  "context",
      +  "blame",
      +  "fix",
      +  "how",
      +  "orient",
      +  "remember"
      +]
    • removedInput schema / properties / offset
      Removed value: -{
      -  "description": "recall: skip this many ranked matches, to page without re-ranking.",
      -  "type": "number"
      -}
    • removedInput schema / properties / path
      Removed value: -{
      -  "description": "blame: absolute, relative, or bare filename.",
      -  "type": "string"
      -}
    • changedInput schema / properties / project / description
      Previous value: -"Optional project filter; for remember, where the note is filed (default notes)."New value: +"Optional project filter; for remember, where it is filed."
    • addedInput schema / properties / q
      Added value: +{
      +  "description": "What to ask about: the question or exact token; for blame a path, for fix the failing output verbatim, for remember the fact.",
      +  "type": "string"
      +}
    • removedInput schema / properties / query
      Removed value: -{
      -  "description": "recall and context: an exact token — error string, function name, flag — or the question in your own words.",
      -  "type": "string"
      -}
    • removedInput schema / properties / since
      Removed value: -{
      -  "description": "blame: age such as 30d or 24h.",
      -  "type": "string"
      -}
    • removedInput schema / properties / tags
      Removed value: -{
      -  "description": "remember: optional navigation tags, searchable as #tag.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / text
      Removed value: -{
      -  "description": "remember: one durable fact, decision or conclusion.",
      -  "type": "string"
      -}
    • removedInput schema / properties / what
      Removed value: -{
      -  "description": "how: tool or target, e.g. 'go test', 'docker compose', a script name.",
      -  "type": "string"
      -}
  7. Changed1 schema field changedv0.21.0
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 29 more — `deja sources` lists them."New value: +"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 30 more — `deja sources` lists them."
  8. Changed1 schema field changedv0.20.2
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 21 more — `deja sources` lists them."New value: +"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 29 more — `deja sources` lists them."
  9. Changed1 schema field changedv0.19.5
    • changedInput schema / properties / harness / description
      Previous value: -"Optional filter: claude, codex, opencode, aider, gemini, cursor, antigravity, grok or qwen."New value: +"Optional filter, the agent that wrote the session: claude, codex, opencode, aider and 21 more — `deja sources` lists them."
  10. Addedv0.19.3

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare openWorldHint=false, so the description carries most of the burden and does add real behavioral context: bracketed markers represent the user's later judgement and should be acted on, and there is an explicit response protocol (open with a déjà vu line, say nothing about unhelpful recalls). It stops short of covering error behavior, pagination semantics beyond '~4 KB page', or what happens on a miss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core identity, then a tight mode list where each bullet is one line and adds distinct information. It is long, but for an eight-mode multiplexer nearly every sentence carries routing value. Only the response-format instruction feels slightly tacked onto the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mode-dispatch tool with a single required enum, the description explains each mode, the required input for each, the meaning of result markers, and the expected reply convention. No output schema exists, and the description compensates by characterizing result content and the bracket convention. Minor gap: it does not say what an empty result or a failed lookup looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so baseline is 3, but the description earns above that by specifying per-mode meaning of q – exact terms for recall, a path for blame, failing output verbatim for fix, the fact for remember – which the schema only summarizes. The mode list is fully enumerated in prose with one-line semantics. limit and harness are left to the schema with only light commentary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line states a specific resource – 'this user's own past sessions from every AI coding tool on this machine' – and explicitly excludes general knowledge and library docs. The eight named modes each map to a concrete operation, so an agent knows exactly what it gets back. No sibling tools exist, but the description still draws a sharp boundary against other knowledge sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Every mode carries a when-to-use condition: 'context' when a recall hit is not enough, 'blame' before you edit or delete a file, 'fix' right after hitting an error, 'orient' before you go reading. The description also prescribes input form per mode (1-3 exact terms, output verbatim). This is about as explicit as guidance gets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools