explaingit

magic-bubblez/deja-lu

Analysis updated 2026-05-18

2PythonAudience · vibe coderComplexity · 3/5Setup · moderate

TLDR

A local tool that quietly saves every chat you have with ChatGPT, Claude, Gemini, and Grok, then lets you search across all of them at once.

Mindmap

mindmap
  root((deja lu))
    What it does
      Local chat index
      Grounded search
      No cloud upload
    Tech stack
      Python
      Flask
      SQLite
      Gemini embeddings
    Use cases
      Recall old answers
      Search chat history
      Private backup
    Audience
      Vibe coders
      Privacy focused users
    Setup
      Gemini API key
      Python venv
      Firefox extension

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Search back through months of AI chats to find one specific answer you got before.

USE CASE 2

Ask a question and get it answered only from things you have actually discussed with an AI assistant.

USE CASE 3

Keep a private, local backup of every conversation across multiple AI chat tools.

USE CASE 4

Browse and filter a searchable log of everything you have asked different AI assistants.

What is it built with?

PythonFlaskSQLitesqlite-vecFirefox ExtensionGemini API

How does it compare?

magic-bubblez/deja-lu0-bingwu-0/live-interpreter0cm-labs/tokenizer-benchmark
Stars222
LanguagePythonPythonPython
Setup difficultymoderatemoderatemoderate
Complexity3/52/52/5
Audiencevibe codergeneralresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a free Gemini API key and loading a temporary Firefox extension.

In plain English

Deja lu builds a personal, local only index of every conversation you have with ChatGPT, Claude, Gemini, and Grok. A Firefox extension reads each turn straight out of the page and sends it to a small Python program running on your own machine. That program turns each message into a vector using Gemini's free embedding service and stores everything in a local SQLite database. Nothing is uploaded anywhere else, and no one else can see your chat history. Once your conversations are indexed, you can ask questions about them from the command line or through a simple browser interface. The answers are built only from things you actually discussed before, so if you cannot remember which AI you asked about a recipe, or what advice you got about a coding problem months ago, you can search across all of them at once. If the system cannot find an answer in your history, it says so instead of making one up. The browser interface has two pages. The home page is a question and answer screen where responses stream in as they are generated, show which past turns were used to build the answer, and remember your conversation across page reloads. The logs page lets you browse every captured message, filter by assistant or by role, and search the text directly. Setup involves getting a free Gemini API key, copying an example environment file, and installing a short list of Python dependencies. You then start a background server that listens for messages from the extension, plus a second server for the browser interface. The Firefox extension currently supports Claude's website, with support for other AI assistants planned for later updates. Because some AI chat pages only render older messages once you scroll to them, the tool asks you to slowly scroll through an existing conversation once so it can capture the full history. New conversations going forward are captured automatically without any extra steps. Duplicate messages are prevented by the database itself, so scrolling back and forth safely will not create repeated entries.

Copy-paste prompts

Prompt 1
Help me set up a local Python virtual environment and install the requirements for this project.
Prompt 2
Walk me through getting a free Gemini API key and adding it to a .env file.
Prompt 3
Explain how a Flask server can receive POSTed data and store it in a SQLite database, using this project's server.py as an example.
Prompt 4
Show me how to load a temporary Firefox extension for local testing.
Prompt 5
Help me understand how vector similarity search works using sqlite-vec.

Frequently asked questions

What is deja-lu?

A local tool that quietly saves every chat you have with ChatGPT, Claude, Gemini, and Grok, then lets you search across all of them at once.

What language is deja-lu written in?

Mainly Python. The stack also includes Python, Flask, SQLite.

How hard is deja-lu to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is deja-lu for?

Mainly vibe coder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.