14言語に対応したCLIでプロジェクトのコード品質を採点し、総合スコアとファイル別ランキングを含むレポートを生成します。
Rafaelpta/dupehound
識別子が変更されたAIエージェントのコピーコードも検出できる、ローカルで動作する決定論的な重複コード検出ツールです。
- スター
- 101
- フォーク
- 10
- 未解決の Issue
- 3
- 最終コミット
- 2 か月前
これは何?
dupehoundは、コードの大部分をAIエージェントが書くようなコードベース向けの、コマンドライン重複コード検出ツールです。tree-sitterで各関数を解析し、識別子とリテラルを正規化してコード構造のフィンガープリントを作成するため、名前が変更されたコピーも元のコードと照合できます。
3つのコマンドを備えています。scanは重複コードのまとまりとリポジトリ単位のslopスコアを報告し、historyはgitの履歴全体で重複の推移をグラフ化して、増加した時期を示します。checkは変更によって既存コードとの重複が生じた場合にCIやpre-commitを失敗させ、再利用すべき関数名を示します。APIキーやAIモデルは不要で、完全にオフラインで動作し、実行するたびに同じ結果を返します。
コーディングエージェントが編集中にcheckやscanを呼び出せるよう、MCPサーバーモードも提供しています。対応言語はTypeScript、Python、Rust、Go、Java、C#、Kotlinなど多数です。
主な機能
- 01テキストではなくコード構造のフィンガープリントを使い、名前が変更されたコピーも検出
- 02scanで重複コードのまとまりとリポジトリ単位のslopスコアを報告
- 03historyコマンドでgitのコミット履歴全体にわたる重複の推移をグラフ化
- 04checkコマンドで新たな重複がある場合にCIとpre-commitを失敗させる
- 05AIやネットワーク接続なしで、オフラインかつ決定論的に動作
- 06checkとscanをMCPツールとしてコーディングエージェントに公開
ユースケース
- リポジトリにすでに存在する関数をAIコーディングエージェントが再実装するのを防ぐ
- CIでプルリクエストをチェックし、新たな重複コードをマージ前に検出する
- 大規模なコードベースで、履歴を通じて重複がどのように増えていくかを追跡する
クイックスタート
- 1
cargoでインストールする
cargo install dupehound - 2
ディレクトリ内の重複をスキャンする
dupehound scan [path]
使う前に知っておきたいこと
- historyコマンドとcheckコマンドを使うには、gitがPATH上にある必要があります。
- --include-classesフラグと--containmentフラグは実験的な機能で、明示的に有効にする必要があります。
収録されている特集
トピック
よくある質問
- dupehound とは?
- 識別子が変更されたAIエージェントのコピーコードも検出できる、ローカルで動作する決定論的な重複コード検出ツールです。 dupehoundは、コードの大部分をAIエージェントが書くようなコードベース向けの、コマンドライン重複コード検出ツールです。tree-sitterで各関数を解析し、識別子とリテラルを正規化してコード構造のフィンガープリントを作成するため、名前が変更されたコピーも元のコードと照合できます。
- dupehound は無料で使えますか?ライセンスは?
- dupehound は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- dupehound は今もメンテナンスされていますか?
- 半年以内に更新あり。dupehound の最終コミットは 2026年9月21日 です。
- dupehound は何に使えますか?
- リポジトリにすでに存在する関数をAIコーディングエージェントが再実装するのを防ぐ CIでプルリクエストをチェックし、新たな重複コードをマージ前に検出する 大規模なコードベースで、履歴を通じて重複がどのように増えていくかを追跡する
- dupehound のインストール方法は?
- cargoでインストールする: cargo install dupehound ディレクトリ内の重複をスキャンする: dupehound scan [path]
- dupehound はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Rafaelpta/dupehound
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
バグや脆弱性、保守性の問題をスキャンし、CIパイプラインでQuality Gatesを適用するセルフホスト型のコード品質・セキュリティプラットフォーム。
決定論的なファイル選択とルールにLLMエージェントを組み合わせ、Gitの差分に行単位のレビューコメントを付けるAIコードレビューCLIです。
Ixはリポジトリをシンボル、呼び出し、インポートの永続的なグラフに変換し、開発者やAIコーディングエージェントがその構造を照会できるようにします。
あらゆるモデルプロバイダーに対応し、GitHubのプルリクエストやローカルブランチの変更をLLMでレビューするオープンソースのAIコードレビュアー。
リポジトリ全体をLLMに渡しやすい1つのファイルにまとめる、CLIおよびWebツールです。