Skip to content
CAI
Software that uses CAICheck a score

9001/copyparty

28.3

Weak · 26 September 2026

80.1k

lines of production code

Python

with JavaScript

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Copyparty is a lightweight, self-hosted file server and media hub that supports multiple protocols including HTTP, WebDAV, SFTP, FTP, and SMB. It provides extensive automation capabilities through customizable event hooks, metadata tagging plugins, and thumbnail extraction, while offering a flexible web interface with theme support and localization. The system is designed for easy deployment across various environments, featuring official Docker images, NixOS modules, and packaging for major Linux distributions.

How it got here

2019–2020 — Initial scaffolding and deployment infrastructure

14 changes.

This period established the project's foundational structure, including repository initialization, build systems, and comprehensive documentation. It focused on hardening the core application through security patches, expanded test coverage, and the addition of utility scripts for packaging and development. The work also introduced essential deployment templates for systemd, OpenRC, and Nginx, alongside web interface enhancements like theme support and asset optimization.

2021–2022 — extensibility and platform support

14 changes.

This period focused on expanding copyparty's capabilities through a new metadata tagging plugin system, a filesystem abstraction layer, and various utility scripts for build and testing. It also broadened platform support by adding FreeBSD service management, Windows executable packaging, and vendored web dependencies, while introducing network detection and mDNS features.

2023–2026 — Packaging, deployment, and extensibility

22 changes.

This period focused on expanding Copyparty's deployment options through official Docker, Nix, Arch, and RPM packaging, alongside modernizing the Python build system with pyproject.toml. The project also significantly enhanced extensibility by introducing event hooks, custom error handlers, and thumbnail extraction plugins, while adding configuration examples for reverse proxies like HAProxy and Traefik.

Features

Add Blue Screen of Death (BSOD) theme

A new visual theme named 'bsod' has been added to the contrib/themes directory, allowing users to apply a Windows Blue Screen of Death aesthetic to the interface. The theme defines a specific set of CSS variables for colors (primarily blues and whites) and includes styling for layout elements like margins, borders, and text shadows, as well as a background image reference.

contrib/themes · high confidence

Add Debian packaging via MPR

This change introduces a new PKGBUILD and associated configuration files (copyparty.conf, copyparty.service, prisonparty.service, index.md) to enable building and installing Copyparty on Arch-based systems using the Makedeb Package Repository (MPR). The package defines dependencies such as bash, python3, and optional features like ffmpeg and paramiko, installs the main binary and a chroot-based 'prisonparty' service, and configures systemd units to run the file server with config loaded from /etc/copyparty.d/.

contrib/package/makedeb-mpr · high confidence

Add FreeBSD rc.d startup script for Copyparty

A new rc.d script (contrib/rc/copyparty) has been added to enable automatic startup and management of the Copyparty service on FreeBSD. The script configures the service to run under the 'copyparty' user, utilizes Python 3.11 located at /usr/local/bin/python3.11, and sets up a supervised daemon process with a PID file for proper lifecycle management.

contrib/rc · high confidence

Add Nginx reverse-proxy configuration example

Added a new Nginx configuration file (contrib/nginx/copyparty.conf) that provides a ready-to-use reverse-proxy setup for Copyparty. The configuration supports both TCP and Unix domain socket backends, includes optimized proxy buffering settings for high-speed transfers, and sets a large client\_max\_body\_size (1024M) to allow uploads larger than the default 1M limit. It also includes comments and examples for handling Cloudflare IP ranges and subpath reverse-proxying.

contrib/nginx · high confidence

Add Nix packaging for copyparty and partftpy

This change introduces Nix build definitions for the copyparty file server and its dependency partftpy. The copyparty package is built from source with configurable feature flags (such as SFTP, FTP, media processing, and hashed passwords) and pins version 1.20.24. An automated update script is included to refresh the package pins. The partftpy package is also added, pinning version 0.4.0.

contrib/package/nix/copyparty · high confidence

Add OpenRC service script with configuration check

A new OpenRC init script for CopyParty has been added to the contrib directory, allowing users to manage the service via standard OpenRC commands. The script includes a custom 'checkconfig' command that validates the service configuration before starting, ensuring that the setup is correct and preventing runtime errors due to misconfiguration.

contrib/openrc · high confidence

Add QR code generation and surrogate escape support for Python 2 compatibility

This change introduces two new modules to the \copyparty/stolen\ package to enhance compatibility and functionality. First, it adds a modified copy of Project Nayuki's \qrcodegen\ library, enabling the application to generate QR codes (e.g., for sharing folders) with support for binary data and Python 2 compatibility. Second, it includes a pure-Python implementation of the PEP 383 \surrogateescape\ error handler (scissored from \python-future\), which allows proper handling of non-UTF-8 filenames on Python 2, particularly on Windows, without requiring the heavy \python-future\ dependency.

copyparty/stolen · high confidence

Add Traefik reverse-proxy configuration examples for Copyparty

New example files have been added to the contrib/traefik directory to help users deploy Copyparty behind a Traefik reverse proxy. This includes a Traefik static configuration file (copyparty.yaml) that sets read timeouts to zero to prevent disconnections during large uploads, a Docker Compose setup for the Traefik proxy itself, a Docker Compose file for running Copyparty with Traefik labels, and a Copyparty configuration file tailored for this Docker environment.

contrib/traefik · high confidence

Add insecure self-signed TLS certificate for local development

A self-signed private key and certificate (named 'insecure.pem') have been added to the resources directory. This allows the application to serve content over HTTPS locally without requiring a user to generate their own certificates, facilitating easier testing and development of features that require secure connections, such as the Web Crypto API.

copyparty/res · high confidence

Add setup example for running with Podman under systemd

Added a new setup example in the contrib/podman-systemd directory that provides configuration files (copyparty.conf, copyparty.container) and documentation (README.md) for running copyparty in a Podman container managed by systemd. This includes instructions for both rootful and rootless container execution, volume mounting, and service management.

contrib/podman-systemd · high confidence

Add stripped-down dnslib for mDNS support

A simplified, feature-stripped version of the dnslib library (version 0.9.23) has been added to copyparty to support mDNS functionality. This includes a custom DNS record parser, label handling with a workaround for Avahi bug \#379, and buffer utilities, enabling the application to handle mDNS queries and announcements.

copyparty/stolen/dnslib · high confidence

Added Apache reverse-proxy configuration example

A new example configuration file (copyparty.conf) has been added to the Apache contrib directory, providing users with ready-to-use reverse-proxy setups. The file demonstrates how to configure Apache to proxy requests to copyparty via Unix sockets or TCP, including necessary module loads and header settings for proper protocol forwarding.

contrib/apache · high confidence

Added HAProxy configuration examples for Copyparty

A new HAProxy configuration file has been added to the contrib directory, providing two distinct reverse-proxy examples for Copyparty: one using TCP connections on port 8081 and another using Unix sockets on port 8082 for improved performance. Both examples include settings to correctly forward the X-Forwarded-Proto header based on SSL termination, helping users configure their reverse proxies to handle HTTPS traffic accurately.

contrib/haproxy · high confidence

Added Python 2 queue polyfill module

A new polyfill module has been added to the scripts/py2/queue package to provide compatibility with Python 2 environments. This module imports the standard Queue, LifoQueue, PriorityQueue, Empty, and Full classes from the built-in Queue module, ensuring that scripts relying on these components can function correctly in legacy Python 2 setups.

scripts/py2 · high confidence

Added Windows batch script to handle broken environment variables

A new batch file (copyparty-ctmp.bat) has been added to the Windows contrib directory to address issues on machines with corrupted environment variables. This script forces the TMP environment variable to a specific path and then launches copyparty.exe, providing a workaround for users encountering environment-related failures.

contrib/windows · high confidence

Added filehash benchmarking script

A new \scripts/bench/filehash.sh\ script has been added to help users measure file hashing performance during indexing. The script creates a test environment with a 256 MiB file and 128 symlinks, runs the copyparty indexer against it, and reports the throughput in MiB/s. It includes logic to handle different core counts and supports Windows (MSYS) environments, providing a standardized way to benchmark CPU versus disk bottlenecks.

scripts/bench · high confidence

Added local ifaddr module for network interface detection

The copyparty application now includes a bundled copy of the ifaddr library (version 0.2.0) to detect local network adapters and IP addresses. This module provides platform-specific implementations for POSIX, Windows, and handles edge cases for unsupported environments like s390x, IRIX, and GraalVM by gracefully disabling the feature. It enables the application to determine its LAN IP address on systems where standard library methods may be insufficient or unavailable.

copyparty/stolen/ifaddr · high confidence

Added script to strip type hints and dev-only code at build time

A new Python script (\scripts/strip\_hints/a.py\) has been added to the project. This tool processes Python files to remove type hints and other development-only artifacts (such as \TYPE\_CHECKING\ blocks and specific comment markers like \\# !rm\) during the build or distribution phase. It uses the \strip\_hints\ library to parse and modify files, optionally leveraging multiprocessing for performance, and includes a fallback mechanism for environments where multiprocessing fails. This ensures that the final distributed code is cleaner and potentially faster by removing static analysis metadata.

_scripts/strip\hints · high confidence

Arch Linux packaging for copyparty and prisonparty

Added PKGBUILD and installation scripts to package copyparty and the prisonparty jail for Arch Linux. The package installs the main application, an SFTP server (prisonparty), and systemd unit files for both system and user services. It also includes a post-upgrade hook to migrate the configuration file from /etc/copyparty/copyparty.conf to /etc/copyparty.conf for versions prior to 1.20.22.

contrib/package/arch · high confidence

Custom thumbnail extractor plugins and examples

Users can now load custom thumbnail extraction plugins via the \--th-extract\ argument to generate or override thumbnails for specific file extensions. The \bin/thumbs\ directory now includes a README documenting the plugin API (a \main\ function returning format, stream, and metadata) and provides two example extractors: \randomcolor.py\, which generates a random GIF, and \collabora.py\, which uses a Collabora Online instance to convert office documents, PDFs, and other formats into PNG previews.

bin/thumbs · high confidence

Customizable 404 and 403 response handlers

Users can now replace the standard 404 and 403 error responses with custom plugins. This change introduces a new handler API and several example scripts, including \404-to-fail2ban.py\ for logging errors to fail2ban, \caching-proxy.py\ for mirroring remote content, \never404.py\ for auto-creating dummy files, \randpic.py\ for redirecting to random images, and \sorry.py\ for custom error messages. These handlers can be loaded globally or per-volume to modify how the server responds to missing or forbidden resources.

bin/handlers · high confidence

FOSS license texts added to scripts/lics in ROT13 format

The scripts/lics directory now includes a Python script (rot.py) and a README that explain the storage of Free and Open Source Software license texts. Six license files (1.r13 through 6.r13) have been added, containing the MIT, 2-Clause BSD, 3-Clause BSD, ISC, Apache 2.0, and Open Font License texts encoded in ROT13. This encoding is used to prevent automated license scanners from incorrectly identifying the project's own license as one of these FOSS licenses.

scripts/lics · high confidence

Initial NixOS module for copyparty

Adds a new NixOS module (\contrib/nixos/modules/copyparty.nix\) that allows users to configure and run copyparty as a service. The module provides options to define the service user and group, configure global settings, manage user accounts and groups, and set up shared volumes. It generates the configuration file dynamically based on these NixOS options and handles the service lifecycle.

contrib/nixos · high confidence

Initial project scaffolding and documentation

The repository is initialized with core project files including a comprehensive README, MIT license, and standard governance documents (CODE\_OF\_CONDUCT, CONTRIBUTING, SECURITY). The CONTRIBUTING guide explicitly prohibits the use of AI/LLMs for code generation. Build infrastructure is established with a setup.py for PyPI packaging, an .eslintrc.json for JavaScript linting, and Nix flake files (flake.nix, flake.lock) for reproducible builds. Git configuration is standardized via .gitattributes and .gitignore.

(repo-wide) · high confidence

Introduce 'bos' filesystem abstraction layer

A new 'bos' (Base OS) module has been added to centralize filesystem operations, providing wrappers for path resolution, file metadata, and modification times that handle encoding and symlink behavior consistently across platforms.

copyparty/bos · high confidence

Introduce PyInstaller build infrastructure for standalone Windows executables

Adds a complete build environment under scripts/pyinstaller to compile standalone Windows binaries (copyparty.exe and u2c.exe) using PyInstaller. The setup includes build scripts (build.sh, up2k.sh) that fetch dependencies and source code from a host server, apply Windows 7/10-specific code patches (e.g., disabling specific modules, handling legacy Python 3.7 constraints), and package the application into single-file executables. It also provides documentation (README.md, notes.txt) for setting up the required Windows VMs (Win7 SP1 and Win10 LTSC 2021) and a dependency checker (depchk.sh) to ensure build tools are up to date.

scripts/pyinstaller · high confidence

Introduce official Docker container images for Copyparty

This change adds a complete Docker build system for Copyparty, including a Makefile, build scripts, and multiple Dockerfile variants (min, im, ac, iv, dj) tailored to different feature sets and performance needs. Users can now run Copyparty in containers with varying levels of multimedia support, from a minimal image with no thumbnails to full-featured images with FFmpeg, VIPS, and musical key/BPM detection. The images are based on Alpine Linux for smaller size, expose port 3923, and support configuration via mounted volumes for state and config files.

scripts/docker · high confidence

New YouTube data collection and Twitter unmute utilities

Added three new resources to the mtag resolution directory: a UserScript (twitter-unmute.user.js) that automatically unmutes Twitter videos, a configuration file (yt-ipr.conf) setting up a copyparty volume for YouTube manifest collection with specific upload limits and retention policies, and a UserScript (yt-ipr.user.js) that periodically extracts and sends YouTube player data and manifest URLs to a local server.

bin/mtag/res · high confidence

New bin utilities and security wrappers

The bin directory now includes several new tools: u2c.py (the updated up2k client) for file uploads and folder sync; partyfuse.py and partyfuse2.py for mounting the copyparty server as a local read-only filesystem; partyjournal.py for generating an HTML upload history; dbtool.py for database management and migration; and bubbleparty.sh and prisonparty.sh for running copyparty in isolated or chrooted environments to prevent accidental file access. Additionally, unforget.py is provided to rebuild the database from logs, and zmq-recv.py serves as a demo for ZeroMQ event handling.

bin · high confidence

New build system for web assets and introduction of light/dark themes

The web interface now includes a Makefile to compress static assets (JS, CSS, translations) using pigz/zopfli for faster loading on slow connections. Additionally, the browser UI now supports both dark and light color schemes, allowing users to switch between them via the settings or system preference.

copyparty/web · high confidence

New contrib plugins for UI customization, file management, and upload filtering

The contrib/plugins directory now includes several new JavaScript and CSS plugins that extend the web interface. Users can apply a minimal upload UI to write-only folders via minimal-up2k.js, move selected files to a subfolder with the quickmove.js hotkey plugin, or graft sidecar image thumbnails onto audio files using graft-thumbs.js. The browser-icons.css plugin adds visual icons for video, audio, and image files in the grid view. For upload control, up2k-hooks.js provides a framework for filtering files before upload, with up2k-hook-ytid.js offering a specific example that validates YouTube IDs against an API. Additionally, banner.js allows administrators to display legal or informational notices on specific pages, while meadup.js provides an onscreen keyboard for remote media center control. The directory also documents rave.js, an unmaintained April Fools' joke.

contrib/plugins · high confidence

New contrib utilities for integration, automation, and performance tuning

The contrib directory now includes a collection of community-contributed scripts and configuration files to extend copyparty's functionality. Users can now easily set up copyparty on iOS via a-Shell, generate custom TLS certificates using cfssl, and configure reverse proxies for Apache, HAProxy, Lighttpd, Nginx, and Traefik. Platform-specific integrations include Windows WebDAV enhancements (removing file size limits and optimizing latency), Windows Explorer performance tweaks, and screenshot uploaders for ShareX (Windows), iShare (macOS), and Flameshot (Linux). Additional tools allow disabling Windows media OSD popups, integrating with Firefox via Contextlets, and optimizing SQLite database performance on ZFS filesystems.

contrib · high confidence

New development, packaging, and maintenance scripts

Added a suite of new scripts to the \scripts/\ directory to support development workflows and distribution. This includes \make-sfx.sh\ and \sfx.py\ for building self-extracting archives, \make-pypi-release.sh\ and \make-rpm.sh\ for packaging, \genhelp.sh\ for generating documentation, \run-tests.sh\ for test execution, and \fusefuzz.py\ for fuzz testing the FUSE integration. These tools automate the creation of distributable formats, manage build environments, and assist in quality assurance.

scripts · high confidence

New event hooks for file management and automation

Copyparty now includes a collection of example event hooks in bin/hooks that allow users to automate actions triggered by file events. These scripts enable features such as sending desktop or Discord notifications on upload, stripping EXIF data from images, rejecting uploads based on extension or MIME type, relocating files by extension, normalizing podcast audio with ffmpeg, downloading files via URL POST, and safely ejecting USB drives. The hooks support various event types (before/after upload, message handling) and can be configured via global or per-volume flags.

bin/hooks · high confidence

New metadata and utility plugins for copyparty

This release introduces a new \bin/mtag\ directory containing standalone Python scripts that act as metadata-tagging plugins (MTP) for copyparty. These scripts allow users to automatically extract or modify file metadata during upload, including audio BPM detection (\audio-bpm.py\), musical key detection (\audio-key.py\), media hashing (\media-hash.py\), checksum calculation (\cksum.py\), EXIF stripping (\image-noexif.py\), and geotagging (\geotag.py\). It also adds utility plugins for downloading files via POST (\wget.py\), uploading to cloud storage via Rclone (\rclone-upload.py\), reading/writing a guestbook (\guestbook.py\/\guestbook-read.py\), and a dangerous plugin (\very-bad-idea.py\) that turns copyparty into a Chromecast-like receiver. A \README.md\ and \install-deps.sh\ script are included to document usage and handle dependencies like ffmpeg, keyfinder, and exiftool.

bin/mtag · high confidence

New server-side demo and utility pages

The server now serves several new static files for demonstration and utility purposes: a live HTML-to-text converter interface (ceditable.html), a network latency tester with statistical breakdowns (ping.html), and a comprehensive markdown rendering test suite (test.md). Additionally, documentation has been added to explain how to configure copyparty as a makeshift chat service (chat.md) and how to use the new sandboxed inline markdown plugin system (extend.md).

srv · high confidence

New systemd service templates and configuration examples for deployment

Added a set of systemd unit files and configuration examples to simplify deploying copyparty. This includes a standard system service (copyparty.service) with hardening options, a user-level service (copyparty-user.service), and templated services (copyparty@.service, prisonparty@.service) for running multiple instances or chrooted environments. Also included is a certificate generation service (cfssl.service) and example configuration files (copyparty.conf, copyparty.example.conf) to help users configure access controls and logging.

contrib/systemd · high confidence

Nix overlay introduces copyparty packages with SFTP support and ffmpeg-headless

The Nix overlay in contrib/package/nix now provides four copyparty derivations (stable, unstable, full, and unstable-full) that include SFTP support and utilize ffmpeg-headless for media processing. Users can now install copyparty via Nix with optional features like thumbnails, media processing, and various file transfer protocols (SFTP, FTP, FTPS, TFTP, SMB) enabled in the full variants.

contrib/package/nix · high confidence

Security

A security vulnerability in the copyparty web server has been patched that allowed reflected cross-site scripting (XSS) through cookie setters. The issue stemmed from the ability to set cookie values containing newlines, which could terminate the HTTP header and bleed into the response body. This fix ensures that cookie values are properly sanitized to prevent header injection and subsequent XSS attacks.

copyparty · high confidence

Behavioural changes

1 commit (0 fixes) modifying contrib/ios

A change to existing behaviour in contrib/ios — 1 commit, 1 file.

contrib/ios · low confidence · unverified

Custom Alpine-based Docker build scripts for stripped-down FFmpeg and zlib-ng

The \scripts/docker/base\ directory now contains build infrastructure for creating custom Alpine Linux-based Docker images. This includes scripts to build FFmpeg with H.265/HEVC, AAC-HE/SBR/PS, and numerous other obscure codecs and formats disabled to reduce size and licensing complexity, while retaining essential decoders and encoders. It also adds support for building zlib-ng from source. These changes affect the local build process for Docker images but do not alter the runtime behavior of the application itself.

scripts/docker/base · high confidence

Expanded language support and updated interface translations

The Copyparty web interface now includes new translation files for Chinese (chi), Czech (cze), German (deu), Esperanto (epo), Finnish (fin), French (fra), Greek (grc), and Hungarian (hun), alongside updates to existing languages. These additions provide localized strings for the file manager, media players, upload controls, and keyboard shortcuts, allowing users to interact with the interface in their preferred language.

copyparty/web/tl · high confidence

The FUSE binary has been renamed from copyparty-fuse to partyfuse. To support web-based access, symlinks have been added in the web interface directory: partyfuse.py now points to the renamed bin/partyfuse.py, u2c.py points to bin/u2c.py, and webdav-cfg.txt points to the WebDAV configuration script.

copyparty/web/a · high confidence

Vendor and customize web dependencies for offline use

The build system in scripts/deps-docker now vendors and customizes several web dependencies to support offline operation and reduce bundle size. It downloads and patches marked.js (v4.3.0) to add line-number tracking and strip sanitization features, replaces the codemirror spell-checker with a stripped-down version, and vendors a minimal subset of Font Awesome icons. Additionally, it builds a custom PrismJS bundle and vendors hash-wasm and EasyMDE, ensuring all assets are available locally without external network requests.

scripts/deps-docker · high confidence

Vendored third-party web dependencies and added documentation

The copyparty web interface now includes a local copy of several third-party libraries and assets, including EasyMDE, Marked, FontAwesome subset, PrismJS, Source Code Pro, hash-wasm, and a modified version of asmcrypto.js (for legacy browser support). An MP3 file (busy.mp3) is also included to handle specific iOS audio behavior. A README has been added to document these vendored files and their sources.

copyparty/web/deps · high confidence

Fixes

Applied patches to pyftpdlib to resolve two issues: first, enabling FTP connections from IPv6 link-local addresses by correctly handling the socket family and binding logic in the handler; second, fixing path normalization on Windows with Python 3.13, where \os.path.isabs()\ no longer treats paths starting with \/\ as absolute, by introducing a custom \\_isabs\ check.

scripts/patches · high confidence

Test coverage

Added RPM packaging specification for copyparty; Added automated test scripts for security, concurrency, and protocol features; Expanded test coverage for core file operations and security.

Dependencies

Migration to pyproject.toml for modern Python packaging

The project has replaced the legacy setup.py with a pyproject.toml file, adopting a modern build system using setuptools. This change centralizes project metadata, including the definition of optional dependency groups (such as 'all', 'sftp', 'ftps', 'tftpd', and 'pwhash') and specifies build requirements. It also introduces configuration for development tools like Black, isort, Ruff, Pylint, and MyPy, streamlining the installation and development workflow for users.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 27 → 28 (+1.5)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 27 → 16 (-10.7)
  • Architecture 96 → 75 (-20.1)
  • Maturity 59 → 54 (-5.5)
  • Readiness 7 → 28 (+21.9)
  • Security 54 → 68 (+13.2)
  • Accessibility 34 (new)

Resolved (145)

  • (anonymous) (cognitive 17) (copyparty/web/up2k.js)
  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • Duplicated block (10 lines × 2) (copyparty/httpcli.py)
  • Duplicated block (10 lines × 2) (copyparty/httpcli.py)
  • Duplicated block (10 lines × 2) (copyparty/svchub.py)
  • Duplicated block (10 lines × 2) (tests/test_dots.py)
  • Duplicated block (12 lines × 2) (tests/test_dots.py)
  • Duplicated block (12 lines × 4) (tests/test_dots.py)
  • Duplicated block (13 lines × 2) (copyparty/authsrv.py)
  • Duplicated block (13 lines × 2) (copyparty/httpcli.py)
  • Duplicated block (13 lines × 2) (copyparty/th_srv.py)
  • Duplicated block (13 lines × 2) (tests/test_webdav.py)
  • Duplicated block (14 lines × 2) (copyparty/authsrv.py)
  • Duplicated block (17 lines × 2) (copyparty/httpcli.py)
  • Duplicated block (17 lines × 2) (copyparty/stolen/qrcodegen.py)
  • Duplicated block (19 lines × 2) (copyparty/up2k.py)
  • Duplicated block (22 lines × 2) (copyparty/up2k.py)
  • Duplicated block (5 lines × 2) (copyparty/authsrv.py)
  • Duplicated block (5 lines × 2) (tests/test_shr.py)
  • …and 125 more

New (792)

  • (anonymous) (cognitive 16) (contrib/plugins/banner.js)
  • (anonymous) (cognitive 16) (contrib/plugins/graft-thumbs.js)
  • (anonymous) (cognitive 17) (contrib/plugins/quickmove.js)
  • (anonymous) (cognitive 17) (copyparty/web/md2.js)
  • (anonymous) (cognitive 18) (copyparty/web/util.js)
  • (anonymous) (cognitive 24) (copyparty/web/browser.js)
  • (anonymous) (cognitive 34) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 16) (contrib/plugins/banner.js)
  • (anonymous) (cyclomatic 16) (copyparty/web/md2.js)
  • (anonymous) (cyclomatic 18) (contrib/plugins/quickmove.js)
  • (anonymous) (cyclomatic 19) (copyparty/web/util.js)
  • (anonymous) (cyclomatic 20) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 21) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 25) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 28) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 34) (copyparty/web/util.js)
  • (anonymous) (cyclomatic 40) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 40) (copyparty/web/browser.js)
  • (anonymous) (cyclomatic 41) (copyparty/web/browser.js)
  • (anonymous)::announce (cognitive 28) (copyparty/web/browser.js)
  • …and 772 more

Changes since last survey

  • 82 commits — 73 feature/other, 9 fixes

By area

  • copyparty/web — 18 commits
  • copyparty/main.py — 14 commits
  • copyparty/httpcli.py — 12 commits
  • contrib/package — 6 commits
  • copyparty/up2k.py — 6 commits
  • bin/thumbs — 4 commits
  • copyparty/authsrv.py — 3 commits
  • bin/u2c.py — 2 commits
  • copyparty/version.py — 2 commits
  • scripts/pyinstaller — 2 commits
  • (root) — 1 commit
  • bin/hooks — 1 commit
  • contrib/systemd — 1 commit
  • copyparty/init.py — 1 commit
  • copyparty/cert.py — 1 commit
  • copyparty/sftpd.py — 1 commit
  • copyparty/stolen — 1 commit
  • copyparty/th_srv.py — 1 commit
  • copyparty/util.py — 1 commit
  • scripts/docker — 1 commit

Notable commits

  • fix: fix PRTY_NO_IFADDR + cleanup
  • fix: fix csp-nonce on chrome<62
  • fix: fix dupe logue on !js hydrate
  • fix: http206: fix footer (last-n-bytes) reqs
  • fix: ifaddr: winxp fix
  • fix: js: fix contrived crash (closes #1516);
  • fix: tests: fix macos
  • fix: up2k: fix !e2d reload blocking uploads
  • fix: wopi: fix access_token_ttl (#1587)
  • change: add --help-dedup
  • change: add --help-redup + failsafe
  • change: add --no-mime / volflag nomime
  • change: add --redup
  • change: add -i no
  • change: add jxl support for autogrid (#1610)
  • change: add up2k mutex ping
  • change: allow dk download-as-zip
  • change: archlinux: add post_upgrade
  • change: avoid binary garbage in logs;
  • change: bbox: open svg; closes #1605
  • …and 62 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

9001/copyparty was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 107dec9ed1c93b8d02ebb14ff9a135fe7c4013ef — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-9984f8053b7b.