Intelligent file organization powered by machine learning
Features • Installation • Usage • Configuration • Documentation
|
Tyr is a blazingly fast file organizer built in Rust that automatically categorizes and groups your files. Unlike traditional organizers that only look at file extensions, Tyr uses machine learning algorithms to understand relationships between files and intelligently organize them. |
// Organize in seconds
tyr ~/Downloads
// Features
✓ ML-powered grouping
✓ Parallel processing
✓ Beautiful TUI
✓ Safe operations |
Capabilities:
|
Speed:
|
curl -fsSL https://raw.githubusercontent.com/aelune/tyr/main/install.sh | bash |
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/aelune/tyr/main/install.ps1" -OutFile "install.ps1"
.\install.ps1 |
git clone https://github.com/Aelune/tyr.git
cd tyr
make install |
Requirements: Rust 1.70+
# Organize current directory
tyr
# Organize specific directory
tyr ~/Downloads
# Organize any path
tyr /path/to/folder |
Terminal Controls
|
┌────────────────────────────────────────────────────────────────┐
│ BEFORE │
├────────────────────────────────────────────────────────────────┤
│ Downloads/ │
│ ├── report_v1.pdf │
│ ├── report_v2.pdf │
│ ├── report_v3.pdf │
│ ├── vacation.jpg │
│ ├── song.mp3 │
│ └── data.xlsx │
└────────────────────────────────────────────────────────────────┘
↓
tyr ~/Downloads
↓
┌────────────────────────────────────────────────────────────────┐
│ AFTER (Category Mode) │
├────────────────────────────────────────────────────────────────┤
│ Downloads/ │
│ ├── Documents/ │
│ │ ├── report_v1.pdf │
│ │ ├── report_v2.pdf │
│ │ └── report_v3.pdf │
│ ├── Images/ │
│ │ └── vacation.jpg │
│ ├── Audio/ │
│ │ └── song.mp3 │
│ └── Spreadsheets/ │
│ └── data.xlsx │
└────────────────────────────────────────────────────────────────┘
↓
enable_smart_grouping = true
↓
┌────────────────────────────────────────────────────────────────┐
│ AFTER (Smart Grouping Mode aka filename) │
├────────────────────────────────────────────────────────────────┤
│ Downloads/ │
│ ├── Documents/ │
│ │ └── report_group_001/ ← Grouped by ML │
│ │ ├── report_v1.pdf │
│ │ ├── report_v2.pdf │
│ │ └── report_v3.pdf │
│ ├── Images/ │
│ │ └── vacation.jpg │
│ ├── Audio/ │
│ │ └── song.mp3 │
│ └── Spreadsheets/ │
│ └── data.xlsx │
└────────────────────────────────────────────────────────────────┘
Configuration File: ~/.config/tyr/tyr.toml
# Batch processing size
batch_size = 100
# Enable ML grouping
enable_smart_grouping = false
# Skip these files
skip_patterns = [
".DS_Store",
"Thumbs.db",
".git*"
] |
[categories.my_category]
extensions = [
"ext1",
"ext2",
"ext3"
]
folder_name = "My Custom Folder" |
[similarity_config]
levenshtein_threshold = 0.7 # Character similarity (0.0 - 1.0)
jaccard_threshold = 0.5 # Token overlap (0.0 - 1.0)
levenshtein_weight = 0.6 # Weight for character matching
jaccard_weight = 0.4 # Weight for token matching
min_similarity_score = 0.65 # Overall threshold for grouping |
|
|
|
|
Build & Install make install
make uninstall
make clean |
Run & Test make run
make test |
Configuration make config-edit
make config-path |
Backup & Reset make config-backup
make config-reset |
|
Rust Systems Language |
Ratatui Terminal UI |
Crossterm Terminal Control |
Rayon Parallelism |
Serde Serialization |
|
|
Contributions are welcome! We especially appreciate help with:
┌──────────────────────┬──────────────────────┬──────────────────────┐
│ New Algorithms │ Performance Tuning │ File Type Support │
├──────────────────────┼──────────────────────┼──────────────────────┤
│ Documentation │ Bug Fixes │ Testing │
└──────────────────────┴──────────────────────┴──────────────────────┘
| Feature | Tyr | Traditional Organizers |
|---|---|---|
| ML-based grouping | ✅ | ❌ |
| Parallel processing | ✅ | ❌ |
| Interactive TUI | ✅ | |
| External configuration | ✅ | |
| Dry run mode | ✅ | |
| Cross-platform | ✅ |