Kuron
Fast and easy file deduplication, powered by fclones.
Install / Use
/learn @lyallcooper/KuronREADME
kurōn
Fast, easy to use file deduplication. Available as desktop or server app. Powered by fclones.
<p align="center"> <img src="/img/screenshot-1.png" width="400" alt="App dashboard"> <img src="/img/screenshot-2.png" width="400" alt="Scan results page"> </p>Features
- Find duplicates: Scan directories to find duplicate files
- Dedupe: Hardlink, reflink or remove duplicates to reclaim disk space
- Schedule Jobs: Run scans, dedupe automatically on a cron schedule
- View History: View past scans, results, and actions taken
Quick Start
Desktop
Download the latest release for your platform:
| Platform | File |
|----------|------|
| macOS | Kuron-macos-arm64.dmg<sup>ⓘ Note</sup> |
| Linux | Kuron-linux-amd64.tar.gz |
| Windows | Kuron-windows-amd64.zip |
[!Note] To open on macOS: attempt to open normally, then open System Settings > Privacy & Security, scroll down and click Open Anyway.
Server
Docker (Recommended)
compose.yaml:
services:
kuron:
image: ghcr.io/lyallcooper/kuron:latest
container_name: kuron
user: 1000:1000 # Must have permission for mounted volumes
ports:
- 8080:8080
volumes:
- ./kuron-data:/data
- /path/to/media:/mnt/media # A directory containing files to dedupe
- /path/to/downloads:/mnt/downloads # Another directory to dedupe
environment:
- KURON_ALLOWED_PATHS=/mnt/media,/mnt/downloads # Optional directory allowlist
restart: unless-stopped
Access at http://localhost:8080.
Pre-built Binaries
Download the latest binary for your platform from GitHub Releases.
Available platforms:
- Linux (
amd64,arm64) - macOS (
arm64)
Requires fclones 0.35.0 or newer.
From Source
Requires Go 1.24+ and fclones 0.35.0 or newer.
# Install fclones (>= 0.35.0)
# macOS: brew install fclones
# Linux: See https://github.com/pkolaczk/fclones#installation
# Build and run
go build -o kuron ./cmd/server
./kuron
Environment Variable Configuration
| Variable | Type | Default | Description |
|----------|------|---------|-------------|
| KURON_PORT | int | 8080 | HTTP server port |
| KURON_DB_PATH | path | ./data/kuron.db or<br>/data/kuron.db on docker | SQLite database path |
| KURON_RETENTION_DAYS | int | 30 | Days to keep scan history (1-9999) |
| KURON_SCAN_TIMEOUT | duration | 30m | Maximum duration for a scan |
| KURON_ALLOWED_PATHS | paths | (unrestricted) | Comma-separated paths to restrict scanning |
| KURON_FCLONES_CACHE | bool | true | Enable fclones caching for faster repeat scans |
Usage
- Quick Scan: Run an ad-hoc scan from the dashboard by specifying paths and filters
- Create Jobs: Set up scheduled scans with cron expressions for automated scanning
- Review Results: View duplicate groups, expand to see file paths
- Take Action: Select groups and choose an action (all actions preview first)
- View History: Track all past scans and actions from the History page
Actions
- Hardlink (
fclones link): Multiple filenames point to the same data on disk. Editing one file changes all. Works on any filesystem. - Reflink (
fclones dedupe): Copy-on-write clone. Files share data until modified, then diverge. Requires filesystem support (APFS, Btrfs, XFS, ZFS, etc.).- NB: Files previously deduplicated via reflink will show up again on subsequent scans due to how fclones detects duplicates.
- Remove (
fclones remove): Delete duplicate files, keeping one per group based on priority (newest, oldest, most/least nested, etc.). - Delete (
rm): Manually delete individual files found in scans
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
