Scanning indexes your photos into Clepho's database, extracting metadata, generating thumbnails, and computing hashes for duplicate detection.
When you scan a directory, Clepho:
- Discovers all image files (based on configured extensions)
- Extracts EXIF metadata from each file
- Computes hash values (MD5, SHA256, perceptual)
- Generates thumbnails for preview
- Records file modification times for change detection
- Stores everything in the SQLite database
Press s in normal mode to scan the current directory.
Scanning /home/user/Photos...
[████████████████████████████████████████] 100% (1234/1234)
Scan complete: 1234 scanned, 1200 new, 34 updated
Scans run in the background, allowing you to continue browsing:
- Status bar shows progress:
[S:45%] - Press
Tto view task list with details - Press
Ctrl+cin task list to cancel
| Field | Description |
|---|---|
path |
Full file path |
filename |
File name only |
directory |
Parent directory |
size_bytes |
File size |
modified_at |
Filesystem modification time |
scanned_at |
When Clepho scanned the file |
| Field | Source | Example |
|---|---|---|
width |
Image header | 4032 |
height |
Image header | 3024 |
format |
File analysis | JPEG |
| Field | EXIF Tag | Example |
|---|---|---|
camera_make |
Make | Canon |
camera_model |
Model | EOS R5 |
lens |
LensModel | RF 24-70mm F2.8 |
focal_length |
FocalLength | 50.0 |
aperture |
FNumber | 2.8 |
shutter_speed |
ExposureTime | 1/250 |
iso |
ISOSpeedRatings | 400 |
taken_at |
DateTimeOriginal | 2024-01-15 14:32:00 |
gps_latitude |
GPSLatitude | 37.7749 |
gps_longitude |
GPSLongitude | -122.4194 |
all_exif |
All tags | JSON blob |
| Hash | Purpose | Algorithm |
|---|---|---|
md5_hash |
Quick comparison | MD5 |
sha256_hash |
Exact duplicate detection | SHA-256 |
perceptual_hash |
Similar image detection | pHash |
Files not in the database are fully processed:
- All metadata extracted
- All hashes computed
- Thumbnail generated
Files already in the database are checked for changes:
- If
modified_atchanged: re-scan completely - If unchanged: skip (fast)
Scans are recursive by default - all subdirectories are processed.
/Photos/
├── 2023/ ← Scanned
│ ├── january/ ← Scanned
│ └── february/ ← Scanned
├── 2024/ ← Scanned
└── vacation.jpg ← Scanned
Clepho uses parallel processing for scanning:
- Multiple files processed simultaneously
- Database writes are serialized (SQLite safety)
- CPU cores utilized efficiently
| Factor | Impact |
|---|---|
| SSD vs HDD | Major - SSD 5-10x faster |
| File count | Linear scaling |
| File sizes | Minimal (streaming) |
| EXIF complexity | Minor |
| Network storage | Significant slowdown |
| Collection Size | SSD Time | HDD Time |
|---|---|---|
| 1,000 photos | ~10 sec | ~30 sec |
| 10,000 photos | ~2 min | ~5 min |
| 100,000 photos | ~15 min | ~45 min |
Thumbnails are generated during scanning:
- Stored in
~/.cache/clepho/thumbnails/ - Named by content hash (deduplicates automatically)
- Default size: 256x256 pixels
~/.cache/clepho/thumbnails/
├── a1/
│ └── a1b2c3d4e5f6...jpg
├── b2/
│ └── b2c3d4e5f6g7...jpg
└── ...
Thumbnails are regenerated when:
- File modification time changes
- Cache is cleared
- Thumbnail is missing
- Press
Tto open task list - Select the scan task
- Press
cto cancel
The scan stops after the current file, preserving all progress.
Simply press s again - already-scanned files are skipped.
Schedule scans for later execution:
- Press
@to open schedule dialog - Select "Directory Scan" as task type
- Set date and time
- Optionally set hours of operation
- Press Enter to schedule
See Scheduling for details.
After scanning, you can:
- View metadata in preview pane
- Search by AI descriptions (
/) - Find duplicates (
u) - Export metadata (
O)
Force a complete re-scan by:
- Deleting the database entry (not recommended)
- Touching the file to update mtime
- Using change detection (
c) after external modifications
If progress stops:
- Check disk space
- Check file permissions
- Cancel and check error message
If files aren't being scanned:
- Check file extension is in config
- Check file permissions
- Check file isn't corrupted
Optimize slow scans:
- Use SSD storage
- Reduce thumbnail size in config
- Ensure database is on local storage
Some files have malformed EXIF:
- Clepho continues with partial data
- Check
all_exiffield for raw data - Some cameras write non-standard tags
- Initial Scan: Scan your entire collection once
- Incremental Updates: Use change detection for ongoing management
- Scheduled Scans: Set up nightly scans for auto-import folders
- Verify Scans: Check status bar for completion
- Backup Database: Periodically backup
clepho.db