A macOS app that helps you sort PDF files into your existing folder structure using machine learning.
OrdnerMeister uses a Naive Bayes classifier to automatically organize PDF files based on your existing folder structure. The app learns from how you've already organized your files and uses this knowledge to intelligently classify new documents.
- Automatic PDF Classification: Uses machine learning to predict the best folder for each PDF
- OCR Integration: Automatically extracts text from scanned PDFs using Apple's Vision framework
- Smart Learning: Trains on your existing folder structure to understand your organization system
- Preview & Verify: Review classification results before moving files
- Native macOS App: Built with SwiftUI for a modern, native experience
- Training: OrdnerMeister scans your output folder structure and existing PDFs to build a classification model
- Text Extraction: For each new PDF, it extracts text content (performing OCR if needed)
- Classification: The Naive Bayes classifier analyzes the text and predicts the most appropriate folder
- Review: You can review the suggestions and confirm or adjust the destination before moving files
- macOS 14.0 (Sonoma) or later
- Xcode 16.0+ (for development)
- Swift 6.2+
Download the latest release from the Releases page.
# Clone the repository
git clone https://github.com/fardage/OrdnerMeister.git
cd OrdnerMeister
# Open in Xcode
open OrdnerMeister.xcworkspace
# Build and run (⌘R)- Launch the OrdnerMeister app
- Open Settings (⌘,):
- Select the input folder containing PDF files you want to sort
- Select the output folder with your existing organized folder structure
- Click the Run button to start the classification process
- Review the classification results and confirm the suggested destinations
- Files will be moved to their predicted folders
OrdnerMeister follows a clean architecture pattern with clear separation of concerns:
- OrdnerMeisterPresentation: SwiftUI views and view models
- OrdnerMeisterDomain: Business logic and domain models
- OrdnerMeisterData: Data layer with file system operations and ML classifier
- SwiftUI: Modern declarative UI framework
- Naive Bayes Classifier: Machine learning for document classification
- Vision Framework: Apple's OCR for extracting text from scanned documents
- Swift Concurrency: Modern async/await patterns for file operations
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
⌘Uin Xcode) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure:
- Code follows Swift style guidelines
- Tests are included for new features
- The project builds without warnings
- UI changes are tested on macOS 14+
This project currently does not have a specified license. Please contact the maintainer for usage rights.
- Bayes - Naive Bayes classifier implementation for Swift
- Apple's Vision framework for OCR capabilities
