Metadata-Version: 2.1
Name: jscpd
Version: 5.2.0
Summary: Copy/paste detector for programming source code
Author: Andrey Kucherenko
License: MIT
Keywords: duplicate-code,clone-detection,copy-paste,cpd,static-analysis
Project-URL: Homepage, https://jscpd.dev
Project-URL: Documentation, https://jscpd.dev
Project-URL: Repository, https://github.com/kucherenko/jscpd
Project-URL: Changelog, https://jscpd.dev/getting-started/changelog
Project-URL: Issues, https://github.com/kucherenko/jscpd/issues
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Quality Assurance

# jscpd

Copy/paste detector for programming source code: a self-contained Rust binary
that finds duplicated blocks across 150+ formats and reports them as console
output, JSON, HTML, SARIF, Markdown and more.

This package ships the prebuilt `jscpd` and `cpd` commands (same binary) as
platform wheels — no Python code and no Node.js runtime involved.

```bash
pip install jscpd          # or: pipx install jscpd / uv tool install jscpd
jscpd /path/to/code

uvx jscpd /path/to/code    # run without installing
```

As a [pre-commit](https://pre-commit.com) hook:

```yaml
repos:
  - repo: local
    hooks:
      - id: jscpd
        name: jscpd - copy/paste detector
        entry: jscpd
        language: python
        additional_dependencies: ['jscpd==5.2.0']
        args: [--threshold, "5", --reporters, console,silent]
        pass_filenames: false
        always_run: true
```

Documentation: https://jscpd.dev — Source: https://github.com/kucherenko/jscpd
