The jscpd monorepo contains two apps and several supporting packages.
Path: apps/jscpd
npm: jscpd
Version: 4.2.5
Main package for jscpd — CLI and Node.js API for copy/paste detection. See TypeScript docs.
Path: apps/jscpd-server
npm: jscpd-server
Version: 4.2.5
Standalone server application providing REST API and MCP server for on-demand code duplication detection. See AI-Ready docs for details.
Path: packages/core
npm: @jscpd/core
Version: 4.2.5
Core detection algorithm. Implements Rabin-Karp rolling hash for finding duplicate code blocks. Single dependency on eventemitter3. Provides IClone, IMapFrame, MemoryStore, and event interfaces.
Path: packages/finder
npm: @jscpd/finder
Version: 4.2.5
Detector of duplications in files. Walks filesystem, runs clone detection, provides built-in reporters, subscribers, validators, and hooks.
Path: packages/tokenizer
npm: @jscpd/tokenizer
Version: 4.2.5
Tokenizer — converts source code into tokens for duplicate detection. Supports 224 languages/formats via reprism-based grammar engine with lazy loading. Cross-format tokenization for Vue SFC, Svelte, Astro, and Markdown.
Path: packages/html-reporter
npm: @jscpd/html-reporter
Version: 4.2.5
HTML reporter — generates interactive HTML report with per-format statistics, duplication graph, and syntax-highlighted clone diffs.
Path: packages/badge-reporter
npm: @jscpd/badge-reporter
Version: 4.2.5
Badge reporter — generates SVG badges showing copy/paste level.
Path: packages/sarif-reporter
npm: jscpd-sarif-reporter
Version: 4.2.5
SARIF reporter — generates Static Analysis Results Interchange Format output for GitHub Code Scanning. Emits warning-level results per clone, plus error if threshold exceeded.
Path: packages/leveldb-store
npm: @jscpd/leveldb-store
Version: 4.2.5
LevelDB store — persistent disk-backed token store for large repositories. Slower than default in-memory store but can handle very large codebases.
Path: packages/redis-store
npm: @jscpd/redis-store
Version: 4.2.5
Redis store — offloads in-memory hash map to Redis. Useful for large codebases or distributed/CI environments.
Path: rust/crates/cpd
npm: jscpd@5 (installs both jscpd and cpd commands) | cpd (installs cpd command only)
crates.io: jscpd (installs both jscpd and cpd binaries)
Version: 5.0.4 (npm) / 0.1.4 (crates.io)
CLI binary, entry point. Published as jscpd@5 on npm (self-contained binary, installs both jscpd and cpd commands, no Node.js runtime) and cpd on npm (installs only cpd command). See Rust docs.
Path: rust/crates/cpd-core
Version: 0.1.3
Core data models and Rabin-Karp rolling hash implementation.
Path: rust/crates/cpd-tokenizer
Version: 0.1.3
Source code tokenizer (223+ formats). Uses oxc_parser for Go, TypeScript/JSX tokenization.
Path: rust/crates/cpd-finder
Version: 0.1.4
File walking, orchestration, and git blame. Uses rayon for parallelism, ignore + globset for file matching.
Path: rust/crates/cpd-reporter
Version: 0.1.4
Output format rendering for 13 reporters.