deja-vu

Ваши кодинг-агенты больше не отлаживают заново то, что вы уже починили.

Claude Code, Codex, Cursor, OpenClaw, Gemini CLI, OpenCode, Hermes и ещё 36 агентов уже сохраняют каждую сессию на диск.
deja индексирует всю историю локально и возвращает нужный контекст через MCP и хуки — без LLM, один Go-бинарник.

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Português | Français | Deutsch | Русский | Türkçe | हिन्दी

vshulcz/deja-vu — Trendshift

GitHub Stars CI coverage Release npm License: MIT

Сайт и интерактивный поиск · Живое демо в браузере · Быстрый старт (RU) · Замеры · Сравнение

один и тот же вопрос одному и тому же агенту дважды: без памяти он не помнит ничего, с deja отвечает выводом восьмимесячной давности

```sh curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh deja install --auto ```

macOS и Linux · Windows, Homebrew, npm и плагины · Проверить сколько сессий уже на диске без установки: npx @vshulcz/deja-vu sources · Демо в браузере →

Полнота
97.2% R@5 на LongMemEval-S
все 500 вопросов · MemPalace 96.6%, agentmemory 95.2%
на тех же 19,195 сессиях: 19/100 на первом месте, у ближайшего 14
Токены
вдвое меньше токенов, чем у agentmemory
53,558 против 104,974 на уже решённой задаче
477 токенов на описание инструментов — меньше всех из семи
Индексация
13.6 с на индекс 19,195 сессий
следующий из семи: 72 с
26 мс до первого ответа, медиана поиска 97 мс

Драйверы, синтетический корпус и правила подсчёта лежат в репозитории · сравнение лоб в лоб и как перепроверить любую строку · прогоны LongMemEval и LoCoMo

## Установка ```sh curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh deja install --auto ``` Скрипт кладёт бинарник в `~/.local/bin`. Если этой папки ещё нет в `PATH`, вторая команда в той же оболочке не найдётся: запустите строку `next:`, которую печатает скрипт (в ней полный путь), или откройте новую оболочку, когда строка с `PATH` добавлена. Если `raw.githubusercontent.com` недоступен, есть зеркало в npm, версия та же: ```sh npm i -g @vshulcz/deja-vu --registry=https://registry.npmmirror.com deja install --auto ``` Десять секунд на установку, около десяти на индекс. Вторая команда подключает MCP-recall к каждому найденному агенту, включает отдачу контекста при старте сессии там, где агент это умеет, и строит первый индекс, чтобы следующая сессия ничего не ждала. Откройте новую сессию агента и спросите про то, что делали месяцы назад: > мы уже разбирались с jwt refresh rotation? посмотри в своей памяти Спрашивать и не обязательно: с включённым авто-recall агент уже на старте сессии знает, что в этом проекте было решено. Чтобы поискать самому, запустите `deja`. У opencode, DeepSeek Harness, Zed, Kimi Code, Codex CLI, Grok Build, OpenClaw, pi и Hermes есть пакеты в их собственных экосистемах — для тех, кто привык ставить расширения оттуда: ```sh opencode plugin opencode-deja dsh plugin --profile web add dsh-deja # Zed: найдите deja в панели расширений # Kimi Code: /plugins install https://github.com/vshulcz/deja-vu # Codex CLI: codex plugin marketplace add https://github.com/vshulcz/deja-vu && codex plugin add deja-vu@deja-vu # Grok Build: grok plugin marketplace add vshulcz/deja-vu && grok plugin install deja openclaw plugins install clawhub:@vshulcz/openclaw-deja && openclaw config set plugins.entries.deja-vu.hooks.allowConversationAccess true pi install npm:@vshulcz/pi-deja hermes plugins install deja-memory ``` `deja install --auto` подключает всё перечисленное само, так что любого из двух путей достаточно. Оба сразу тоже не сломаются: пакет смотрит, что написал `deja install`, и дописывает только недостающее — без дублей инструментов и без второго recall. Подробности в [`extensions/`](../../extensions). Тот же поиск существует как skill, который поставит любой агент, читающий `SKILL.md`: ```sh npx skills add https://github.com/vshulcz/deja-vu --skill deja-search # skills CLI: Claude Code, Cursor, Goose, Copilot… openclaw skills install @vshulcz/deja-search # ClawHub hermes skills install vshulcz/deja-vu/skills/deja-search # Hermes ``` Skill вызывает установленный бинарник `deja`, своего не несёт. Другие способы: `brew install deja-vu`, `go install github.com/vshulcz/deja-vu/cmd/deja@latest`, или `npx @vshulcz/deja-vu "запрос"`, чтобы попробовать ничего не устанавливая. На Windows установочный скрипт выходит с `unsupported OS` — это shell-скрипт; используйте `scoop install deja-vu` (есть в основном bucket Scoop) или `winget install vshulcz.deja-vu`, либо возьмите `deja-vu__windows_amd64.zip` из [последнего релиза](https://github.com/vshulcz/deja-vu/releases/latest) и положите `deja.exe` в `PATH`. Одного бинарника достаточно для полной работы: индексация, поиск, `show`, `ctx`, `blame`, `--json` и вычистка секретов не требуют больше ничего. `deja install` подключает MCP к вашим агентам и включает recall на старте сессии — это полезно, но не обязательно. ## Ищите сами `deja` без аргументов в терминале открывает поиск по истории всех агентов. Сначала там сессии, стоящие за вашими незакоммиченными изменениями, потом недавние в этом проекте, и список сужается по мере ввода.

В экране deja набирается запрос, найденная сессия открывается для чтения и продолжается в другом агенте

- `↑↓` выбирает сессию, `↵` открывает её на совпадении, `n` и `N` переходят между совпадениями, `esc` возвращает назад. Внутри сессии `/` ищет слово, `]` и `[` прыгают между вашими вопросами. - Строка поиска понимает фильтры: агент с двоеточием (`codex:`), `today`, `yesterday`, `week`, `month` и `in:<проект>`. - `r` возобновляет сессию в агенте, который её записал. `o` продолжает её в любом другом агенте, и тот начинает с того, что сессия спрашивала, решила и оставила открытым. - `tab` переключает между этим проектом, всеми проектами и Deleted — сессиями, которые их агент удалил, а deja ещё хранит; `R` возвращает такую на место. - `?` показывает все клавиши, в `^k` остальное (скопировать id сессии или путь проекта, забыть сессию), в списке `q` выходит; `esc` возвращает на шаг назад, а из пустой строки поиска выходит. С `DEJA_TUI=0` вместо экрана печатается текстовая сводка, она же `deja brief`. В pipe печатается, что проиндексировано и какую команду запустить дальше. ## Что это даёт **Решено в Codex — помнит Claude.** Сорок один кодинг-агент пишет каждый разговор в локальные файлы, deja превращает эти файлы в слой памяти, который читают все они. | | | | --- | --- | | **Поиск назад во времени** | `deja "connection pool exhausted"` ищет по гигабайтам, включая всё, что было до установки deja. Вопрос на естественном языке откатывается к режиму релевантности. Время — подсказка, а не фильтр. | | **Recall между агентами** | MCP-инструмент `deja` в режиме `recall` в любом агенте отвечает «это мы чинили три недели назад», кто бы тогда ни чинил. | | **Переживает компактацию** | Замерено на 43 компактациях: сводка сохранила 77% решений и 0.2% команд, которые вы запускали. Остальные 99.8% возвращает deja. В Claude Code и Codex deja записывает задачу, файлы и команды в момент начала компактации и один раз отдаёт их после неё. | | **Recall в момент действия** | Перед тем как агент правит файл или запускает команду, хук `PreToolUse` называет прежние решения по этому файлу, рабочий вариант этой команды или программу, которой на этой машине просто нет. Когда команда падает, хук `PostToolUse` показывает, что запускали после той же ошибки на этой машине — ровно та пара, про которую агент сам не спросит. | | **Индексируется работа, а не только слова** | Каждый открытый за ход файл, каждая запущенная команда с кодом возврата и точный фрагмент, который заменила правка. Ровно то, что теряет любая сводка. | Ещё: `deja promote --state rejected` помечает отменённое решение, и дальше каждое попадание показывает, что это пробовали и отвергли; попадание сообщает «4 файла этой сессии с тех пор изменились» и молчит, когда судить не может; `deja sync ssh laptop` переносит память между машинами только дописыванием, без облака посередине; `deja handoff --to codex` упаковывает текущий контекст, чтобы продолжить в другом агенте; ключи, токены, JWT и блоки приватных ключей известных форм вырезаются при индексации — но совпадение по шаблону не детектор секретов, незнакомая форма может пройти. ### Нарисуйте собственную работу `deja stats --card` рисует прямо в терминале; дайте имя файла — запишет SVG для README вашего профиля. Чтобы опубликовать в другом месте, [переведите в PNG](https://vshulcz.github.io/deja-vu/card/) — страница конвертирует в вашем же браузере.

карточка статистики deja: год сессий тепловой картой, из каких они агентов и какая была самой длинной

Полный справочник — на [сайте документации](https://vshulcz.github.io/deja-vu/). ## Приватность Индексация и поиск локальны. Сеть нужна только `deja update`, `deja sync ssh`, проверке версии внутри `deja doctor`, `deja embed`, который ходит на заданный вами эндпоинт (а когда семантический сайдкар собран, ещё и каждый поиск: он отправляет запрос на этот эндпоинт), и раз в день интерактивной команде, чтобы узнать последний релиз. Эта проверка не отправляет данных сессий; `DEJA_OFFLINE=1` или `DEJA_NO_UPDATE_NOTICE=1` её отключает. Учётные данные вычищаются при индексации: ключи AWS, присваивания `api_key=` и `token=`, bearer-токены и голые JWT, PEM-блоки приватных ключей, токены разных провайдеров, URL вида `scheme://user:pass@host`, высокоэнтропийные значения, под которые нет правила, и пароли, написанные прозой — «the admin password is …», где опереться не на что. Значение становится `[redacted:]`, текст вокруг остаётся доступным для поиска. `deja share` и `deja sync export` чистят ещё раз при экспорте. Совпадение по шаблону не детектор секретов: форма, которой нет в правилах, может пройти как есть — см. модель безопасности. `deja forget` убирает сессии из перестроенного индекса и оставляет надгробие, так что следующий `deja index` не поднимет их обратно из исходной истории. [Модель безопасности](../../docs/SECURITY-MODEL.md) описывает потоки данных, границы вычистки, допущения о доверии и проверку релизов. ## Командная строка Голый `deja` в терминале открывает [экран поиска](#ищите-сами). С запросом или любой командой ниже он печатает результат и завершается: ```text $ deja "jwt refresh token" [claude] api · Jul 8 · 8f31c0a9 — 2 matches login started failing after refresh token rotation; jwt kid mismatch in tests fixed by reloading jwks cache after rotateKey and adding a clock-skew test [codex] web · Jul 1 · b77d91e2 — 1 match refresh token cookie needed SameSite=Lax in local callback flow ``` | Команда | Что делает | | --- | --- | | `deja <запрос>` | Ищет по всей истории. Несколько слов — это AND, кавычки требуют точной последовательности; когда точного попадания нет, пробует словоформы и близкие написания. | | `deja` | В терминале — экран поиска, описанный выше. `deja brief` вместо него печатает текстовую сводку: сегодняшние сессии, что отдала deja, недавняя работа и запрос, который стоит попробовать. | | `deja wip` | Чем занималась прошлая сессия в этом каталоге: задача, к чему пришли, открытые файлы, последняя команда и упала ли она. Всё выведено из записей, без опоры на чьи-то заметки. | | `deja blame <путь>[:строка]` | Какие сессии обсуждали этот файл, что решили и почему. Со строкой: коммит, изменивший её последним, и сессия, которая написала эту строку или текст, заменённый этим коммитом. | | `deja files <тема>` | В обратную сторону: какие файлы на самом деле трогала работа по теме. | | `deja how <инструмент>` | Как эту вещь реально запускают на этой машине, с настоящими аргументами, из команд, которые агенты уже выполняли. | | `deja fix <ошибка>` | Что запускали после той же ошибки на этой машине, и после чего она больше не появлялась. Никогда не merge, force push или удаление. | | `deja friction` | Ошибки, попавшие в три и больше разных сессий, с указанием, из каких они инструментов. | | `deja ctx <запрос>` | Markdown-выжимка лучшего попадания вместе с кодом, который та сессия изменила, годная прямо в промпт. | | `deja resume ` | Открывает найденную сессию заново в её родном инструменте. | | `deja view` | Выгружает всю память в один локальный HTML-файл. Без сервера, ничего не уходит с машины. | | `deja doctor [--deep]` | Самопроверка; с `--deep` сверяет индекс с исходными файлами. | | `deja mcp` | MCP-сервер по stdio — тот самый, который подключает `deja install`. | Полный справочник — в [документации команд](https://vshulcz.github.io/deja-vu/guide/commands.html). ### MCP-инструменты Сервер отдаёт один инструмент `deja`, режим выбирается параметром `mode`: `recall`, `context`, `blame`, `fix`, `how`, `orient`, `remember`, `handoff`. `deja install` подключает его сам — это важно знать только при ручной настройке агента. Прежние шесть имён инструментов продолжают работать у уже подключённых клиентов. Один инструмент вместо семи — это про стоимость, а не про стиль. Подключённый MCP-сервер отправляет описания своих инструментов с каждым запросом, так что за них платят каждый ход независимо от того, вызвал агент что-нибудь или нет: здесь 477 токенов против 8,283 у самого крупного из семи измеренных серверов. У самой deja было 828, пока схему не свели к одному инструменту с режимами. ## Поддерживаемые инструменты С включённым авто-recall Claude Code и Codex отдают deja текущую запись в момент начала компактации, и она сохраняет то, что сводка вот-вот потеряет: задачу, выводы, файлы, чем закончилась каждая команда и что осталось недоделанным. Следующий хук в той же сессии и том же рабочем каталоге возвращает это одним куском, не больше 4 КБ, со строкой о том, менялся ли репозиторий с тех пор. `deja stats` считает количество вызовов инструментов между компактацией и первой правкой — этим и меряли. Подробности во [восстановлении после компактации](../../docs/compaction.md). Claude Code · Cline · Codex CLI · opencode · aider · Gemini CLI · Cursor · Antigravity · Grok Build · Hermes · Goose · Qwen Code · Kimi Code · pi · omp (Oh My Pi) · OpenClaw · Copilot CLI · VS Code Copilot Chat · Amp · prime-agent (PrimeIntellect) · Roo Code · Continue · Crush · DeepSeek Harness · Cherry Studio · Senpi · gajae-code · Kimchi Coding · Command Code · ZCode · CodeWhale · Reasonix · Kiro · Kilo Code · CodeBuddy Code · TRAE CLI · Muse Code · Junie · JetBrains AI Assistant · Devin CLI · Windsurf / Devin Desktop · MiniMax Code · Zed. Что именно каждый из них поддерживает — MCP-recall, авто-recall, skills, команды, resume, handoff — см. в [матрице возможностей в английском README](../../README.md#supported-harnesses). Нестандартные пути к хранилищам задаются переменными `DEJA_*_ROOT`, переменные миграции самих инструментов тоже учитываются. ### Агенты со своим пакетом `deja install --auto` подключает эти так же, как остальные, и это всегда самый короткий путь. Заодно у каждого есть пакет в своей экосистеме — для тех, кто ставит расширения оттуда: | Агент | Пакет | Установка | | --- | --- | --- | | opencode | npm `opencode-deja` | `opencode plugin opencode-deja` | | DeepSeek Harness | npm `dsh-deja` | `dsh plugin --profile web add dsh-deja` | | Zed | `deja-context-server` | Zed → Extensions → deja | | Kimi Code | плагин `deja` | `/plugins install https://github.com/vshulcz/deja-vu` | | Codex CLI | плагин `deja-vu` | `codex plugin marketplace add https://github.com/vshulcz/deja-vu`, затем `codex plugin add deja-vu@deja-vu` | | Grok Build | плагин `deja` | `grok plugin marketplace add vshulcz/deja-vu`, затем `grok plugin install deja` | | OpenClaw | ClawHub и npm `@vshulcz/openclaw-deja` | `openclaw plugins install clawhub:@vshulcz/openclaw-deja` | | pi (и omp) | npm `@vshulcz/pi-deja` | `pi install npm:@vshulcz/pi-deja` | | Hermes | провайдер памяти `deja-memory` в каталоге плагинов Hermes | `hermes plugins install deja-memory` или с GitHub: `hermes plugins install vshulcz/deja-vu/extensions/hermes` | Любого пути достаточно, оба вместе тоже не мешают: каждый пакет сначала читает то, что записал `deja install`. opencode, dsh и OpenClaw дописывают только недостающее; Kimi, Grok, Codex и pi уступают, если установщик уже всё подключил; в Zed обе стороны используют один и тот же id сервера. Так что порядок установки значения не имеет. Все они используют уже установленный вами deja, своя копия внутри пакета — только запасной вариант. ## Семантический recall, по желанию Укажите `deja embed` на локальную Ollama, LM Studio или любой OpenAI-совместимый эндпоинт через `DEJA_EMBED_URL`, и вопрос другими словами тоже попадёт. Без доступного рантайма лексический поиск и MCP-recall работают как обычно. ## Доказательства

На 58% меньше токенов на задаче, которую эта машина уже решала · 88.9% hit@1 на LongMemEval-S (очищенный набор из 470 вопросов) · 71.9% на LoCoMo · поиск по гигабайтам истории за миллисекунды
По 11 прогонов на плечо: 53,558 токенов против 126,222 без всякой памяти; на более поздней сборке, снова по 11 прогонов: 52,815 против 103,443 · во что обходится одна задача · оба стенда для оценки поиска лежат в этом репозитории и прогоняются на публичных датасетах за минуты · проверьте цифры сами

```sh deja bench recall # нижняя граница регрессии ранжирования: 100 запросов, половина по-русски, CI падает при просадке deja bench context # 30 цепочек задач с сидами плюс пять негативных контролей deja bench block # остался ли ответ в том куске текста, который отдали deja bench prompt # когда пословный хук заговаривает и когда заговаривает зря deja bench ingest # цена одного обновления индекса: без изменений, +один ход, +один файл записи, полная перезапись файла deja bench read # сколько стоит прочитать хранилище в базе данных и что с ним делает одно длинное значение ``` Контекстный эксперимент сравнивает recall deja с полной историей, наивным grep и холодным стартом. На сиде по умолчанию: | Подход | Медиана токенов | Медиана покрытия | Токены негативного контроля | | --- | ---: | ---: | ---: | | deja-recall | 1,096 | 1.00 | 0 | | full-history | 80,547 | 1.00 | 78,145 | | naive-grep | 273,238 | 1.00 | 0 | | cold | 0 | 0.00 | 0 | То же покрытие фактов, что и у grep по сырым логам, при примерно в 250 раз меньшем числе токенов; примерно в 70 раз меньше, чем у сессий, найденных полным проигрыванием; и ничего не подставляется в цепочки, для которых подходящей истории нет. Генератор корпуса и разметка релевантности — обычный читаемый Go. Прежде чем верить любым цифрам, разберитесь, как в них определено «релевантно» — включая наши. Замерено на настоящем хранилище: 2,419 сессий, 179k сообщений, 1.9 ГБ записей. | Метрика | Результат | | --- | --- | | Запрос внутри процесса | медиана **0.7–0.8 мс**, около 15 мс на стогах LongMemEval-S | | `deja <запрос>` целиком | медиана около 0.2 с на этом хранилище: старт процесса, проверка свежести всех хранилищ, ранжирование, вывод | | Только проверка свежести | около 50 мс, когда ничего не менялось | | Размер индекса | 200 МБ, около 10% корпуса | Индекс инкрементальный. Когда файл сессии дописан, перечитывается только он. ## Как это устроено Локальный инвертированный индекс в `~/.cache/deja`: разбирает JSONL- и SQLite-хранилища, вычищает секреты, пишет `records.bin` и словарные корзины и держит состояние каждого файла в `manifest.gob`, поэтому повторный запуск забирает только изменившееся. MCP-сервер, статистика, share и sync читают этот же индекс. Подробности в [docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md). ## Частые вопросы
Чем это отличается от других инструментов памяти? | | deja | Платформы памяти
(Mem0, Letta, memU) | Поиск по сессиям
(cass) | | --- | :-: | :-: | :-: | | Знает работу, которая была до установки | да | нет | да | | Нужен шаг сбора | нет, запись и есть память | агент или ваш код пишет факты | нет | | Нужен ключ к LLM или эмбеддингам | нет | да | по желанию | | Отдаёт контекст, когда его не спрашивали | на старте сессии и перед выполнением инструмента | нет | нет | [Полное сравнение](https://vshulcz.github.io/deja-vu/guide/compare.html) охватывает пятнадцать из них.
Это замедлит агента? Один recall — лексический запрос к локальному индексу: медиана 0.7–0.8 мс, ничто не ждёт модель. Хук добавляет старт процесса и проверку свежести хранилищ — на индексе из 19k сессий хук на каждый промпт занимает 107 мс по медиане.
Где лежит история сессий Claude Code и можно ли по ней искать? В `~/.claude/projects`, по одному JSONL-файлу на сессию; Codex — в `~/.codex/sessions`, Cursor — в SQLite `state.vscdb`. deja читает их на месте: голый `deja` открывает экран, где их можно искать и читать, `deja search` делает то же из скрипта, `deja last` показывает последние сессии всех агентов, `deja view` открывает всю историю одной локальной страницей. Пути по агентам — в [где хранятся сессии](https://vshulcz.github.io/deja-vu/guide/where-sessions-are-stored.html).
История сессий Claude Code пропала — она потеряна? Claude Code удаляет записи старше 30 дней (`cleanupPeriodDays` в `~/.claude/settings.json`), и `claude --resume` показывает только то, что осталось. Сессии, которые deja проиндексировала до уборки, ищутся и после исчезновения файлов. Подробности в [файлах сессий на диске](https://vshulcz.github.io/deja-vu/guide/session-files-on-disk.html).
Как удалить всё? ```sh deja uninstall --all rm -rf ~/.cache/deja ~/.local/share/deja ~/.config/deja ``` Индекс лежит в `~/.cache/deja`, заметки `remember` и `promote` в `~/.local/share/deja`, правила, список исключений и запускатель хуков в `~/.config/deja` (или под `XDG_DATA_HOME` и `XDG_CONFIG_HOME`, если они заданы; на Windows заметки в `%AppData%\deja`).
## Руководства - **Контекст и восстановление:** [Помнит ли кодинг-агент прошлые разговоры?](https://vshulcz.github.io/deja-vu/ru/guide/does-my-agent-remember.html) · [Агент потерял контекст](https://vshulcz.github.io/deja-vu/guide/lost-context.html) · [Контекстное окно заполнено](https://vshulcz.github.io/deja-vu/guide/context-window-full.html) · [Что теряет компактация](https://vshulcz.github.io/deja-vu/guide/after-compaction.html) · [Почему агенты забывают между сессиями](https://vshulcz.github.io/deja-vu/guide/forgetting.html) - **Поиск и продолжение работы:** [Продолжить вчерашнюю сессию](https://vshulcz.github.io/deja-vu/guide/resume-a-session.html) · [Найти сессию, где это решили](https://vshulcz.github.io/deja-vu/guide/find-a-session.html) · [Агент снова сделал ошибку, которую вы уже чинили](https://vshulcz.github.io/deja-vu/guide/repeated-mistakes.html) · [Сменить агента](https://vshulcz.github.io/deja-vu/guide/switching-agents.html) - **Файлы сессий и очистка:** [Файлы сессий на диске](https://vshulcz.github.io/deja-vu/ru/guide/session-files-on-disk.html) · [Где каждый агент хранит историю](https://vshulcz.github.io/deja-vu/guide/where-sessions-are-stored.html) · [state.vscdb в Cursor слишком большой](https://vshulcz.github.io/deja-vu/ru/guide/cursor-state-vscdb-too-large.html) · [История сессий Codex CLI](https://vshulcz.github.io/deja-vu/ru/guide/codex-history.html) - **Эксплуатация и стоимость:** [Аудит того, что делали агенты](https://vshulcz.github.io/deja-vu/guide/auditing-agents.html) · [Экспорт разговора](https://vshulcz.github.io/deja-vu/guide/export-conversations.html) · [Между машинами](https://vshulcz.github.io/deja-vu/guide/sync-across-machines.html) · [Во сколько токенов обходится память](https://vshulcz.github.io/deja-vu/guide/token-cost.html) По инструментам: [opencode](https://vshulcz.github.io/deja-vu/guide/memory-for-opencode.html) · [Zed](https://vshulcz.github.io/deja-vu/guide/memory-for-zed.html) · [Grok Build](https://vshulcz.github.io/deja-vu/guide/memory-for-grok.html) · [Gemini CLI](https://vshulcz.github.io/deja-vu/guide/memory-for-gemini.html) · [OpenClaw](https://vshulcz.github.io/deja-vu/guide/memory-for-openclaw.html) · [Goose](https://vshulcz.github.io/deja-vu/guide/memory-for-goose.html) · [Cline](https://vshulcz.github.io/deja-vu/guide/memory-for-cline.html) · [pi и omp](https://vshulcz.github.io/deja-vu/guide/memory-for-pi.html) · [Hermes](https://vshulcz.github.io/deja-vu/guide/memory-for-hermes.html) ## Разработка `make build test lint`, дальше [CONTRIBUTING.md](../../CONTRIBUTING.md). Новый инструмент начинается с [реестра парсеров](../../docs/ARCHITECTURE.md#source-parsers). Приоритеты и то, чего мы делать не собираемся, — в [ROADMAP.md](../../ROADMAP.md). ## Лицензия MIT © [Vladislav Shulcz](https://github.com/vshulcz) ⭐ [Star deja-vu on GitHub](https://github.com/vshulcz/deja-vu)