A fast, open-source disk space analyzer for macOS. Built with Go and Wails.
- Fast parallel scanning — uses 64 concurrent goroutines to scan your disk quickly
- Interactive sunburst visualization — drill down into directories by clicking arcs
- Accurate size reporting — matches macOS Finder and About This Mac figures
- Drag to trash — drop files and folders onto the trash zone to free up space
- Full Disk Access detection — warns you when permissions are limiting scan accuracy
- Universal binary — runs natively on both Apple Silicon and Intel Macs
| Disk Selection | Scan Results |
|---|---|
![]() |
![]() |
Download the latest .dmg from the Releases page.
Prerequisites:
- Go 1.21+
- Node.js 18+
- Wails CLI v2
# Clone the repo
git clone https://github.com/owldisk/owldisk.git
cd owldisk
# Install dependencies
make setup
# Run in development mode
make dev
# Build the .app bundle
make build
# Build a DMG installer
make dmg-
Grant Full Disk Access for accurate results:
- Open System Settings → Privacy & Security → Full Disk Access
- Add OwlDisk.app
- Restart the app
-
Select a disk from the main screen, or choose "Select a folder to scan"
-
Explore the sunburst chart:
- Each ring represents one level of directory depth (3 levels visible)
- Arc size is proportional to the folder/file size
- Click an arc to drill down
- Click the center circle to go back up
-
Manage files:
- Drag items from the file list to the trash zone to delete them
- Click "Reveal" to open the file in Finder
owldisk/
├── app.go # Wails app bindings (scan, trash, finder)
├── main.go # App entry point and Wails config
├── scanner/
│ ├── scanner.go # Parallel directory walker
│ ├── diskinfo.go # Disk enumeration via statfs
│ ├── diskinfo_darwin_cgo.go # macOS NSURL available capacity (CGO)
│ └── tree.go # FileNode tree structure and pruning
├── frontend/
│ ├── src/
│ │ ├── App.tsx # Main disk selection screen
│ │ └── components/
│ │ ├── DiskDetail.tsx # Scan progress and results view
│ │ ├── SunburstChart.tsx # D3 sunburst visualization
│ │ ├── FileList.tsx # Navigable file list panel
│ │ └── TrashDrop.tsx # Drag-to-delete zone
│ └── wailsjs/ # Auto-generated Go bindings for frontend
├── build/
│ ├── appicon.png # App icon source
│ └── darwin/ # macOS build resources (Info.plist, icon.icns)
└── docs/ # GitHub Pages website (owldisk.com)
- Disk enumeration: Uses
statfs+ macOSNSURLAPI (via CGO) to get disk info including purgeable space - Parallel scan: Walks the directory tree with 64 concurrent goroutines, collecting file sizes
- Tree pruning: For quick scans, removes items below 0.05% of total to keep the JSON manageable
- Visualization: Frontend receives the tree via Wails events and renders it with D3's partition layout
- macOS 11.0 (Big Sur) or later
- Full Disk Access recommended for accurate results

