Пейджер с подсветкой синтаксиса для вывода git, diff, grep и blame, который можно использовать вместо стандартного пейджера git.
ivankovic/omnidiff
Учитывающий содержимое diff-инструмент на Rust: сравнивает код по структуре с помощью tree-sitter, а также изображения, шрифты, архивы и PDF.
- Звёзды
- 1,168
- Форки
- 28
- Открытые issues
- 9
- Последний коммит
- 19 часов назад
Что это?
OmniDiff — diff-инструмент для командной строки и терминала, который выбирает способ сравнения файлов в зависимости от их типа. Для исходного кода на 25 языках он разбирает каждый файл с помощью грамматики tree-sitter и подсвечивает только действительно изменившиеся части — например, переименованное выражение, — вместо того чтобы помечать целые строки как удалённые и добавленные. Файлы с неизвестными расширениями сравниваются как обычный текст.
Нетривиальные файлы сравниваются по содержимому, а не по именам. Изображения сравниваются попиксельно, анимации — покадрово. Шрифты сравниваются по глифам, архивы — по файлам, PDF — по страницам; каждое изменение помечается с учётом того, насколько оно заметно читателю. Для любых других бинарных файлов выводится однострочное уведомление об отличиях.
OmniDiff работает как интерактивный просмотрщик с двумя панелями, выводит обычный текст или JSON для скриптов и CI, а также может служить бэкендом для git difftool, git diff через GIT_EXTERNAL_DIFF и Jujutsu (jj). Установить его можно через Cargo, Homebrew, apt, Nix или готовые бинарные сборки для Linux, macOS и Windows.
Ключевые возможности
- 01Структурное сравнение кода на 25 языках программирования и разметки с помощью грамматик tree-sitter.
- 02Попиксельное сравнение изображений, в том числе кадров анимации.
- 03Сравнение шрифтов по глифам и PDF — постранично.
- 04Сравнение архивов по файлам, включая вложенные архивы.
- 05Интерактивный TUI, вывод текста без интерактивного интерфейса и вывод JSON.
- 06Интеграция с git difftool, git diff и Jujutsu (jj).
Сценарии использования
- Проверка рефакторингов, при которых изменилось всего несколько выражений.
- Проверка изменений в шрифте, наборе иконок или PDF-схеме, хранящихся в git.
- Использование в скриптах или CI-пайплайнах, которым нужен машиночитаемый вывод diff.
- Замена стандартного git difftool на просмотрщик, учитывающий синтаксис.
Быстрый старт
- 1
Установите с помощью Homebrew (macOS и Linux)
brew install ivankovic/omnidiff/omnidiff - 2
Или соберите из исходного кода с помощью Cargo (нужны компилятор C и Rust 1.92 или новее)
cargo install --locked omnidiff - 3
Откройте два файла в интерактивном просмотрщике
omnidiff BEFORE AFTER
Что важно знать
- На значке в README указана лицензия AGPL-3.0-only — лицензия с авторским левом, хотя в метаданных репозитория обнаруженная лицензия не указана.
- Для сборки из исходного кода нужны компилятор C и Rust 1.92 или новее; первая команда cargo install выполняется несколько минут.
В подборках
Темы
Частые вопросы
- Что такое omnidiff?
- Учитывающий содержимое diff-инструмент на Rust: сравнивает код по структуре с помощью tree-sitter, а также изображения, шрифты, архивы и PDF. OmniDiff — diff-инструмент для командной строки и терминала, который выбирает способ сравнения файлов в зависимости от их типа. Для исходного кода на 25 языках он разбирает каждый файл с помощью грамматики tree-sitter и подсвечивает только действительно изменившиеся части — например, переименованное выражение, — вместо того чтобы помечать целые строки как удалённые и добавленные. Файлы с неизвестными расширениями сравниваются как обычный текст.
- omnidiff можно использовать бесплатно? Какая у него лицензия?
- omnidiff распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- omnidiff всё ещё поддерживается?
- Активно поддерживается. Последний коммит в omnidiff — 6 нояб. 2026 г..
- Для чего можно использовать omnidiff?
- Проверка рефакторингов, при которых изменилось всего несколько выражений. Проверка изменений в шрифте, наборе иконок или PDF-схеме, хранящихся в git. Использование в скриптах или CI-пайплайнах, которым нужен машиночитаемый вывод diff. Замена стандартного git difftool на просмотрщик, учитывающий синтаксис.
- Как установить omnidiff?
- Установите с помощью Homebrew (macOS и Linux): brew install ivankovic/omnidiff/omnidiff Или соберите из исходного кода с помощью Cargo (нужны компилятор C и Rust 1.92 или новее): cargo install --locked omnidiff Откройте два файла в интерактивном просмотрщике: omnidiff BEFORE AFTER
- Где скачать omnidiff?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ivankovic/omnidiff
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Пейджер для Git, который показывает diff в терминале рядом друг с другом с подсветкой синтаксиса в стиле GitHub.
Консольная утилита для сравнения файлов по дереву синтаксиса, а не по строкам: она точно показывает переформатирование и перемещение кода.
Интерактивный терминальный просмотрщик diff для проверки изменений из Git, Jujutsu, Sapling, GitHub PR и обычных файлов с заметками агентов рядом с кодом.
CLI-инструмент, который запускает локальный веб-интерфейс в стиле GitHub для просмотра и обсуждения git diff с комментариями, которые можно копировать как промпты для ИИ.
Клон cat(1) для терминала с подсветкой синтаксиса, маркерами Git-изменений и автоматической прокруткой.