Sundial
macOS 14+ · Mac App Store

Your disk,
at a glance.

Sundial turns a crowded folder into a map you can read. Scan a directory, spot what is taking the room, and move the files you no longer need to the Trash. The numbers are honest, the controls are native, and your data stays on your Mac.

Universal binary · Apple silicon and Intel · App Sandbox

Private by default Three ways to read the same tree Built for macOS
Sundial running with a synthetic demo library in the Sunburst view
Sunburst viewLive capture · synthetic library
One scan. Three readings.
Allocated byteswhat the volume actually gave up
Live resultsfolders appear while the scan runs
Private by defaultno network calls, no telemetry

Read the same scan three ways

Each view reads the same scan. Click a folder to open it, click a file to select it. The breadcrumb walks back up.

Sunburst

Directory levels become rings. Each segment's area is proportional to the bytes it allocated. Five levels deep.

Blocks

A treemap. The same proportions as the sunburst, packed into rectangles, which is easier to compare at a glance.

List

The file browser using the whole window. It is present in every other view too, and it is the one that reads correctly to VoiceOver.

Sundial sunburst view showing a synthetic Sundial Demo Library
SunburstSee the shape of a folder at a glance.
Sundial blocks view showing colored folder rectangles from the synthetic demo library
BlocksCompare proportions without the rings.
Sundial list view showing synthetic folders and allocated sizes
ListBrowse every folder with names and sizes.
Sundial list view in a wider window with synthetic folder data
Wide listSee the browser view at a larger window size.

A disk tool should tell the truth

Sundial is careful about what it counts, when it refreshes, and what happens when you press Trash.

Results before the scan finishes

The first folders appear while the scan continues, down to three levels, with deeper contents aggregated until the full tree arrives. If a previous scan exists, its entry count drives the progress estimate.

The second scan is the fast one

Sundial saves the folder tree and an FSEvents cursor. The next refresh re-reads only the folders macOS reported as changed. If macOS cannot prove the event history is complete, it does a full scan instead of guessing.

Allocated bytes, counted once

Sizes are allocated bytes, which is what the volume actually gave up, not file length. The scanner stays on one volume, skips symbolic links, and counts a hard-linked file once.

It says what it could not read

Unreadable paths show up in a banner with the error, and the totals then describe only what was measured. A failed or incomplete refresh never replaces a complete saved scan.

Trash that measures first

Deleting measures the item on a worker thread, then asks. Files go to the macOS Trash, so you can put them back. After a delete, overlapping saved scans are invalidated and the affected roots are rescanned to reconcile hard links.

Sandboxed by design

Sundial runs under App Sandbox with access only to the folder you picked. Bookmarks are not persisted, so it asks again after a relaunch. A saved measurement is not an access grant.

Built for the keyboard

The native list is the accessible representation of both visuals. Its rows announce name, type, and size, and expose selection, opening, Reveal, and Trash. The canvas drawings are hidden from the accessibility tree so the browser is not read out twice.

In the file list
Select a row
Expand the selected folder
Collapse it, or move to its parent
ReturnOpen the selected folder
Go to the parent folder
RReveal in Finder
Measure, confirm, then move to Trash

What it does not claim

A disk tool that overstates what it measured is worse than no tool.

  • The Trash confirmation reports a measurement snapshot, not guaranteed reclaimed space. The filesystem can change under the operation.
  • Unaccounted space on a whole-volume scan can include snapshots and purgeable space. It is a difference, not a list of files you can delete.
  • The list shows up to 200 entries per folder. A remainder row reports the omitted count and bytes. Visuals also drop regions too small to draw.
  • Whole-volume coverage has not been validated under every macOS permission setup. Full Disk Access is a separate grant from the folder picker.

Get Sundial

Sundial runs on macOS 14 and later, on Apple silicon and Intel.

Download on the Mac App Store

Requirements

macOS 14 or later. Universal binary for Apple silicon and Intel. Roughly 6 MB.

Sandboxed and reviewed

Sundial ships through the Mac App Store. It runs in the App Sandbox and reads only the folder you give it.

Your files stay yours

Sundial reads only the folder you pick, does no network calls, and sends no telemetry. It has nowhere to send your file names. Read the privacy policy.

Under the hood

Swift + SwiftUI

The interface, the scanner, the layouts, and the cache are all Swift. No third-party dependencies.

Atomic cache

Each cache file stores its metadata and tree atomically. Invalid records are ignored and rebuilt rather than trusted.

Tested before it deletes

The Trash path, the cache, and the scanner each have their own suite, and every build runs them. A tool that moves your files to the Trash has to earn that.