A modern, native macOS application for bulk file renaming with an intuitive 3-pane interface. Built with SwiftUI for a native macOS experience.
Download Bruos v1.0 - Ready-to-use macOS app
Requires macOS 13.0+ | Apple Silicon (ARM64) or Intel Mac
The main 3-pane interface showing file explorer (left), file list with preview (center), and rename settings (right)
File selection and rename configuration in action - demonstrating the real-time preview functionality
- Left Panel: File explorer with folder navigation
- Center Panel: File list with checkboxes and preview
- Right Panel: Comprehensive rename settings and options
- Real-time Preview: See changes before applying
- Professional UI: Clean, modern macOS design
- 🎨 Custom App Icons: Beautiful PNG icons integrated for all macOS icon sizes
- 🆘 Help Menu: Custom Help menu with "About Bruos" option
- ℹ️ About Dialog: Professional About popup with creator information and FOSS declaration
- 🎯 Enhanced UI: Improved padding and spacing for better visual hierarchy
- ⚡ Release Build: Optimized and code-signed for smooth operation
- 📦 Ready to Use: Download and run immediately
- 3-Pane Layout: File explorer, file list with preview, and rename settings
- Real-time Preview: See changes before applying them
- Drag & Drop: Easy file import from Finder
- Multiple Rename Options: Case styles, separators, additions, and advanced regex
- Finder-style Navigation: Browse directories with familiar interface
- File Selection: Checkbox-based file selection
- Search: Quick file search within current directory
- File Information: Display file size, modification date, and path
- UPPERCASE, lowercase, Capitalize Words
- camelCase, PascalCase
- snake_case, kebab-case, dot.separated
- Snake_Case, Kebab-Case, Dot.Separated
- Replace spaces with: Space, Underscore, Hyphen, Dot
- Merge duplicate separators option
- Remove numbers, spaces, special characters
- Trim leading/trailing characters (configurable count)
- Prefix and suffix text
- Auto-numbering: 01, 001, (1), -1
- Date/Time insertion: Created, Modified, Current
- Custom date format support
- Regex find and replace
- Recursive renaming (subfolders)
- Conflict resolution: Skip, Overwrite, Auto-rename
- Native macOS Design: Built with SwiftUI for modern, native feel
- Custom App Icons: Professional PNG icons for all macOS icon sizes
- Help Menu Integration: Custom Help menu with About dialog
- Dark/Light Mode: Automatic system preference adaptation
- Smooth Animations: Expandable settings sections
- Professional About Dialog: Creator information and FOSS declaration
- Undo/Redo: Full undo/redo support (planned)
- Profiles/Presets: Save and load rename configurations (planned)
- SwiftUI: Modern declarative UI framework
- MVVM Pattern: Clean separation of concerns
- ObservableObject: Reactive data binding
- File System Integration: Native file operations
Bruos/
├── BruosApp.swift # Main app entry point with About dialog
├── ContentView.swift # Main 3-pane layout
├── Models/
│ ├── FileItem.swift # File representation model
│ └── RenameSettings.swift # Rename configuration model
├── ViewModels/
│ └── FileManager.swift # File system operations
├── Views/
│ ├── FileExplorerView.swift # Left sidebar file browser
│ ├── FileListView.swift # Main file list with preview
│ └── RenameSettingsView.swift # Right panel settings
├── Utils/
│ └── RenameEngine.swift # Core rename logic
├── Assets.xcassets/
│ └── AppIcon.appiconset/ # Custom PNG app icons
└── public/
└── icons/ # Source PNG icon files
- macOS: 13.0 or later
- Xcode: 15.0 or later
- Swift: 5.0 or later
- Download the latest release
- Extract
Bruos-v1.0-Release.zip - Move
Bruos.appto your Applications folder - Launch the app (right-click → "Open" on first launch)
- Clone the repository:
git clone https://github.com/noncent/bruos.git cd bruos - Open
Bruos.xcodeprojin Xcode - Build and run the project (⌘+R)
- macOS: 13.0 or later
- Architecture: Apple Silicon (ARM64) or Intel Mac
- For Development: Xcode 15.0+, Swift 5.0+
- Launch the app
- Navigate to your desired folder using the left sidebar
- Select files you want to rename (checkboxes)
- Configure settings in the right panel
- Preview changes in the main panel
- Apply changes to rename files
- Open the app - Starts in Documents directory
- Navigate - Use the left sidebar to browse folders
- Select files - Check files you want to rename
- Configure settings - Use the right panel to set rename rules
- Preview changes - See real-time preview in the main panel
- Apply changes - Click "Apply Changes" to rename files
- 🖱️ Drag & Drop: Drag files from Finder into the app
- 🔍 Search: Use the search bar to quickly find files
- 🔧 Regex: Use advanced regex patterns for complex renaming
- 🆘 Help Menu: Access "About Bruos" from the Help menu
- ℹ️ About Dialog: View app information, creator details, and FOSS declaration
- 💾 Profiles: Save and reuse rename configurations (coming soon)
| Original | Pattern | Result |
|---|---|---|
IMG_001.jpg |
Add prefix "Vacation_" | Vacation_IMG_001.jpg |
IMG_002.jpg |
Add prefix "Vacation_" | Vacation_IMG_002.jpg |
IMG_003.jpg |
Add prefix "Vacation_" | Vacation_IMG_003.jpg |
photo1.jpg |
Add counter | photo_001.jpg |
photo2.jpg |
Add counter | photo_002.jpg |
photo3.jpg |
Add counter | photo_003.jpg |
| Original | Pattern | Result |
|---|---|---|
my file name.txt |
Snake case | my_file_name.txt |
My Document.pdf |
Snake case | my_document.pdf |
Report 2024.docx |
Snake case | report_2024.docx |
Document (1).pdf |
Remove numbers | Document ().pdf |
Document (2).pdf |
Remove numbers | Document ().pdf |
Document (3).pdf |
Remove numbers | Document ().pdf |
| Original | Pattern | Result |
|---|---|---|
my file name.txt |
UPPERCASE | MY FILE NAME.TXT |
MY FILE NAME.TXT |
lowercase | my file name.txt |
my file name.txt |
Capitalize Words | My File Name.txt |
my file name.txt |
camelCase | myFileName.txt |
my file name.txt |
PascalCase | MyFileName.txt |
my file name.txt |
snake_case | my_file_name.txt |
my file name.txt |
kebab-case | my-file-name.txt |
my file name.txt |
dot.separated | my.file.name.txt |
| Original | Pattern | Result |
|---|---|---|
IMG_2024_01_15_001.jpg |
Remove prefix "IMG_" | 2024_01_15_001.jpg |
vacation_photo.jpg |
Add suffix "_backup" | vacation_photo_backup.jpg |
file with spaces.txt |
Replace spaces with underscores | file_with_spaces.txt |
file-with-dashes.txt |
Replace dashes with underscores | file_with_dashes.txt |
document_v1_final.pdf |
Remove "_v1" | document_final.pdf |
old_file_2023.txt |
Replace "2023" with "2024" | old_file_2024.txt |
| Original | Pattern | Result |
|---|---|---|
report.pdf |
Add creation date | report_2024-10-02.pdf |
photo.jpg |
Add modification time | photo_14-30-25.jpg |
document.docx |
Add current date | document_2024-10-02.docx |
backup.zip |
Add timestamp | backup_20241002_143025.zip |
| Original | Pattern | Result |
|---|---|---|
file1.txt |
Add leading zeros | file001.txt |
file2.txt |
Add leading zeros | file002.txt |
file3.txt |
Add leading zeros | file003.txt |
document.pdf |
Add counter (1) | document_1.pdf |
document.pdf |
Add counter (2) | document_2.pdf |
document.pdf |
Add counter (3) | document_3.pdf |
| Original | Pattern | Result |
|---|---|---|
file (copy).txt |
Remove "(copy)" | file .txt |
file (1).txt |
Remove numbers in parentheses | file ().txt |
file with spaces.txt |
Merge duplicate spaces | file with spaces.txt |
file---with---dashes.txt |
Merge duplicate dashes | file-with-dashes.txt |
file___with___underscores.txt |
Merge duplicate underscores | file_with_underscores.txt |
The project uses a standard Xcode project structure with:
- SwiftUI for modern, declarative UI
- Combine for reactive programming
- FileManager for file operations
- Regular expressions for advanced renaming
- MVVM Architecture for clean code organization
Represents a file with metadata:
- URL, name, directory flag
- Size, modification date
- Display properties
ObservableObject containing all rename configuration:
- Case styles, separators, remove options
- Prefix/suffix, auto-numbering, date insertion
- Advanced regex and conflict resolution
Core logic for generating new filenames:
- Applies all rename rules in sequence
- Handles edge cases and validation
- Supports complex transformations
- Undo/Redo functionality - Full undo/redo support
- Profiles/Presets system - Save and load rename configurations
- Finder extension - Right-click integration
- Batch operations - Process multiple folders
- File filtering - Advanced file type filtering
- Custom rename rules - User-defined patterns
- Export/Import configurations - Share settings
- Additional app icon themes - Multiple icon options
- Keyboard shortcuts - Power user features
- Dark mode improvements - Enhanced dark theme
- Accessibility features - VoiceOver support
We welcome contributions! Here's how you can help:
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/amazing-feature) - 💻 Make your changes
- 🧪 Add tests if applicable
- 📝 Commit your changes (
git commit -m 'Add amazing feature') - 📤 Push to the branch (
git push origin feature/amazing-feature) - 🔄 Open a Pull Request
Found a bug? Please open an issue with:
- macOS version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
Have an idea? We'd love to hear it! Open an issue with:
- Clear description
- Use case
- Mockups if applicable
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Noncent (Nono)
This app is completely FOSS (Free and Open Source Software) for everyone.
- ⭐ Star this repository
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 🔄 Share with others
- SwiftUI and native macOS frameworks
- Apple's Human Interface Guidelines for design inspiration
- Modern file management applications for UX inspiration
- Open source community for tools and libraries
- Custom icons and UI enhancements for professional appearance
Made with ❤️ by Noncent | Report Bug | Request Feature