A collection of CLI file-organizer tools — the same functionality implemented in multiple programming languages. Each implementation sorts files in a directory into category-based sub-folders by extension.
This serves as a playground for exploring agentic coding patterns across languages while maintaining a consistent user-facing specification.
| Language | Directory | Status | CLI Framework |
|---|---|---|---|
| Go | cli-organize-go | Active | Cobra |
| Python | cli-organize-py | Active | argparse |
Want to add a new language? See STANDARD.md § Adding a New Language.
# Clone with all submodules
git clone --recurse-submodules https://github.com/<your-username>/cli-organize.git
cd cli-organize
# Try the interactive demo (works with any implementation)
./demo.shAll implementations follow a shared standard defined in STANDARD.md. This covers:
- CLI arguments and flags
- Default category mappings (10 categories, 60+ extensions)
- Output format and summary tables
- Conflict resolution behavior
- Testing requirements
- Project structure conventions
The root demo.sh script provides an interactive way to test any implementation:
- Seed — Generate random files across all supported extensions
- Clean — Remove seed/organized directories
- Tree — View directory structure
- Run — Execute the organizer against seeded files
- Dry Run — Simulate without changes
- Verify — Check output matches expected categories
# Use with Go implementation
./demo.sh --bin ./cli-organize-go/cli-organize-go
# Use with Python implementation
./demo.sh --bin "poetry -C ./cli-organize-py run organize"cli-organize/
├── README.md # This file
├── STANDARD.md # The specification all implementations must follow
├── demo.sh # Universal demo/test script
├── LICENSE # MIT License
├── cli-organize-go/ # Go implementation (git submodule)
└── cli-organize-py/ # Python implementation (git submodule)
Each implementation:
- Scans the top-level files in a source directory
- Determines a category for each file based on its extension
- Creates category folders (e.g.,
Documents/,Images/,Code/) - Moves (or copies) files into the appropriate folder
- Prints a summary table
Organization Complete!
+-----------------+-------+-----------+
| Category | Files | Size |
+-----------------+-------+-----------+
| Archives | 3 | 1.2 MB |
| Code | 7 | 45.3 KB |
| Documents | 5 | 320.0 KB |
| Images | 12 | 8.7 MB |
+-----------------+-------+-----------+
| Total | 27 | 10.3 MB |
+-----------------+-------+-----------+