Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

CoDiff: локальный diff-вьюер от автора Jest, который хочет вернуть код-ревью на ваш собственный лэптоп

Знакомая ситуация: набираешь git diff --cached, экран заливает простыня плюсиков и минусов на терминале, глаз цепляется не за то, и через пятнадцать минут уже сидишь и думаешь — а что я вообще менял-то? CoDiff — это попытка решить именно эту боль: вместо «открой PR, чтобы посмотреть свой же код по-человечески», прогнать staged и unstaged изменения через нативное десктопное окно прямо перед коммитом. Проект ведёт nkzw-tech, и за этим неймспейсом стоит Christoph Nakazawa — тот самый чувак из бывшей команды Jest и Athena в Meta. Контекст здесь важен: парень знает, как делать инструменты для разработчиков, потому что десятилетие этим и занимался. По сути — локальный PR-вьюер для ревью staged и unstaged Git-изменений перед коммитом. Звучит просто, но идея зашитая в формулировку — это «PR-вьюер», а не «ещё один diff tool». То есть авторы хотят воспроизвести именно тот опыт, который у нас уже годами выработан на GitHub: side-by-side, файлы в сайдбаре, можно навешивать комментарии — но без нео
Оглавление

Знакомая ситуация: набираешь git diff --cached, экран заливает простыня плюсиков и минусов на терминале, глаз цепляется не за то, и через пятнадцать минут уже сидишь и думаешь — а что я вообще менял-то? CoDiff — это попытка решить именно эту боль: вместо «открой PR, чтобы посмотреть свой же код по-человечески», прогнать staged и unstaged изменения через нативное десктопное окно прямо перед коммитом. Проект ведёт nkzw-tech, и за этим неймспейсом стоит Christoph Nakazawa — тот самый чувак из бывшей команды Jest и Athena в Meta. Контекст здесь важен: парень знает, как делать инструменты для разработчиков, потому что десятилетие этим и занимался.

Что это вообще такое

По сути — локальный PR-вьюер для ревью staged и unstaged Git-изменений перед коммитом. Звучит просто, но идея зашитая в формулировку — это «PR-вьюер», а не «ещё один diff tool». То есть авторы хотят воспроизвести именно тот опыт, который у нас уже годами выработан на GitHub: side-by-side, файлы в сайдбаре, можно навешивать комментарии — но без необходимости пушить ветку и ждать, пока ребята из CI прогонят пайплайн.

Под капотом — Electron-приложение на TypeScript. Рендерер общается с source-based repository API; первая версия UI использует working-tree источник для staged и unstaged изменений, а Electron-bridge уже имеет готовые источники для commit history и commit-diff — под будущий history picker. Запускается командой pnpm codiff, упакованный CLI называется codiff, и — вот это симпатично — если запустить его в нескольких репозиториях, для каждого открывается отдельное нативное окно.

Технический стек, на котором это всё стоит

Заглянул в репозиторий — ничего экзотического, но выбор инструментов говорящий:

🛠️ Electron — потому что для нативного окна с быстрым рендерингом diff'ов это до сих пор самый практичный способ, особенно если хочется одинаковый опыт на маке и винде

⚡ Vite + TypeScript — современный фронтенд-стек, hot-reload в разработке, компактный билд

📦 pnpm + pnpm-workspace — монорепозиторий, что для проекта с Electron-bridge и рендерером логично

🎨 Чистый CSS (без UI-фреймворков навроде Tailwind) — почти 20% кода, это намекает, что автор именно вылизывает интерфейс руками, а не натягивает шаблон

📜 MIT License — открыто, без подвохов

Что характерно: на момент просмотра у репозитория всего три коммита и 91 звезда, релизов в Releases не опубликовано. То есть в новости пишут «вышла новая версия», но фактически инструмент пока живёт как pnpm-сборка из исходников — установка через клонирование и pnpm build. Это не плохо, это просто стадия «public alpha» с понятной траекторией.

А что там с AI-разбором изменений?

В исходной новости упоминается команда codiff -w, которая якобы генерирует ИИ-разбор внесённых изменений, а также Install Terminal Helper и экспорт в Markdown. В README репозитория этих штук я не нашёл — пока там только базовый запуск pnpm codiff. Так что либо это фичи из roadmap, либо они в неопубликованном релизе, либо часть пресс-материалов опередила реальность. Это нормальная история для early-stage open source — но честно об этом стоит сказать.

И вот тут начинается интересное: даже если AI-фичи будут добавлены позже, сама идея — заставить LLM прочитать твой diff перед коммитом и сказать «эй, ты тут случайно console.log забыл», «эта функция теперь не покрыта тестами», «вот эта правка ломает контракт API, который потребляется в другом файле» — это правильное место для ИИ в воркфлоу. Не «напиши за меня код», а «посмотри свежим взглядом то, что я уже написал». Я в своей повседневной рутине через Claude Code примерно так и делаю — прошу прогнать diff перед коммитом, потому что собственный глаз замыливается уже после второго рефакторинга.

Контекст: CoDiff не один в этом поле

Тут важная штука — за 2025 год накопилась целая мини-экосистема инструментов с похожей идеей «посмотри diff красиво до того, как пушить». Чтобы было понятно, в какой компании играет CoDiff:

🌐 difit — крошечный CLI, который превью Git diff в браузере GitHub-подобным интерфейсом, без GitHub token, аутентификации и интернета. Под Node.js, ставится через npx difit.

📄 justshowmediff — отдельная философия: генерирует единый HTML-файл и открывает его — без зависимостей, без сервера, без конфига. Сделано специально под workflows, где у тебя нет полноценного редактора: Claude Code, Codex, headless-агенты.

🪟 diffity — GitHub-стиль diff-вьюер, заточенный под Claude Code, Cursor и другие AI-тулы, с богатым набором режимов сравнения веток, тегов и коммитов.

🖥️ mamediff — TUI-редактор для управления unstaged и staged Git-диффами, вдохновлённый Magit, на Rust, через cargo install.

И тут CoDiff занимает свою чёткую нишу: не CLI с веб-превью, не TUI, а именно нативное десктопное приложение — самостоятельная иконка в Dock, отдельные окна на репозиторий. Это ставка на то, что код-ревью — это отдельное состояние сознания, и оно заслуживает отдельного приложения, а не вкладки в браузере посреди двадцати других.

Почему это вообще важно — мой взгляд

Я последние месяцы много работаю с AI-агентами, которые сами генерируют код, и заметил такую вещь: чем больше кода пишет агент, тем критичнее становится момент «человеческой проверки» перед коммитом. Когда ты сам написал 100 строк — ты помнишь, что и зачем. Когда Claude Code или Codex написал 800 строк по твоему промпту — ты уже не контролируешь это вниманием, ты контролируешь это инструментами.

В этой парадигме хороший локальный diff-вьюер — это не «удобная фича для эстетов», это критическая инфраструктура. И факт, что таких инструментов появилось сразу несколько за один год, говорит, что индустрия это чувствует. Мы коллективно мигрируем от «git diff в терминале достаточно» к «нужен полноценный UI для ревью своего же кода, желательно с AI-помощником рядом».

Ещё один момент, который я лично ценю в подходе nkzw-tech — это 1 окно = 1 репозиторий. Звучит мелочь, но когда параллельно ведёшь два-три проекта (а у меня сейчас в работе и стажировочные таски, и pet-проекты, и хакатоны), физическое разделение по окнам экономит когнитивную нагрузку. Это та самая инженерная вежливость, когда автор думал об эргономике, а не просто галочки в фичелисте проставлял.

Подводные камни и трезвый взгляд

Где можно зацепиться:

🍎 Пока упор на macOS — для линуксоидов и виндузятников придётся либо собирать самим из исходников (что для Electron-приложения вполне реально), либо ждать сборок

📊 91 звезда и три коммита — это очень ранняя стадия, готовьтесь к багам и активным API-изменениям

🔌 Зависимость от Electron — это +150 МБ к каждому экземпляру приложения, что не всем нравится; альтернативы вроде difit запускают вообще ничего не устанавливая

🧪 Релизов в Releases пока нет, так что историю про «новую версию» воспринимайте скорее как анонс направления, а не как «бери и скачивай dmg»

Заключение и прогноз

CoDiff — это правильный проект в правильное время от человека, который разбирается в developer experience. Он закрывает реальную и растущую боль (ревью локальных изменений), он находится в правильной нише (нативное приложение, а не очередной браузерный вьюер), и за ним стоит команда с трекрекордом в инструментах для разработчиков.

Но это пока ранняя стадия. Если вы early adopter, любите щупать новое и не боитесь собирать из исходников через pnpm — берите, играйтесь, шлите PR'ы. Если вы хотите готовое решение «прямо сейчас» — посмотрите на difit или diffity, они зрелее, проще ставятся и закрывают 80% сценариев.

Что будет дальше — посмотрим. Если nkzw-tech действительно докрутит AI-ревью через codiff -w, history picker (источники для которого уже заложены в Electron-bridge) и кросс-платформенные сборки — это вполне может стать «тем самым» инструментом, который заменит привычку «открыть PR на гитхабе, чтобы посмотреть свой же код». А если нет — он всё равно останется красивым техническим референсом того, как нужно делать локальные devtools в 2026 году.

Источники

🔗 Оригинальная новость: github.com/nkzw-tech/codiff/releases

🔗 Репозиторий CoDiff на GitHub: github.com/nkzw-tech/codiff

🔗 Полная статья на telegra.ph: Git без стресса — как CoDiff учит работать умнее

🔗 difit (для сравнения): github.com/yoshiko-pg/difit

🔗 justshowmediff: github.com/msoedov/justshowmediff

🔗 diffity: github.com/kamranahmedse/diffity

🔗 mamediff: lib.rs/crates/mamediff