Show HN: Mindwalk превращает лог сессии ИИ-агента в 3D-карту кодовой базы

Show HN: Mindwalk превращает лог сессии ИИ-агента в 3D-карту кодовой базы

Лог сессии ИИ-агента фиксирует, что агент сделал, но не то, как он понял задачу: какие части репозитория счёл релевантными, где исследовал код перед тем как действовать, совпал ли его фактический охват с тем, что ожидал разработчик. Построчное чтение сырого лога в формате JSONL ответа на эти вопросы не даёт.

Mindwalk рисует репозиторий как ночную карту и проигрывает сессию как свет, движущийся по ней: там, где агент искал, читал и редактировал файлы, карта светится, всё остальное остаётся тёмным. По замыслу автора, понимание агентом задачи превращается в форму, которую видно с одного взгляда.

Инструмент, один Go-бинарник, который читает логи сессий Claude Code и Codex; вся обработка происходит локально, никакие данные сессии не покидают компьютер пользователя. Установка, однострочный скрипт (curl -fsSL .../install.sh | sh), который кладёт бинарник в ~/.local/bin и проверяет его по контрольным суммам (checksums.txt); версию можно зафиксировать переменной VERSION, каталог установки, переменной INSTALL_DIR. Для Windows архивы выложены в GitHub Releases; собрать всё из исходников можно командами make setup && make build.

Без аргументов mindwalk сканирует папки ~/.claude/projects и ~/.codex/sessions, поднимает веб-интерфейс на случайном локальном порту и открывает его в браузере. Есть отдельные команды: serve, запустить сервер (с флагами --port, --no-open, --claude-dir, --codex-dir), open <session.jsonl>, открыть конкретную сессию, build , сформировать JSON-карту репозитория, trace , сформировать нормализованный JSON-трейс сессии.

В интерфейсе, вид «дерево» (радиальное дерево) или «рельеф» (treemap), где яркость файла пропорциональна тому, насколько глубоко и часто агент его затрагивал. Для каждого файла хранится максимальный уровень взаимодействия: «замечен» (мшисто-зелёный), «прочитан» (белый, как лунный свет), «отредактирован» (тёплый янтарный), «не тронут» (тёмный). Отдельная индикаторная панель (HUD) сводит сигналы трения, долю ошибок, файлы, к которым агент возвращался повторно, правки после последней проверки, в общую полосу для ревью. Панель воспроизведения позволяет прокручивать или проигрывать сессию поверх гистограммы событий по времени: «холодные» действия, поиск, чтение, выполнение команд, и «тёплые», правки и проверки, окрашены по-разному, поэтому фазы редактирования сразу заметны. На шкале времени отдельными метками отмечены сжатия контекста, запуски подагентов и реплики пользователя, по каждой метке можно кликнуть и перейти к нужному моменту. Есть инспектор: клик по файлу закрепляет историю обращений к нему, клик по строке истории переносит плеер в этот момент. Управление доступно и с клавиатуры: пробел, пауза/воспроизведение, стрелки, шаг вперёд/назад (с Shift, сразу на 10 шагов), Home/End, к началу или концу, S, скорость, E, к следующей правке, X, к следующей ошибке, M, к следующей метке, Cmd+B, боковая панель сессий.

Внутри инструмент намеренно держит раздельными два артефакта: «трейс», нормализованный поток событий обращения к файлам (модуль internal/adapter, отдельный адаптер под формат лога каждого агента) и «карта города» (citymap), детерминированная раскладка репозитория (модуль internal/citymap): одно и то же дерево каталогов всегда даёт одну и ту же карту, поэтому повторы разных сессий можно сравнивать между собой. Локальный Go-сервер (internal/server) объединяет трейс и карту и отдаёт фронтенд на React и Three.js (папка web); папка schema/ описывает те же JSON-контракты, что экспортирует приложение.

Рабочий процесс разработки: make setup ставит зависимости фронтенда, make serve поднимает сервер для разработки на порту 8765, make test прогоняет тесты (go test) и сборку фронтенда, рекомендуется делать это перед отправкой pull request (PR), make build пересобирает встроенные ресурсы и сам бинарник bin/mindwalk. У проекта есть внутренние архитектурные правила (описаны в файле AGENTS.md): адаптеры ничего не знают о рендеринге, генерация карты города не зависит от плеера воспроизведения, а сервер лишь соединяет их между собой; Go-код обязан быть отформатирован через gofmt; папку internal/server/static руками не редактируют, она перегенерируется командой make build; при изменении форматов JSON для трейса или карты правки схемы в папке schema/ и соответствующих тестов делаются в том же изменении.

Пост опубликован в рубрике Show HN (раздел Hacker News, где авторы показывают собственные проекты) самим автором, пользователем cosmtrek; на момент фиксации новости у поста 32 балла и 7 комментариев, он появился около трёх часов назад, реакция сообщества пока минимальная.

Ключевые факты

  • Mindwalk визуализирует не то, что ИИ-агент сделал в коде, а то, как он понял задачу: репозиторий рисуется как ночная карта, а сессия проигрывается как свет, который движется по посещённым файлам.
  • Поддерживаются логи двух агентов, Claude Code (папка /.claude/projects) и Codex (/.codex/sessions); обработка полностью локальная, данные сессии никуда не отправляются.
  • Каждый файл хранит свой максимальный уровень взаимодействия, «замечен», «прочитан», «отредактирован» или «не тронут», а гистограмма и HUD показывают сигналы трения: долю ошибок, файлы, к которым агент возвращался, правки после последней проверки.
  • Установка, одна команда curl | sh с проверкой бинарника по контрольным суммам, есть сборка из исходников (make setup && make build) и отдельные архивы для Windows на GitHub Releases.
  • Технически это Go-бэкенд плюс фронтенд на React и Three.js; проект различает «трейс» сессии и детерминированную «карту города» репозитория, из-за чего результаты разных сессий по одному репозиторию можно сравнивать между собой.

Почему это важно

ИИ-агенты (Claude Code, Codex и им подобные) сейчас массово читают и правят код внутри репозиториев, но результат их работы обычно оценивают только по финальному диффу. Куда агент «смотрел» перед тем как начать редактировать, какие файлы счёл релевантными и не расползся ли он по коду шире нужного, из диффа не видно, а сырой лог сессии в формате JSONL для этого практически нечитаем. Mindwalk предлагает конкретный инструмент для новой задачи, проверки того, что именно ИИ-агент «понял» о кодовой базе перед тем, как её изменить.

Кому это важно

В первую очередь, разработчикам, которые уже используют Claude Code или Codex внутри своих репозиториев и хотят понимать охват и логику работы агента, а не только читать финальный дифф. Также инструмент полезен командам, которые проверяют чужие сессии с ИИ-агентом (например, тимлидам, оценивающим, не вышел ли агент за рамки задачи), и разработчикам инструментов для наблюдения за ИИ-агентами, Mindwalk сам с открытым кодом и может стать основой для похожих утилит.

Как это применить

Установка, одна команда: curl -fsSL https://raw.githubusercontent.com/cosmtrek/mindwalk/master/scripts/install.sh | sh, затем добавить ~/.local/bin в PATH и запустить mindwalk. Без аргументов утилита сама находит логи сессий Claude Code и Codex в стандартных папках, поднимает веб-интерфейс на локальном порту и открывает его в браузере, дальше сессию можно прокручивать или проигрывать, кликать по файлам на 3D-карте, чтобы увидеть историю обращений, и переходить по меткам (правки, ошибки, запуски подагентов) сразу к нужному моменту. Есть и точечные команды: open <session.jsonl>, открыть конкретный лог, build , построить карту репозитория отдельно, trace , получить нормализованный трейс сессии в виде JSON. Для Windows есть готовые архивы на GitHub Releases, для остальных систем, сборка из исходников через make setup && make build.

Можно ли доверять

Это Show HN, пост от самого автора инструмента (пользователь cosmtrek) о собственном открытом проекте, а не независимый обзор третьей стороны; на момент фиксации новости у поста 32 балла и 7 комментариев, он опубликован около трёх часов назад, то есть сообщество ещё не успело его толком проверить. В плюс инструменту, открытый исходный код на GitHub, скрипт установки, который сверяет бинарник с контрольными суммами (checksums.txt), возможность собрать всё из исходников самостоятельно и то, что заявленная обработка данных полностью локальная (ничего не уходит на сторонние серверы), это можно проверить по коду. Но независимой проверки заявлений автора (что карта действительно репрезентативна, что нет проблем на больших репозиториях) на момент новости нет.

Риски и подводные камни

Проект совсем свежий: минимальное число голосов и комментариев на Hacker News означает, что инструмент почти не обкатан сообществом, возможны ошибки на больших репозиториях или нестандартных структурах логов. Установка через curl | sh, распространённый, но по своей природе менее прозрачный способ, чем скачивание и проверка бинарника вручную (хотя контрольные суммы отчасти закрывают этот риск). Инструмент заточен именно под форматы логов Claude Code и Codex, для сессий других агентов он в текущем виде не подойдёт. Наконец, в описании ничего не сказано о лицензии, планах поддержки или том, как проект будет развиваться дальше, оценить его долгосрочную жизнеспособность пока не на чем.

«Понимание задачи агентом становится формой, которую видно с одного взгляда.»

— cosmtrek, автор Mindwalk (из описания проекта на Show HN)