Organize screenshots
Collection of Claude Code and Claude Desktop skills for developer workflows, automation, and productivity
npx -y skills add mostafa-drz/claude-skills --skill organize-screenshotsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Scans a folder for recent screenshots, visually classifies which ones are relevant to current work, and organizes them into a target directory with descriptive filenames. Use when collecting screenshots for PRs, bug reports, docs, or Linear issues.
SKILL.md
6.5 KB, as published. Nobody here has run it
Organize Screenshots
Scan for recent screenshots, visually classify them, and organize with descriptive names.
Preferences
Read ~/.claude/skills/organize-screenshots/preferences.md using the Read tool. If not found, no preferences are set.
Context
On startup, use Bash to detect: current git branch and count recent screenshots in the source folder (default ~/Desktop). Skip any that fail.
Command routing
Check $ARGUMENTS:
help→ display help then stopconfig→ interactive setup then stopreset→ delete~/.claude/skills/organize-screenshots/preferences.md, confirm, stop- anything else → process screenshots
Flags
Parse from $ARGUMENTS:
--source <dir>— override source folder (default: ~/Desktop or preference)--days <N>— look back N days (default: 3 or preference)--move— move instead of copy--all— skip classification, take everything- Remaining text — target directory
Help
Screenshots — Scan, classify, and organize screenshots
Usage:
/organize-screenshots <target-dir> Scan Desktop, organize into target
/organize-screenshots <target-dir> --source ~/Downloads Scan specific folder
/organize-screenshots <target-dir> --days 1 Only last 24 hours
/organize-screenshots <target-dir> --move Move instead of copy
/organize-screenshots <target-dir> --all Skip classification, take all
/organize-screenshots config Set defaults
/organize-screenshots reset Clear preferences
/organize-screenshots help This help
Examples:
/organize-screenshots ./docs/images
/organize-screenshots ./pr-assets --days 1
/organize-screenshots ~/bug-report --source ~/Downloads --move
What it does:
1. Finds recent screenshots in source folder
2. Visually reviews each one (reads the image)
3. Classifies: relevant to current work or not
4. Suggests descriptive filenames
5. Copies (or moves) to target with new names
Current preferences:
(shown above under Preferences)
Config
Use AskUserQuestion:
Q1 — "Default source folder?" (~/Desktop (default), ~/Downloads, custom path) Q2 — "Lookback days?" (1 day, 3 days (default), 7 days) Q3 — "Default action?" (Copy (default), Move) Q4 — "Naming style?" (descriptive — feature-what-it-shows (default), timestamp — YYYY-MM-DD-description, sequential — 01-description)
Save to ~/.claude/skills/organize-screenshots/preferences.md.
First-time detection
If no preferences file exists, show:
"First time using /organize-screenshots? Run /organize-screenshots config to set source folder and defaults, or continue — scanning ~/Desktop for the last 3 days."
Then proceed.
Steps
1. Identify work context
Read context to understand what's relevant:
- Current branch name and recent commits (from pre-injected context)
- CLAUDE.md if present (for project/feature names)
- Any files discussed in current conversation
Build a mental model of what screenshots to look for.
2. Find screenshots
Scan source folder for images modified within lookback period:
find {source} -maxdepth 1 -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.webp" \) -mtime -{days}
If none found → inform user, stop. If >20 found → ask if user wants to narrow time range or proceed.
3. Visual review
For each image:
- Read the image using Read tool (multimodal)
- Classify: Is it related to current work context?
- Related: shows project UI, relevant code, error messages, terminal output matching current work
- Unrelated: random browser tabs, personal content, unrelated apps
- Describe if relevant: generate a short descriptive filename
If --all flag, skip classification — include everything.
4. Present findings
Found {N} screenshots in {source} from the last {days} days.
{M} appear related to current work:
1. Screenshot 2026-02-17 at 11.19.00 AM.png
→ {descriptive-name}.png
Shows: {brief description}
2. Screenshot 2026-02-17 at 11.24.00 AM.png
→ {descriptive-name}.png
Shows: {brief description}
Skipped {K} unrelated screenshots.
Use AskUserQuestion to confirm:
- "Organize these screenshots?" (Approve all, Exclude specific ones, Include skipped ones, Cancel)
5. Organize
Create target directory:
mkdir -p {target}
Copy (or move) each approved screenshot. Important: macOS screenshot filenames contain a Unicode narrow no-break space (U+202F) before AM/PM. Always use find with timestamp wildcards:
# CORRECT — use find with wildcards:
find {source} -maxdepth 1 -name "*2026-02-17*11.19*" -exec cp {} "{target}/{descriptive-name}.png" \;
# WRONG — will fail due to Unicode:
cp "Screenshot 2026-02-17 at 11.19.00 AM.png" dest/name.png
6. Naming convention
{context}-{what-it-shows}.{ext}
- All lowercase, hyphens as separators
- Context first (feature, page, component), then what's shown
- No dates or timestamps in filename (unless timestamp naming style preference)
- Under 60 characters
- Preserve original extension
Examples:
settings-page-form-validation.pngapi-error-500-response.pngdashboard-metrics-overview.pngterminal-test-failures.png
7. Report
Organized {M} screenshots:
{target}/
├── {name-1}.png
├── {name-2}.png
└── {name-3}.png
Originals: {preserved in source / moved}
Next steps:
1. Review in {target}/
2. Upload to PR, Linear, or docs as needed
8. Learn
If user renames files after organizing, note the naming pattern. If user changes source folder, save preference.
Principles
- Always copy by default — originals stay. User decides when to delete.
- Ask before acting — present classification, get confirmation before copying.
- Be conservative — when in doubt, include and let user exclude.
- Respect privacy — skip screenshots with personal info, don't describe their contents.