name: czkawka-cli description: Use the Czkawka CLI OpenClaw plugin for exact duplicate and similar-video scans. Use this when the user wants duplicate detection, similar video detection, plugin validation/status, or cache diagnostics. This skill enforces plugin tool calls (not shell/exec), explains cache policy (acceleration only), and defines success criteria using rawJsonPath/manifestPath artifacts.
Czkawka CLI Plugin Skill
Use this skill when the user wants to:
- find exact duplicate files (hash-based)
- find similar videos (review required)
- validate the Czkawka plugin/runtime setup
- inspect Czkawka cache/config reuse behavior
Intent Mapping (Required)
Map user intent to plugin tools first. Do not default to shell commands.
- "check if the plugin works" / "smoke test Czkawka plugin"
czkawka_cli_validateczkawka_cli_plugin_status
- "find duplicate files" / "exact duplicates" / "same file content"
czkawka_cli_dup_hash_scan
- "find similar videos" / "visually similar recordings"
czkawka_cli_similar_video_scan
- "show cache status / cache files / config path"
czkawka_cli_cache_infoczkawka_cli_plugin_status
Hard Rules
- Use plugin tool calls only. Do not use
exec/processto run:czkawka_cli ...czkawka ...czkawka_cli_validate(tool name, not shell command)
- Do not infer installation/PATH problems from plugin hook blocks.
- Hook blocks are policy errors, not proof of missing binaries.
czkawka_cli_*names are plugin tools, not CLI commands.- This plugin is non-destructive in v1. Do not propose delete/move/trash/hardlink operations.
similar_videoresults are review candidates only. Never treat them as auto-delete or auto-merge decisions.
Cache Policy (Important)
- Czkawka cache/config paths are used for scan acceleration only.
- Cache contents are not canonical data and should not be used as a data source for decisions.
- Reuse is achieved by running Czkawka with the same effective:
CZKAWKA_CACHE_PATHCZKAWKA_CONFIG_PATH
- Use
czkawka_cli_cache_infoandczkawka_cli_plugin_statusto inspect effective paths and cache files.
Current Wrapped Tools (v1)
czkawka_cli_plugin_statusczkawka_cli_validateczkawka_cli_cache_infoczkawka_cli_dup_hash_scanczkawka_cli_similar_video_scan
Not wrapped yet (do not promise these):
brokenbad-namesimagemusic- destructive operations (
delete-method, trash, hardlink, symlink, move)
Quick Start
- Validate runtime:
- call
czkawka_cli_validate
- call
- Check resolved paths and latest artifacts:
- call
czkawka_cli_plugin_status
- call
- Run exact duplicate scan:
- call
czkawka_cli_dup_hash_scan
- call
- Run similar video scan (review-only):
- call
czkawka_cli_similar_video_scan
- call
Recommended Parameters
Exact duplicate (czkawka_cli_dup_hash_scan)
- Prefer
hashType: "BLAKE3" - Use
referenceDirectorieswhen comparing target vs known library - Keep
useCache: trueunless debugging cache behavior saveRawJson: truerecommendedsaveNormalizedJsonl: falseis the current default (enable only if a consumer needs stable JSONL)
Similar video (czkawka_cli_similar_video_scan)
- Start with:
tolerance: 4scanDuration: 10skipForwardAmount: 15cropDetect: "letterbox"
reviewRequiredis always expected in the result
tolerance semantics (important)
tolerance is the maximum allowed difference between video frame hashes.
- Lower (closer to 0) = stricter — only near-identical videos are detected
- Higher (closer to 20) = more lenient — videos with more visual differences are detected
"Detect more pairs / broaden search" = increase tolerance. "Detect fewer pairs / narrow search" = decrease tolerance.
Success Criteria (Do Not Skip)
A scan is only considered successfully executed if the plugin tool returns structured output and artifacts, not just console help text.
For dup_hash_scan / similar_video_scan, require:
ok: truemanifestPathpresentrawJsonPathpresent (ifsaveRawJson=true)summarypresent
Optional:
normalizedJsonlPathonly ifsaveNormalizedJsonl=true
If the run only produced CLI help text (Usage: czkawka_cli ...) via exec, the test is invalid.
Reporting Rules
When reporting results:
- include the tool name actually called
- include
paramsResolved - include
rawJsonPath,manifestPath(andnormalizedJsonlPathonly if requested) - include
summary - for similar video scans, explicitly state:
reviewRequired: true
Do not:
- summarize from shell help output
- claim plugin success without artifact paths
- describe similar video matches as confirmed duplicates
Troubleshooting
Hook blocked an exec call
Interpretation:
- This means the workflow policy correctly blocked a shell command.
- It does not mean
czkawka_cliis missing from PATH.
Correct action:
- call the plugin tool directly (
czkawka_cli_validate, etc.)
Plugin validate fails
Use czkawka_cli_validate output to determine which dependency failed:
czkawka_cliffmpeg- writable
outputRoot
Then report the exact failed check(s), not a generic installation guess.