CLI для оценки качества кода в проекте на 14 языках: формирует общий рейтинг и ранжирует файлы.
Rafaelpta/dupehound
Локальный детерминированный инструмент для поиска дублирующегося кода: находит скопированные AI-агентами функции, даже если идентификаторы в них переименованы.
- Звёзды
- 102
- Форки
- 10
- Открытые issues
- 3
- Последний коммит
- 2 месяца назад
Что это?
dupehound — CLI-инструмент для поиска дублирующегося кода в репозиториях, где значительную часть кода пишут AI-агенты. Он разбирает каждую функцию с помощью tree-sitter, нормализует идентификаторы и литералы и вычисляет структурный отпечаток кода. Поэтому копия с переименованными идентификаторами всё равно будет сопоставлена с оригиналом.
Инструмент поддерживает три команды: scan находит группы дубликатов и рассчитывает общий для репозитория показатель «слопа»; history строит график дублирования по истории git и показывает, когда оно выросло; check завершает работу с ошибкой в CI или pre-commit, если изменение дублирует существующий код, и указывает функцию, которую следует использовать повторно. Инструмент работает полностью офлайн, без API-ключей и AI-моделей, и выдаёт один и тот же результат при каждом запуске.
В проект также входит режим MCP-сервера, позволяющий coding agent вызывать инструменты check и scan во время редактирования. Поддерживаются TypeScript, Python, Rust, Go, Java, C#, Kotlin и многие другие языки.
Ключевые возможности
- 01Находит переименованные копии, сравнивая структурные отпечатки кода, а не текст
- 02Команда scan находит группы дубликатов и рассчитывает общий для репозитория показатель «слопа»
- 03Команда history строит график дублирования по коммитам git
- 04Команда check блокирует CI и pre-commit при появлении новых дубликатов
- 05Работает офлайн и детерминированно, без AI и сетевого подключения
- 06Предоставляет coding agent инструменты check и scan через MCP
Сценарии использования
- Не позволяет AI-агенту повторно реализовывать функции, которые уже есть в репозитории
- Позволяет настроить проверку pull request в CI, чтобы обнаруживать новый дублирующийся код до слияния
- Помогает отслеживать рост дублирования в истории крупной кодовой базы
Быстрый старт
- 1
Установить с помощью cargo
cargo install dupehound - 2
Просканировать каталог на наличие дубликатов
dupehound scan [path]
Что важно знать
- Для команд history и check требуется, чтобы git был доступен в PATH.
- Флаги --include-classes и --containment являются экспериментальными и включаются только по желанию.
В подборках
Темы
Частые вопросы
- Что такое dupehound?
- Локальный детерминированный инструмент для поиска дублирующегося кода: находит скопированные AI-агентами функции, даже если идентификаторы в них переименованы. dupehound — CLI-инструмент для поиска дублирующегося кода в репозиториях, где значительную часть кода пишут AI-агенты. Он разбирает каждую функцию с помощью tree-sitter, нормализует идентификаторы и литералы и вычисляет структурный отпечаток кода. Поэтому копия с переименованными идентификаторами всё равно будет сопоставлена с оригиналом.
- dupehound можно использовать бесплатно? Какая у него лицензия?
- dupehound распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- dupehound всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в dupehound — 21 сент. 2026 г..
- Для чего можно использовать dupehound?
- Не позволяет AI-агенту повторно реализовывать функции, которые уже есть в репозитории Позволяет настроить проверку pull request в CI, чтобы обнаруживать новый дублирующийся код до слияния Помогает отслеживать рост дублирования в истории крупной кодовой базы
- Как установить dupehound?
- Установить с помощью cargo: cargo install dupehound Просканировать каталог на наличие дубликатов: dupehound scan [path]
- Где скачать dupehound?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Rafaelpta/dupehound
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Платформа для самостоятельного развертывания, которая анализирует проекты на наличие ошибок, уязвимостей и проблем с поддерживаемостью и применяет Quality Gates в CI-пайплайнах.
CLI для AI-ревью кода: детерминированный выбор файлов и правил сочетается с LLM-агентом, который оставляет комментарии к конкретным строкам Git diff.
Ix преобразует репозиторий в постоянный граф символов, вызовов и импортов, чтобы разработчики и AI-агенты могли запрашивать сведения о его структуре.
Открытый AI-ревьюер кода: проверяет pull request на GitHub и изменения в локальных ветках с помощью LLM любого провайдера.
CLI и веб-инструмент, который собирает весь репозиторий в один удобный для LLM файл, чтобы передать его Claude, ChatGPT и другим моделям.