Visit the website — Learn more and download the app.
A lightweight native macOS app for fast, unified access to Microsoft 365 files across OneDrive and SharePoint.
Microsoft's default apps (OneDrive, SharePoint, Teams) scatter files across fragmented interfaces. Finding a file means knowing which app to open and which site to check. BetterMSFile merges everything into a single, fast, keyboard-first file browser.
- Unified file view — OneDrive, SharePoint, and shared files in one place
- Fast search — Global search across all sources via Microsoft Graph Search API
- Scoped search — Filter search to a specific team, site, or your OneDrive
- Favorites — Pin frequently used files and folders for instant access (Cmd+D)
- Frequently Used — Smart suggestions based on your usage patterns (frecency)
- Drag-and-drop reorder — Custom file ordering per folder, persisted across sessions
- Keyboard-first — Navigate entirely with keyboard shortcuts (Cmd+K search, arrow keys, Space for Quick Look)
- Native macOS — Built with SwiftUI, feels like a system app
- Instant startup — Local cache with background refresh
- Quick Look — Preview files without downloading
- Open anywhere — Open in browser, download, copy link, drag & drop
- macOS 26.2+
- Microsoft 365 work/school account
- Azure AD app registration with delegated permissions:
User.ReadFiles.ReadWrite.AllSites.Read.All
- Clone the repository
- Copy
BetterMSFile/Config.swift.exampletoBetterMSFile/Config.swift - Fill in your Azure AD app registration values (client ID, tenant ID)
- Open
BetterMSFile.xcodeprojin Xcode - Build and run
SwiftUI Views → ViewModels → Services → GraphClient → Microsoft Graph API
↕
SwiftData (cache)
↕
MSAL (auth/tokens)
MVVM with service layer:
- Views — SwiftUI, NavigationSplitView (sidebar + file list + detail)
- ViewModels — State management, business logic
- Services — File fetching, search, site discovery
- GraphClient — Authenticated HTTP with pagination and throttle handling
- SwiftData — Local metadata cache for instant startup
- MSAL — Microsoft authentication, token management via Keychain
BetterMSFile/
├── App/ # App entry point, global state
├── Auth/ # MSAL authentication service
├── Networking/ # Graph API client, endpoints, response types
├── Services/ # File, search, and site services
├── Models/ # SwiftData models (UnifiedFile, FileSource)
├── ViewModels/ # View state management
├── Views/ # SwiftUI views (sidebar, file list, search, auth)
└── Extensions/ # Utility extensions
| Shortcut | Action |
|---|---|
| Cmd+K | Global search |
| ↑ / ↓ | Navigate file list |
| Enter | Open file / enter folder |
| Cmd+O | Open in browser |
| Cmd+D | Toggle favorite |
| Space | Quick Look preview |
| Escape | Dismiss search / go back |
| Cmd+[ / Cmd+] | Back / forward |
- MSAL for macOS — Microsoft authentication (via SPM)
| Scope | Purpose |
|---|---|
User.Read |
User profile |
Files.ReadWrite.All |
OneDrive + SharePoint file access + move |
Sites.Read.All |
SharePoint site discovery |