Skip to main content

czk

A CLI wrapper around czkawka_cli focused on usability and easier analysis of duplicate images and videos.

Features

  • Dry-run and live deletion modes with colorized, grouped terminal output
  • CSV and JSON reports per run
  • Interactive SQL analysis via DuckDB
  • Self-contained HTML visual report with inline image/video previews, search, and pagination

Requirements

  • macOS or Linux
  • czkawka_cli — duplicate detection engine
  • duckdb CLI — required for czk analyze
  • Python + uv

Installation

# From PyPI (recommended)
uv tool install czk-tool
# or with pip
pip install czk-tool

# From source
uv tool install --editable .

Usage

czk test <directory>      # Dry run — scan for duplicates, no deletion
czk execute <directory>   # Move duplicates to the OS trash (keep biggest; newest on size tie)
czk analyze <directory>   # Interactive DuckDB SQL session over scan results
czk viz <directory>       # Generate a self-contained HTML visual report

czk check is an alias for czk test; czk analyse is an alias for czk analyze.

Options

Flag Description
--media {both,images,videos} Media type to scan (default: both)
-s, --similarity-preset Image similarity preset: Original, VeryHigh, High, Medium, Small, VerySmall, Minimal (default: High)
-c, --hash-size {8,16,32,64} Perceptual hash size for images (default: 32)
-g, --hash-alg Hash algorithm for images: Mean, Gradient, Blockhash, VertGradient, DoubleGradient, Median (default: Gradient)
-z, --image-filter Resize filter for images: Lanczos3, Nearest, Triangle, Faussian, Catmullrom (default: Nearest)
-t, --tolerance 0..20 Similarity tolerance for videos (default: 10)
--top N Limit duplicate groups in previews (default: 50)
--all Show all duplicate groups, overrides --top
--out-dir <path> Output directory (default: <system-temp>/czk-reports)
--no-color Disable colored output

Output

Each run writes timestamped artifacts to the output directory:

  • <base>-<media>-<YYYYMMDD-HHMMSS>.json
  • <base>-<media>-<YYYYMMDD-HHMMSS>.csv
  • <base>-viz-<YYYYMMDD-HHMMSS>.html (czk viz only)

CSV columns: index, file_to_keep, files_to_remove, count

Keep rule

czkawka_cli only scans; czk decides which file to keep and does the deletion itself, so the CSV always matches what execute deletes. In each group it keeps the biggest file. If sizes tie, it keeps the most recently modified one, then falls back to the lexicographically first path (ascending Unicode code point order, e.g. messages/ before timeline/).

execute moves removed files to the OS trash (macOS Trash, Windows Recycle Bin, freedesktop.org trash on Linux) via Send2Trash, so they can be restored.

Disclaimer

Parts of this project were assisted by AI tooling. Review all commands carefully before running, especially deletion workflows. This software is provided "as is" without warranties of any kind. The authors are not liable for any data loss or other damages resulting from use.

Metadata

Release files for czk-tool 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for czk-tool 2.0.0
File Size Uploaded Provenance Actions
czk_tool-2.0.0.tar.gz 37.9 kB Without provenance Details for czk_tool-2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for czk-tool 2.0.0
File Interpreter ABI Platform Actions
czk_tool-2.0.0-py3-none-any.whl Python 3 none any Details for czk_tool-2.0.0-py3-none-any.whl

Total release size: 69.0 kB

Release files / czk_tool-2.0.0.tar.gz

Download URL czk_tool-2.0.0.tar.gz
Size 37.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7deba34791cd54b450fde5034c0a1eb7ab78bb31fc1b40f3968502ad3edfdd22
BLAKE2b-256 checksum
How to use checksums
f9f7a5e1f15ae511eb5515cea7bdccd8e8985825e28ad991e3d72be407d3014d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / czk_tool-2.0.0-py3-none-any.whl

Download URL czk_tool-2.0.0-py3-none-any.whl
Size 31.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e17b43e3780dda0c3e9a39880bcbf174a5981ee901b5c5cea14cbb1a9e984df
BLAKE2b-256 checksum
How to use checksums
6c46c9464a485415e1270d125e87c2fafd4efa3dfdfdf8af4bcee51034861f17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for czk-tool 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page