file-organizer
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user has a messy directory (Downloads, Desktop) and wants files organized by type or date, or wants duplicate files found — with a dry-run preview shown before anything actually moves.
- Reads credentials
70 other projects use a version of this.
Adopted by
Most recently taken up by
- BrightGold70/skillstheir own version, first seen Nov 8, 2026
- insight68/Skillstheir own version, first seen Nov 8, 2026
- AlienHub/file-organizertheir own version, first seen Nov 8, 2026
- AgnesAI-Labs/agnet-skills-cntheir own version, first seen Nov 1, 2026
- digitaldevotion/ai-companion-alcovetheir own version, first seen Nov 1, 2026
- OpenSourceAssist/awesome-agent-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use skill-share, meeting-insights-analyzer and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ArogyaReddySkillskill-share
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Also in 25 projects that use this
ArogyaReddySkillmeeting-insights-analyzer
Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Also in 39 projects that use this
guaderramaSkilllead-research-assistant
Identifies and qualifies potential leads by analyzing products/services, understanding ideal customer profiles, conducting intelligent web research using Bright Data MCP tools, and providing actionable outreach strategies. Use when researching leads, prospecting, qualifying contacts, analyzing companies, enriching lead data, or creating outreach campaigns.
Also in 36 projects that use this
trendinuxSkilltwitter-algorithm-optimizer
Analyze and optimize tweets for maximum reach using Twitter's open-source algorithm insights. Rewrite and edit user tweets to improve engagement and visibility based on how the recommendation system ranks content.
Also in 14 projects that use this
- +8 more from ArogyaReddy
Other versions70 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 70
- ComposioHQ/awesome-claude-skills★ 75ksame name
- NVIDIA/SkillSpector★ 25ksame name
- ComposioHQ/awesome-codex-skills★ 17ksame name
- composio-community/awesome-codex-skills★ 16ksame name
- Prat011/awesome-llm-skills★ 1.7ksame name
- langchain-ai/deepagentsjs★ 1.6ksame name
- Prorise-cool/Claude-Code-Multi-Agent★ 304same name
- smithjoshua/claude-code-cowork-skills-file-organizer★ 57same name
- Amazon-Quick/Amazon-Quick-official-catalog★ 50same name
- ArogyaReddy/ComposioHQ-awesome-claude-skills★ 45same name
60 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- changelog-generatorSkill
- color-palette-generatorSkill
- cron-taskSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- resume-builderSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- uptime-kuma-self-hostSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 63 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 143
Run in dry-run mode first to show what would move where
- Distinctive: line 145
If approved, run without dry-run to actually move files
“Common” is measured: kept by at least 6 in 10 of the 63 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
file-organizer
Overview
Organize files in a directory by type, date, or custom patterns. The agent scans a directory, categorizes files, and moves them into a structured layout. Supports dry-run mode to preview before moving.
When to Use
- The user has a messy directory (Downloads, Desktop) and wants it organized.
- The user wants to sort files by type, date, or name pattern.
- The user wants to find and remove duplicate files.
- The user says "organize my downloads", "clean up this folder", or "sort these files".
Organize by Type
import os
import shutil
from pathlib import Path
CATEGORY_MAP = {
"Images": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp", ".svg", ".heic"],
"Videos": [".mp4", ".avi", ".mov", ".mkv", ".wmv", ".flv", ".webm"],
"Audio": [".mp3", ".wav", ".flac", ".aac", ".ogg", ".m4a"],
"Documents": [".pdf", ".doc", ".docx", ".txt", ".md", ".odt", ".rtf", ".pages"],
"Spreadsheets": [".xls", ".xlsx", ".csv", ".ods", ".numbers"],
"Presentations": [".ppt", ".pptx", ".key", ".odp"],
"Archives": [".zip", ".tar", ".gz", ".rar", ".7z", ".bz2", ".xz"],
"Code": [".py", ".js", ".ts", ".jsx", ".tsx", ".java", ".cpp", ".c", ".h", ".go", ".rs", ".rb", ".php", ".sh", ".html", ".css", ".json", ".xml", ".yaml", ".yml"],
"Executables": [".exe", ".msi", ".deb", ".rpm", ".dmg", ".app", ".apk"],
"Fonts": [".ttf", ".otf", ".woff", ".woff2", ".eot"],
"Data": [".db", ".sqlite", ".sql", ".json", ".csv"],
}
def organize_by_type(directory: str, dry_run: bool = True) -> dict:
"""Organize files into subdirectories by category."""
moved = {}
skipped = []
for item in Path(directory).iterdir():
if item.is_dir():
continue
ext = item.suffix.lower()
category = "Misc"
for cat, extensions in CATEGORY_MAP.items():
if ext in extensions:
category = cat
break
target_dir = Path(directory) / category
target_path = target_dir / item.name
if dry_run:
moved[str(item)] = str(target_path)
else:
target_dir.mkdir(exist_ok=True)
if target_path.exists():
# Append number to avoid overwriting
stem = item.stem
i = 1
while target_path.exists():
target_path = target_dir / f"{stem}_{i}{item.suffix}"
i += 1
shutil.move(str(item), str(target_path))
moved[str(item)] = str(target_path)
return {"moved": moved, "count": len(moved), "dry_run": dry_run}Organize by Date
import datetime
def organize_by_date(directory: str, dry_run: bool = True) -> dict:
"""Organize files into year/month subdirectories by modification date."""
moved = {}
for item in Path(directory).iterdir():
if item.is_dir():
continue
mtime = datetime.datetime.fromtimestamp(item.stat().st_mtime)
year = str(mtime.year)
month = mtime.strftime("%m-%B")
target_dir = Path(directory) / year / month
target_path = target_dir / item.name
if dry_run:
moved[str(item)] = str(target_path)
else:
target_dir.mkdir(parents=True, exist_ok=True)
shutil.move(str(item), str(target_path))
moved[str(item)] = str(target_path)
return {"moved": moved, "count": len(moved), "dry_run": dry_run}Find Duplicates
import hashlib
def find_duplicates(directory: str) -> dict:
"""Find duplicate files by content hash."""
hashes = {}
duplicates = {}
for item in Path(directory).rglob("*"):
if item.is_file():
h = hashlib.sha256(item.read_bytes()).hexdigest()
if h in hashes:
if h not in duplicates:
duplicates[h] = [hashes[h]]
duplicates[h].append(str(item))
else:
hashes[h] = str(item)
return {
"total_files": len(hashes) + sum(len(v) - 1 for v in duplicates.values()),
"duplicate_groups": len(duplicates),
"duplicates": duplicates,
}Workflow
- Identify the directory to organize
- Run in dry-run mode first to show what would move where
- Show the user the proposed organization
- If approved, run without dry-run to actually move files
- Report: files moved, categories created, any duplicates found
Common Pitfalls
- Always dry-run first — Never move files without showing the user what will happen. A wrong category mapping could scatter files unexpectedly.
- Name collisions — Files with the same name in different categories will collide. The code handles this by appending
_1,_2, etc. - Symlinks —
Path.iterdir()includes symlinks. Moving a symlink moves the link, not the target. Handle symlinks separately if needed. - Hidden files — Files starting with
.(.gitignore,.env) are included by default. Filter them out if the user doesn't want them moved. - Permission errors — Moving files requires write permission on both the source and target. On Windows, files in use can't be moved.
- Large directories —
find_duplicatesreads every file to hash it. For directories with thousands of large files, this is slow. Consider hashing only files above a size threshold first.
Verification Checklist
- Dry-run output was shown to and approved by the user before any real move ran
- Post-move file count matches pre-move count — nothing was lost or silently overwritten
- Any name-collision case produced a
_1/_2suffixed file instead of overwriting the original find_duplicatesgroups spot-checked (same hash, same actual content) before deleting anything
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

