jscpd
What it is
jscpd scans source-code repositories for duplication and can fail a build when repeated code exceeds a configured threshold. The project says it supports 224 languages. Exact clones are detected by default, with optional modes for renamed, near-miss, and semantic clones; semantic detection is described as experimental. Version 5 is offered as a self-contained native binary that does not require a Node.js runtime, with direct binaries for macOS, Linux, and Windows, including x64 and ARM64 variants. Reports are available in formats including HTML, JSON, XML, README badges, SARIF, CodeClimate, and OpenMetrics. Its GitHub Action can enforce a threshold and upload SARIF for GitHub Code Scanning, and the site documents GitLab CI reporters. Developers can also run it in pre-commit hooks through pre-commit, Husky, or a shell hook, as well as Docker. A dashboard summarizes project size, duplication, complexity, dead code, and a health score. Dead-code analysis covers JavaScript, TypeScript, and Python, plus Rust when compiler diagnostics are supplied. jscpd is open source and listed as free.
For and against
For
- Supports 224 languages, according to the project.
- Can enforce duplication thresholds in builds.
- Version 5 runs without a Node.js runtime.
- Includes GitHub Action and GitLab CI reporting.
Against
- Semantic clone detection is experimental.
- Dead-code analysis covers a limited set of languages.
The verdict
jscpd offers repository scanning, CI enforcement, multiple report formats, and local workflow integrations. Semantic clone detection remains experimental, and dead-code analysis has stated language limits.
Who it suits
It suits developers who want to check repositories for duplicated code locally or in CI/CD. Its reports, hooks, and CI integrations may be useful in established development workflows.
Plans and prices
jscpd open-source distribution
self-hosted CLI; installation via npm, PyPI, Cargo, Homebrew, Nix, Docker or installers
Read 15 Oct 2026 · github.com
jscpd
Open-source code detector · installs via curl, PowerShell, npm, pip, cargo, Homebrew, Nix, Docker, or npx
Read 29 Sep 2026 · jscpd.dev
On the record
- Agent skills
- Five installable skills provide workflows for duplication cleanup, dead-code removal and code migration tasks.jscpd.dev · read 15 Oct 2026
- AI integrations
- A built-in MCP server lets Claude, Cursor, or another MCP client check code for clones, and the project provides agent skills.jscpd.dev · read 29 Sep 2026
- API limitation
- The v5 CLI crate library target is internal and may change without notice; other languages are directed to JSON output or MCP.jscpd.dev · read 15 Oct 2026
- CI integrations
- The official GitHub Action accepts a duplication threshold and uploads SARIF results to GitHub Code Scanning; GitLab and generic CI workflows are documented.github.com · read 15 Oct 2026
- Clone types
- It detects exact clones by default and offers opt-in detection for renamed, near-miss, and semantic clones; semantic detection is described as experimental.jscpd.dev · read 29 Sep 2026
- Codebase analysis
- The dashboard summarizes project size, duplication, complexity, dead code, and a health score in one run.jscpd.dev · read 29 Sep 2026
- Codebase comparison
- Experimental compare mode pairs functions in two folders to measure porting progress or implementation parity.jscpd.dev · read 15 Oct 2026
- Community distribution
- Open Collective says the tool is used in pipelines at Microsoft, Salesforce and Deutsche Bahn and bundled by Super-Linter, Mega-Linter and Codacy.opencollective.com · read 15 Oct 2026
- Complexity analysis
- The complexity mode ranks files and folders by complexity without running a clone scan.jscpd.dev · read 15 Oct 2026
- Dashboard and health
- Dashboard and health modes combine duplication, dead-code and complexity measures into a scored project view.jscpd.dev · read 15 Oct 2026
- Dead-code analysis
- The dead-code mode reports unused files, exports, symbols and imports for JavaScript, TypeScript and Python.jscpd.dev · read 15 Oct 2026
- Dead-code limits
- The dashboard documentation says dead-code analysis covers JavaScript, TypeScript, and Python, plus Rust when compiler diagnostics are supplied.jscpd.dev · read 29 Sep 2026
- Developer workflow
- It can run in pre-commit hooks through the pre-commit framework, Husky, or a shell hook.jscpd.dev · read 29 Sep 2026
- Documentation depth
- Documentation includes installation, guides, concepts, CLI and configuration references, reporters, supported formats, Rust crates, MCP, benchmarks and migration material.jscpd.dev · read 15 Oct 2026
- Editor integration
- The language server supplies diagnostics and navigation actions for Neovim, Helix, Sublime Text, Emacs and JetBrains editors.jscpd.dev · read 15 Oct 2026
- Exact clones
- Default detection finds identical token sequences while ignoring whitespace, layout and comments.jscpd.dev · read 15 Oct 2026
- Git history
- The history mode scans commits over a range and charts duplication changes over time.jscpd.dev · read 15 Oct 2026
- Independent maintenance signal
- Snyk classified the project maintenance as healthy and reported one maintainer, active repository metadata and recent releases.security.snyk.io · read 15 Oct 2026