Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Code Clone Detection Tools
  3. jscpd

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

Free

self-hosted CLI; installation via npm, PyPI, Cargo, Homebrew, Nix, Docker or installers

jscpd

Free

Open-source code detector · installs via curl, PowerShell, npm, pip, cargo, Homebrew, Nix, Docker, or npx

Every plan, in full

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

Alternatives to jscpd

Every alternative, ranked