See where your disk space went.
A fast, beautiful macOS disk usage visualizer — built entirely in Swift.
MacDirStat scans any folder and turns your filesystem into an interactive sunburst chart — every ring is a depth level, every arc is a file or folder, sized by disk usage. Hover to inspect. Click to drill in. Right-click to delete.
- Sunburst visualization — depth rings, color-coded by file type (video, code, images, archives…)
- Spotlight hover — everything else fades when you hover; selected files pulse with a glow
- Force Touch haptics — soft tap for small files, triple thud for multi-GB ones
- Drill navigation — click any folder to zoom in, click back to go up
- Duplicate detection — finds identical files by content hash, shows wasted space per group
- One-click cleanup — keep one copy, trash the rest — or delete file by file
- File list panel — sortable tree view beside the chart, toggle to give the chart full width
- File type breakdown — top file types with a searchable list of all types
- Move to Trash — right-click any arc or row to trash it, chart refreshes instantly
- CSV export — dump the full scan as a spreadsheet
- Settings — toggle haptic feedback on/off
| Full view | File types | Expanded types |
|---|---|---|
![]() |
![]() |
![]() |
Download on the Mac App Store — published as DirStat.
Or grab the DMG directly from Releases — open it and drag the app to your Applications folder. It updates itself automatically via the Help menu once installed.
Build from source
git clone https://github.com/Ti-03/MacDirStat.git
cd MacDirStat
swift runRequires macOS 14+ and Xcode 15+.
Releases from v1.2.0 on are signed with Sigstore
cosign, keylessly, by the release workflow itself. The signature proves the
artifact was built by this repo's release.yml at that tag and was not
tampered with afterwards. To check, download the .zip and its
.cosign.bundle from the release and run:
cosign verify-blob \
--bundle MacDirStat-v1.2.0.zip.cosign.bundle \
--certificate-identity-regexp 'https://github.com/Ti-03/MacDirStat/\.github/workflows/release\.yml@refs/tags/v.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
MacDirStat-v1.2.0.zipVerified OK means the artifact matches the signature and the signing
identity was this repo's release workflow. Every signature is also logged in
the public Rekor transparency
log.
Pure Swift + SwiftUI — no Electron, no web views, no dependencies.
| Layer | What |
|---|---|
| Scanner | POSIX opendir/fstatat with async task groups — parallel, cancellable |
| Layout | Custom sunburst partition algorithm (band-width from view size) |
| Renderer | SwiftUI Canvas — draws 1,000+ arcs at 30 fps |
| Haptics | NSHapticFeedbackManager — intensity scales with file size |
| Duplicates | SHA-256 content hashing on a background actor |
Tutorial, how-to guides, and API reference: docs site. Architecture decisions are recorded in docs/adr/.
MacDirStat collects zero data. No network access. No analytics. No tracking. Everything runs on your device. Full privacy policy.
PRs welcome. Open an issue first for anything beyond a bug fix. Setup, test commands, PR conventions, and review expectations are in CONTRIBUTING.md; how decisions get made is in GOVERNANCE.md.
Copyright © 2026 Qutibah Ananzeh (Ti-03).
MacDirStat is licensed under the GNU AGPL-3.0: use it, read it, modify it, but if you distribute a modified version (or host one as a service), your changes must stay open under the same license. The Mac App Store build is distributed by the copyright holder, which is what makes the combination possible; see CONTRIBUTING.md for what that means for contributions.



