Skip to content
SPECIFICTION
Get listed

copydetect

github.com

WindowsmacOSLinuxAPISelf-hosted
Visit github.com
Spec score 7.8 #6 of 23 in Code Clone Detection Tools

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

Alternatives to copydetectAll alternatives →