Skip to content
This repository was archived by the owner on Feb 22, 2026. It is now read-only.

Latest commit

Β 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

hiccup-remedy

A Python CLI wrapper for czkawka-cli that simplifies finding and organizing duplicate files and similar images.

Features

  • Duplicate File Detection: Find exact duplicate files based on content hash
  • Similar Image Detection: Find visually similar images with configurable similarity threshold
  • Organized Output: Automatically groups and moves duplicates to a destination directory with unique identifiers
  • Dry Run Mode: Preview what would happen without making any changes
  • Human-Readable Output: Clean tabular display for similar images with dimensions, size, and similarity scores

Prerequisites

  • Python 3.10+
  • czkawka-cli must be installed and available in your PATH

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/hiccup-remedy.git
    cd hiccup-remedy
  2. Install dependencies using Pipenv:

    pipenv install

Usage

python hiccup_remedy.py [OPTIONS] DIR [DIR ...]

Arguments

Argument Description
DIR One or more directory paths to scan for duplicates

Options

Option Description Default
-m, --mode {dup,image} Mode of operation: dup for duplicate files, image for similar images dup
-d, --dest PATH Destination directory for moved duplicates Current directory
-n, --dry-run Preview results without moving any files Disabled

Examples

Find duplicate files (dry run):

python hiccup_remedy.py -n ~/Downloads ~/Documents

Move duplicate files to a specific directory:

python hiccup_remedy.py -d ~/duplicates ~/Downloads ~/Documents

Find similar images:

python hiccup_remedy.py -m image -n ~/Pictures

Move similar images to a destination:

python hiccup_remedy.py -m image -d ~/similar_images ~/Pictures

How It Works

  1. Scans the specified directories using czkawka-cli
  2. Parses the output to group duplicate/similar files
  3. Each group is assigned a unique UUID
  4. Files are moved to <dest>/<uuid>/ with flattened filenames preserving their original relative paths

Project Structure

hiccup-remedy/
β”œβ”€β”€ hiccup_remedy.py    # Main CLI entry point
β”œβ”€β”€ util.py             # Utility functions (human-readable file sizes)
β”œβ”€β”€ Pipfile             # Python dependencies
└── hiccup/
    β”œβ”€β”€ finder.py       # Core finder logic wrapping czkawka-cli
    └── filegroup.py    # File group classes for duplicates and similar images

Dependencies

  • sh - Python subprocess interface
  • prettytable - ASCII table formatting

About

πŸ› οΈ A Python CLI wrapper for Czkawka CLI that simplifies finding and organizing duplicate files and similar images.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages