Skip to content

Ti-03/MacDirStat

Repository files navigation

MacDirStat icon

MacDirStat

See where your disk space went.
A fast, beautiful macOS disk usage visualizer — built entirely in Swift.

App Store macOS License Ko-fi


MacDirStat demo


What it does

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.

Features

  • 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

Screenshots

Full view File types Expanded types

Install

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 run

Requires macOS 14+ and Xcode 15+.

Tech

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

Privacy

MacDirStat collects zero data. No network access. No analytics. No tracking. Everything runs on your device. Full privacy policy.

Contributing

PRs welcome. Open an issue first for anything beyond a bug fix.


Built with ❤️ by Ti  ·  Mac App Store  ·  Website  ·  Support on Ko-fi

About

See where your disk space went

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors

Languages