EVERYTHING XIAOMI
Get listed
jscpd logo

jscpd

jscpd is an open-source tool that scans repositories for repeated source code and can fail a build when duplication exceeds a configured threshold.

Place
#1 of 23
Score
7.4
jscpd's website

What jscpd is

jscpd is an open-source tool that scans repositories for repeated source code and can fail a build when duplication exceeds a configured threshold. The project says it supports 224 languages. Exact clones are detected by default; optional modes cover renamed, near-miss and semantic clones, with semantic detection described as experimental. Version 5 is offered as a self-contained native binary that does not need a Node.js runtime, with direct macOS, Linux and Windows binaries, including x64 and ARM64 variants. Reports can be generated in HTML, JSON, XML, README badge, SARIF, CodeClimate and OpenMetrics formats. Its GitHub Action can enforce a threshold and upload SARIF for GitHub Code Scanning, and GitLab CI reporters are documented. Developers can also use it in pre-commit hooks through pre-commit, Husky or a shell hook, or run it in 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 free and open source.

Good

  • Supports 224 languages, according to the project.
  • Can fail builds when duplication exceeds a threshold.
  • Version 5 native binary needs no Node.js runtime.
  • Reports include SARIF, XML and OpenMetrics.
  • GitHub Action can upload SARIF for code scanning.

Watch out

  • Semantic clone detection is experimental.
  • Dead-code analysis covers only listed languages.
  • Rust dead-code analysis requires compiler diagnostics.

Who it suits

jscpd suits developers who want to identify repeated code in repositories during local work or CI/CD. Its threshold checks and CI integrations may be useful for teams that want builds to flag excess duplication.

Verdict

jscpd offers repository-level clone detection with several report formats and CI options. Semantic detection is experimental, and dead-code coverage varies by language.

Plans and prices

From jscpd's own pricing page, checked 29 Sep 2026.

All about pricing
PlanPriceWhat it gives you
jscpdFreeOpen-source code detector · installs via curl, PowerShell, npm, pip, cargo, Homebrew, Nix, Docker, or npx
jscpd open-source distributionFreeself-hosted CLI; installation via npm, PyPI, Cargo, Homebrew, Nix, Docker or installers

The facts

Each one read from jscpd's own pages, with the date it was checked.

What it does

Agent skills
Five installable skills provide workflows for duplication cleanup, dead-code removal and code migration tasks.checked 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.checked 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.checked 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.checked 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.checked 29 Sep 2026
Codebase analysis
The dashboard summarizes project size, duplication, complexity, dead code, and a health score in one run.checked 29 Sep 2026
Codebase comparison
Experimental compare mode pairs functions in two folders to measure porting progress or implementation parity.checked 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.checked 15 Oct 2026
Complexity analysis
The complexity mode ranks files and folders by complexity without running a clone scan.checked 15 Oct 2026
Dashboard and health
Dashboard and health modes combine duplication, dead-code and complexity measures into a scored project view.checked 15 Oct 2026
Dead-code analysis
The dead-code mode reports unused files, exports, symbols and imports for JavaScript, TypeScript and Python.checked 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.checked 29 Sep 2026
Developer workflow
It can run in pre-commit hooks through the pre-commit framework, Husky, or a shell hook.checked 29 Sep 2026
Documentation depth
Documentation includes installation, guides, concepts, CLI and configuration references, reporters, supported formats, Rust crates, MCP, benchmarks and migration material.checked 15 Oct 2026
Editor integration
The language server supplies diagnostics and navigation actions for Neovim, Helix, Sublime Text, Emacs and JetBrains editors.checked 15 Oct 2026
Exact clones
Default detection finds identical token sequences while ignoring whitespace, layout and comments.checked 15 Oct 2026
Git history
The history mode scans commits over a range and charts duplication changes over time.checked 15 Oct 2026
Independent maintenance signal
Snyk classified the project maintenance as healthy and reported one maintainer, active repository metadata and recent releases.checked 15 Oct 2026
Languages
The site says jscpd supports 224 languages.checked 29 Sep 2026
License
The project and its published packages use the permissive MIT license.checked 15 Oct 2026
Limit: CI success ambiguity
GitTested found unknown formats, missing paths, unwritable output, invalid modes and misspelled configuration keys could still exit with status zero.checked 15 Oct 2026
Limit: human review required
GitTested noted that jscpd identifies repeated passages but does not decide whether repetition should be refactored or retained.checked 15 Oct 2026
Local use
The site describes a CLI-first tool for laptops and CI/CD, and provides Docker installation.checked 29 Sep 2026

Where it runs

Install platforms
Official installers provide macOS and Linux shell builds plus Windows x64 and ARM64 PowerShell builds; Docker publishes amd64 and arm64 images.checked 15 Oct 2026
The full review of jscpd

Overview

jscpd is a free, open-source tool for finding duplicated code across a repository. It suits developers who want clone checks in local workflows or CI, with a configurable threshold that can fail a build. Its breadth of language support and reporting options make it flexible, though semantic clone detection remains experimental.

It uses token-based scanning and detects exact clones by default; renamed, near-miss, and semantic detection are opt-in. The project says it supports 224 languages, a useful reach for mixed-language repositories, but dead-code analysis is much narrower.

For a broader comparison, see Code Clone Detection Tools.

Key features

Clone detection and reports

Reports include HTML, JSON, XML, README badges, SARIF, CodeClimate, and OpenMetrics. That gives teams options for human-readable output, badges, and integration with automated code-analysis tools. Exact matching is the dependable default; teams considering semantic matching should treat it as experimental rather than a mature substitute for exact clone checks.

CI and developer workflows

The GitHub Action can scan a repository, enforce a duplication threshold, and upload SARIF results for GitHub Code Scanning. GitLab CI reporters are also documented. Checks can run before commits through the pre-commit framework, Husky, or a shell hook, making it possible to catch duplication earlier than a CI failure.

A built-in MCP server lets Claude, Cursor, and other MCP clients check code for clones, and the project provides agent skills. These integrations may suit teams adding clone checks to AI-assisted coding workflows, while the core threshold and reporting features remain useful without them.

Dashboard and dead-code analysis

One run can produce a dashboard summarizing project size, duplication, complexity, dead code, and a health score. Dead-code coverage is limited to JavaScript, TypeScript, and Python, with Rust support when compiler diagnostics are supplied. That makes the dashboard a useful overview for those languages, not a comprehensive dead-code analyzer for every language jscpd scans.

Pricing

jscpd is free and open source. The jscpd plan costs nothing and is described as an open-source code detector. There is no paid tier identified here, so its cost advantage comes without a trade-off between basic and premium feature sets. Installation options include curl, PowerShell, npm, pip, cargo, Homebrew, Nix, Docker, and npx.

Platforms

jscpd supports Linux, macOS, and Windows, as well as API and self-hosted use. Direct binaries are available for macOS, Linux, and Windows, including x64 and ARM64 variants. Version 5 is a self-contained native binary that does not require Node.js, reducing runtime setup for teams that prefer not to add Node to a machine. Docker installation is also provided.

Who it's for

jscpd is a strong fit for teams that want repository-wide clone detection with threshold enforcement in CI, especially when they need broad language coverage or multiple report formats. Its local CLI and pre-commit options also suit developers who want duplication checks before code reaches a shared branch.

It is less suitable as a single solution for broad dead-code analysis across many languages: that dashboard capability covers only JavaScript, TypeScript, Python, and conditionally Rust. Teams that need dependable semantic-clone detection should also be cautious, since that mode is experimental.

Pros and cons

  • Pros: Free and open source, with no paid plan barrier to repository scans.
  • Pros: Supports 224 languages and offers several clone modes, including opt-in renamed and near-miss detection.
  • Pros: GitHub Action threshold enforcement, SARIF upload, GitLab CI reporters, and pre-commit options support checks at multiple stages.
  • Pros: Native binaries for major desktop platforms, including ARM64, work without a Node.js runtime in v5.
  • Cons: Semantic clone detection is experimental, so it is not the right basis for a critical semantic-analysis requirement.
  • Cons: Dead-code analysis has limited language coverage compared with clone scanning.

Alternatives

PMD is another free, downloadable static code analyzer for Linux, macOS, Windows, and self-hosted use; consider it if a static analyzer better matches the workflow you need.

NiCad is free, MIT-licensed software for the same desktop and self-hosted platforms, but requires OpenTxl 11 or later; choose it if that dependency fits your environment.

Simian Similarity Analyzer is a free, open-source option for Linux, macOS, and Windows.

Duplo is free software under GNU GPL v2 or later, with prebuilt binaries for Alpine Linux, macOS, and Windows; its Alpine binary may suit users who need that platform.

art-dupl is another free option.

QuickDup is free and supports Linux, macOS, and Windows.

semdup is free and supports Linux, macOS, self-hosted, and Windows use.

dcd is free, AGPL-3.0-licensed software for Linux and macOS, with a separate priority-support plan; consider it if that platform range or support option fits your needs.

Verdict

Choose jscpd if you want a free, repository-level clone detector that can enforce duplication limits in CI and report results in formats your tooling can consume. Its broad language support, native binaries, and local-to-CI workflow are compelling strengths. Look elsewhere if broad dead-code coverage or production-ready semantic clone detection is central to your decision.

Alternatives to jscpd

All alternatives
  1. 1

    PMD

    Free planLinuxmacOSSelf-hostedWindows
    6.8Free plan
  2. 2

    Duplo

    Free planLinuxmacOSWindows
    6.5Free plan
  3. 3

    CCFinderSW

    Free planWindows
    6.4Free plan
  4. 4

    CopyPaste

    Free planmacOSWindows
    6.2Free plan
  5. 5

    dcd

    Free planLinuxmacOS
    6.2Free plan
  6. 6

    NiCad

    Free planLinuxmacOSSelf-hostedWindows
    6.2Free plan