Инструмент deja — это бинарник без зависимостей, который индексирует историю сессий агентов вроде Claude Code, Codex и opencode. Агенты пишут логи локально, гигабайтами, а deja проходится по ним и даёт полнотекстовый поиск за 7–9 миллисекунд. Причём ретроспективно — найдёт то, что было до установки, если файлы остались на диске.
Установка — простая: curl-скрипт, go install, npx или brew install. После этого deja install --all подключает MCP-инструмент recall для агентов. Он отвечает на вопрос «мы это уже чинили?» без повторной отладки. Опция --auto добавляет SessionStart-хук: при запуске сессии агент получает краткую выжимку из прошлых сессий по проекту (до 2 КБ) и может использовать её.
Безопасность зашита в ядро: ключи AWS, api_key, token, JWT, PEM-блоки, bearer-токены и пароли в URL вырезаются при индексации — в кэше остаётся только [redacted:<kind>]. Никакого сетевого кода, данные вообще не покидают машину. Для синхронизации между машинами есть deja sync export/import — он пишет JSONL-файлы в папку (Shared Folder, Syncthing, iCloud), причём редирект происходит на лету, а импорт идемпотентен. Можно и по ssh.
Из команд: deja <query> — поиск с поддержкой AND и подстрок; deja ctx — сжатый markdown-дайджест для подстановки в промпт; deja share — чистая выжимка сессии для коллеги; deja stats — статистика по проектам и харнессам. Размер индекса — около 2.4% от объёма логов.
Поддерживаются Claude Code, Codex CLI, opencode. aider и Gemini CLI в планах. deja принципиально отличается от cass (Rust, много провайдеров, семантический поиск) — он минималистичный, на одном маленьком Go-бинарнике, чисто лексический, без захвата данных. А от Mem0/Letta — тем, что не требует своего хранилища для записи нового: он просто подбирает то, что агенты уже наследили на диске, пусть и за месяцы до установки. Репозиторий — vshulcz/deja-vu. Лицензия MIT.