jscpd CLI
Детектор дублирующегося кода на более чем 220 языках с MCP-сервером для агента и отчетом, экономящим токены
- 6 545 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Запускается локально и сканирует исходный код проекта на дубли
- С флагом --mcp поднимает MCP-сервер по stdio и держит индекс в памяти
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/jscpdОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Запускается локально и сканирует исходный код проекта на дубли
- С флагом --mcp поднимает MCP-сервер по stdio и держит индекс в памяти
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
jscpd токенизирует код по правилам конкретного языка (свой синтаксис строк и комментариев для каждого формата), а затем ищет повторяющиеся последовательности токенов между файлами алгоритмом Рабина-Карпа. Помимо копипаста, инструмент умеет находить мертвый код, ранжировать файлы по сложности и отслеживать динамику дублирования по истории git. Отдельный флаг поднимает встроенный MCP-сервер поверх stdio, чтобы агент мог сам проверять фрагмент кода на дублирование или искать структурно похожие функции.
Для кого. Для разработчиков и инженеров качества кода, которые хотят находить дублирование и мертвый код вручную или через агента.
Подходит, если
- Нужно проверить проект на дублирующийся код перед мержем
- Агент должен сам проверять фрагмент кода на совпадения перед рефакторингом
- Нужно встроить проверку дублирования в CI как GitHub Action
Не подходит, если
- Нужен статический анализ логических ошибок, а не совпадений кода
- Формат файла не входит в список из 224 поддерживаемых
Пример запроса к агенту
Найди и исправь дублирование кода в этом проектеОграничения
Инструмент только читает исходный код проекта и не вносит изменений сам. MCP-режим запускает сканирование один раз при старте и держит его в памяти, поэтому на очень больших монорепозиториях старт может занимать заметное время.
Как отключить. Удалите пакет: npm uninstall -g jscpd (или cpd, если ставили под этим именем) либо удалите бинарник, поставленный через Homebrew, Cargo или Docker-образ.
Частые вопросы
Нужен ли Node.js для работы?
Нет, начиная с пятой версии jscpd это самодостаточный бинарник на Rust, Node.js нужен только для установки через npm.
Чем отличается MCP-режим от обычного сканирования?
Команда jscpd --mcp сканирует проект один раз и поднимает сервер по протоколу MCP через stdio, чтобы агент мог проверять отдельные фрагменты кода и искать похожие функции по запросу.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыMCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов
MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
CLI и MCP-сервер без зависимостей: строит по репозиторию граф вызовов, чтобы агент понял код без чтения файлов целиком
Мост MCP и LSP: агент получает типы, ссылки, диагностику и рефакторинг от языковых серверов, например Pyright.
Локальный индекс кодовой базы с десятью MCP-инструментами: граф зависимостей, история git, здоровье кода и архитектурные решения без повторного grep на каждом ш
MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке
Коротко о README
README описывает jscpd как детектор дублирующегося кода на более чем 220 языках с движком на Rust, который ставится как самодостаточный бинарник через npm, PyPI, Cargo, Homebrew, Nix или Docker. Кроме поиска копипаста, инструмент считает мертвый код, сложность файлов, динамику дублирования по git-истории и общий показатель здоровья проекта. Отдельно описан AI-режим: отчет с меньшим числом токенов для LLM-пайплайнов и встроенный MCP-сервер по stdio. Лицензия MIT.