git、diff、grep、blameの出力をシンタックスハイライト付きで表示するページャー。gitのデフォルトページャーと置き換えて使えます。
ivankovic/omnidiff
Rust製のコンテンツに応じたdiffツール。tree-sitterでコードを構造的に比較するほか、画像、フォント、アーカイブ、PDFも比較します。
- スター
- 1,168
- フォーク
- 28
- 未解決の Issue
- 9
- 最終コミット
- 6 時間前
これは何?
OmniDiffは、ファイルの種類に応じて比較方法を選ぶコマンドライン/ターミナル向けdiffツールです。25言語のソースコードはtree-sitterの文法で解析し、行全体を削除・追加として示すのではなく、名前が変わった式など、実際に変更された部分だけを強調表示します。拡張子が不明なファイルはプレーンテキストとして比較します。
テキスト以外のファイルは、名前ではなく内容をもとに処理します。画像はピクセル単位、アニメーションはフレーム単位で比較します。フォントはグリフ単位、アーカイブはファイル単位、PDFはページ単位で比較し、それぞれの変更が読者にどの程度見えるかをラベルで示します。それ以外のバイナリファイルは、差異があることを1行で通知します。
OmniDiffは、2ペインの対話型ビューアとして、スクリプトやCI向けのプレーンテキスト/JSON出力として、またgit difftool、GIT_EXTERNAL_DIFF経由のgit diff、Jujutsu (jj)のバックエンドとして利用できます。Cargo、Homebrew、apt、Nixからインストールできるほか、Linux、macOS、Windows向けのビルド済みバイナリも提供されています。
主な機能
- 01tree-sitterの文法を使い、25のプログラミング言語とマークアップ言語を構造的に比較します。
- 02アニメーションのフレームを含め、画像をピクセル単位で比較します。
- 03フォントをグリフ単位、PDFをページ単位で比較します。
- 04ネストされたアーカイブを含め、アーカイブをファイル単位で比較します。
- 05対話型TUI、ヘッドレスのテキスト出力、JSON出力に対応します。
- 06git difftool、git diff、Jujutsu (jj)と連携します。
ユースケース
- 一部の式だけが変更されたコードのリファクタリングをレビューする。
- gitで管理しているフォント、アイコンセット、PDF図面の変更点を確認する。
- 機械可読なdiff出力が必要なスクリプトやCIパイプラインで利用する。
- デフォルトのgit difftoolを、構文を認識するビューアに置き換える。
クイックスタート
- 1
Homebrewでインストール(macOSおよびLinux)
brew install ivankovic/omnidiff/omnidiff - 2
または、Cargoでソースからビルド(CコンパイラとRust 1.92以降が必要)
cargo install --locked omnidiff - 3
2つのファイルをインタラクティブビューアで開く
omnidiff BEFORE AFTER
使う前に知っておきたいこと
- READMEのバッジにはコピーレフトライセンスであるAGPL-3.0-onlyと記載されていますが、リポジトリのメタデータではライセンスが検出されていません。
- ソースからのビルドにはCコンパイラとRust 1.92以降が必要です。また、初回のcargo installには数分かかります。
収録されている特集
トピック
よくある質問
- omnidiff とは?
- Rust製のコンテンツに応じたdiffツール。tree-sitterでコードを構造的に比較するほか、画像、フォント、アーカイブ、PDFも比較します。 OmniDiffは、ファイルの種類に応じて比較方法を選ぶコマンドライン/ターミナル向けdiffツールです。25言語のソースコードはtree-sitterの文法で解析し、行全体を削除・追加として示すのではなく、名前が変わった式など、実際に変更された部分だけを強調表示します。拡張子が不明なファイルはプレーンテキストとして比較します。
- omnidiff は無料で使えますか?ライセンスは?
- omnidiff は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- omnidiff は今もメンテナンスされていますか?
- 活発にメンテナンス中。omnidiff の最終コミットは 2026年11月6日 です。
- omnidiff は何に使えますか?
- 一部の式だけが変更されたコードのリファクタリングをレビューする。 gitで管理しているフォント、アイコンセット、PDF図面の変更点を確認する。 機械可読なdiff出力が必要なスクリプトやCIパイプラインで利用する。 デフォルトのgit difftoolを、構文を認識するビューアに置き換える。
- omnidiff のインストール方法は?
- Homebrewでインストール(macOSおよびLinux): brew install ivankovic/omnidiff/omnidiff または、Cargoでソースからビルド(CコンパイラとRust 1.92以降が必要): cargo install --locked omnidiff 2つのファイルをインタラクティブビューアで開く: omnidiff BEFORE AFTER
- omnidiff はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ivankovic/omnidiff
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
GitHub風に差分を左右に並べ、シンタックスハイライト付きで表示するターミナル用Gitページャー。
行単位ではなく構文木でファイルを比較し、整形やコードの移動も正確に表示するコマンドラインdiffツール。
Git、Jujutsu、Sapling、GitHub PR、raw fileのコード変更を、エージェントのインラインメモとともにレビューできる対話型ターミナルdiffビューア。
Gitのコミット差分をレビューする、GitHub風のローカルWebビューアを起動するCLIツール。コメントはAI向けプロンプトとしてコピーできます。
シンタックスハイライト、Gitの変更箇所表示、自動ページャー機能を備えた、ターミナル向けのcat(1)クローン。