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.

CI 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

Documentation

Tutorial, how-to guides, and API reference: docs site. Architecture decisions are recorded in docs/adr/.

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

161 stars

Watchers

1 watching

Forks

Sponsor this project

  •  

Contributors

Languages