copydetect
github.com
What it is
copydetect is a free tool for comparing code directories and producing an HTML report that highlights matching code slices. It uses Winnowing document fingerprinting, an approach also used by MOSS, and Pygments tokenization for the 500-plus languages Pygments can detect and tokenize. Users can compare test directories with reference directories such as previous submissions, and exclude boilerplate directories from matches. Noise, guarantee and display thresholds adjust what is detected and shown in reports. Install the package with pip; it requires Python 3.7 or later. The command-line tool recursively searches supplied directories, while its Python API supports comparisons and HTML report generation. Reports can be saved to a specified path, highlighted code can be truncated, and custom CSS can be linked. Configuration is available through command-line arguments or a JSON file. The package is MIT-licensed and classified for Education with Beta development status. Its documentation cautions that it may not catch plagiarism designed to evade detection and that a match does not establish that plagiarism occurred.
Spec sheet
- Purpose
- Copydetect detects likely code plagiarism by comparing code directories and generating an HTML report that displays copied slices.Read 2 Oct 2026 · github.com
- Audience
- The package lists Education as its intended audience.Read 2 Oct 2026 · pypi.org
- Platforms
- The package is classified as operating-system independent and provides a Windows command entry point.Read 2 Oct 2026 · pypi.org
- License
- Copydetect is released under the MIT License.Read 2 Oct 2026 · github.com
- Command line
- The simplest command-line usage is copydetect -t DIRS, which recursively searches supplied directories and compares files.Read 1 Oct 2026 · github.com
- Comparison options
- Users can compare test directories with reference directories and exclude matches found in boilerplate directories.Read 2 Oct 2026 · github.com
- Configuration
- Settings can be supplied through command-line arguments or a JSON configuration file.Read 2 Oct 2026 · github.com
- Detection limitation
- The documentation says copydetect identifies likely plagiarism, is not guaranteed to catch dedicated evasion, and does not prove plagiarism occurred.Read 1 Oct 2026 · copydetect.readthedocs.io
- Detection method
- It uses the Winnowing document-fingerprinting approach used by the MOSS platform.Read 1 Oct 2026 · copydetect.readthedocs.io
- Filtering
- Tokenization and filtering replace variable names with V, function names with F, object names with O, and strings with S.Read 1 Oct 2026 · copydetect.readthedocs.io
- Installation
- The project documents installation with pip and requires Python 3.7 or later.Read 2 Oct 2026 · github.com
- Language coverage
- Pygments tokenization gives copydetect support for all 500+ languages that Pygments can detect and tokenize.Read 1 Oct 2026 · copydetect.readthedocs.io
- Language support
- It uses Pygments for tokenization and supports the 500+ languages Pygments can detect and tokenize.Read 2 Oct 2026 · github.com
- Limitations
- The project says it is not guaranteed to catch plagiarism designed to evade detection and cannot guarantee that plagiarism occurred.Read 2 Oct 2026 · github.com
- Method
- It is based on the Winnowing document fingerprinting approach, also used by MOSS.Read 2 Oct 2026 · github.com
- Output customization
- Reports can be saved to a specified output path, highlighted code can be truncated, and custom CSS files can be linked.Read 1 Oct 2026 · github.com
- Platform support
- PyPI classifies the package as operating-system independent and Python 3 only.Read 1 Oct 2026 · pypi.org
- Python API
- Copydetect can also be run through a Python API that generates an HTML report.Read 2 Oct 2026 · github.com
- Reference code
- Separate reference directories can be supplied, including previous submissions, and boilerplate directories can exclude provided code from plagiarism matches.Read 1 Oct 2026 · github.com
- Release
- PyPI lists version 0.5.0, released March 9, 2024.Read 2 Oct 2026 · pypi.org
- Sensitivity controls
- Noise, guarantee, and display thresholds tune what matching code is detected and shown in reports.Read 1 Oct 2026 · github.com
- Tuning
- Noise, guarantee, and display thresholds can be configured to adjust matching and report visibility.Read 2 Oct 2026 · github.com
Strong points and limits
Strong points
- Compares test, reference and boilerplate directories.
- Tokenizes 500-plus Pygments-detectable languages.
- Offers command-line and Python API access.
- Reports support custom paths, truncation and CSS.
- Free and MIT-licensed.
Limits
- Requires Python 3.7 or later.
- May miss plagiarism designed to evade detection.
- A match does not prove plagiarism occurred.
- Classified as a Beta project.
Who it suits
copydetect suits educators or others comparing code submissions against reference and boilerplate directories. Python users can access it through the command line or its API, but should treat matches as indications rather than proof.
Verdict
copydetect offers configurable directory comparisons and HTML reports for code review, with broad language coverage through Pygments. Its warnings matter: it can miss deliberate evasion, and matching code alone does not prove plagiarism.
Where Specifiction places it
- Code Clone Detection Tools#6 of 237.8