A fast, minimal, config-driven file organizer built with Rust.
Iris helps you sort and organize your messy folders automatically using defined rules.
## Features
- ⚡ **Fast**: Built in Rust for high performance.
- 💻 **Multiplatform**: Runs on Windows, Linux, and macOS.
- 🖱️ **Context Menu**: Right-click "Sort with Iris" support on Windows.
- 📁 **Config Driven**: Customize behavior with a simple `iris.toml` file.
- 📄 **Shell Completion**: Support for shell completion scripts.
- 🤖 **Smart Presets**: Comes with sensible defaults for common file types.
## Installation
### Download Binary
Download the latest release for your platform from the [Releases Page](https://github.com/lordaimer/iris/releases).
### From Crates.io
```bash
cargo install iris-cli
```
## Usage
### Basic Sorting
To sort a directory using default settings:
```bash
iris sort /path/to/folder
```
### Windows Context Menu
On Windows, you can add Iris to the right-click menu:
```powershell
iris context install
```
Now simply right-click any folder background and select **"Sort with Iris"**.
Demo: Windows Context Menu
## Configuration
Iris automatically creates a default configuration file at:
- **Windows**: `%APPDATA%\Iris\iris.toml`
- **Linux/macOS**: `~/.config/iris/iris.toml`
Can be customized to define where files go based on extensions or patterns.
```bash
iris config edit
```
```toml
[preset.images]
enabled = true
# Sorts .jpg and .png into "Pictures" folder
extension = ["jpg", "png"]
relative_path = "Pictures"
```
## Shell Completion
Automatically generate and install completion scripts for your shell. You can also generate the completion script manually and install it yourself with `iris completions ` command.
```bash
iris completions install
```
## Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
- Setting up your development environment
- Coding standards and conventions
- How to submit pull requests
- Testing requirements
Check out the [roadmap](.project/roadmap.md) for planned features and improvements.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.