Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
tkslucas/Neodisk: Read-only treemap and sunburst macOS disk space visualizer

tkslucas/Neodisk: Read-only treemap and sunburst macOS disk space visualizer

Neodisk icon

Neodisk

Read-only disk space visualizer for macOS and Linux. Treemap and sunburst views on the NeodiskKit scan engine.
Download

Platform: macOS 14+ Platform: Linux (GTK 4) Latest version License: GPLv3

Changes view: files that grew, shrank, appeared, or were deleted since the last scan Duplicates view: files with identical content grouped by reclaimable space Sunburst view of a folder, sized by disk usage from the center out

Download

Download Neodisk.dmg and drag Neodisk onto the Applications folder.

Or with Homebrew:

brew install --cask neodisk

Requires macOS 14 (Sonoma) or later.

Linux

There are no Linux packages yet; build and install from source (below). The Linux app is a native GTK 4 / libadwaita application and needs GTK 4.14 and libadwaita 1.5 or newer (Ubuntu 24.04, Fedora 40, Debian 13, and later).

About

Read-only by design. Neodisk never modifies or deletes your files. Instead, Reveal in Finder (Show in Files on Linux), Open, and Copy Path are the only file actions. Delete and clean up safely in your file manager instead.

Native on each platform. The scan engine, tree model, treemap and sunburst geometry, statistics, and search are one shared Swift core; the macOS app is SwiftUI and AppKit, the Linux app is GTK 4 and libadwaita. See ARCHITECTURE.md.

Features

  • Treemap: pinch to zoom, scroll to pan
  • Sunburst: pinch to drill in and out
  • Outline selected files
  • Find largest files
  • File type statistics
  • Age heatmap, color the treemap by last-modified date
  • Duplicate finder with content-hash verified duplicates
  • Fast scanning with live progress
  • Search: ⌘F fuzzy search over the entire scan
  • Quick Look on spacebar (macOS)
  • Arrow keys move the selection in both the treemap and the sunburst
  • Drill into a folder with ⌘↓, drill back out with ⌘↑, or click folders in the breadcrumb bar
  • Snapshots, completed scans persist and reopen instantly
  • Changes tab lists what got added, deleted, renamed, grew or shrank since the previous scan (macOS)
  • Show Package Contents: apps and bundles stay solid like in Finder until you expand them (macOS)
  • Free and hidden space for volume scans
  • Sidebar volumes show a kind-colored usage bar
  • Auto-updates via Sparkle (macOS)
  • Multilingual: UI follows the system language: English, Spanish, French, German, Italian, Brazilian Portuguese, Japanese, and Simplified Chinese
The Linux app covers the core views (treemap, sunburst, outline, largest files, kind and age statistics, search, saved scans, keyboard navigation). The duplicates and changes tabs, cloud-drive scanning, and incremental rescans are macOS-only for now; Linux has no persistent file-change journal, so every rescan there is a full scan.

Build & Run

macOS

Requires macOS 14+ and a Swift 6 toolchain. No Xcode needed, the Xcode Command Line Tools are enough.

swift run -c release Neodisk    # build and launch directly
swift test                      # full test suite (engine + treemap + UI)

Linux

Requires a Swift 6.4 toolchain (swift.org/install) and the GTK development packages:

sudo apt install libgtk-4-dev libadwaita-1-dev libzstd-dev pkg-config   # Debian/Ubuntu
sudo dnf install gtk4-devel libadwaita-devel libzstd-devel               # Fedora

swift run -c release neodisk # build and launch directly swift test # core, shared model, treemap, cloud suites Packaging/linux/install.sh # install to ~/.local (menu entry, icon)

install.sh links the Swift runtime statically, so the installed app needs only GTK 4 and libadwaita, not a Swift toolchain.

Planned

  • Windows: a native WinUI app over the same core (see
ARCHITECTURE.md)
  • Linux: Flatpak packaging, the duplicates and changes tabs

Credits

GrandPerspective by Erwin Bonsma, the cushion-treemap disk viewers this UI follows. No code from either is used.
  • Radix by Colin Kim (MIT), the scan
engine and core data model NeodiskKit is derived from, and the sunburst visualization is ported from. Huge inspiration. SquirrelDisk by Adileo, the sunburst disk viewers that view follows. No code from either is used.
  • Cushion treemaps: van Wijk & van de Wetering, INFOVIS 1999. Squarified
treemaps: Bruls, Huizing & van Wijk, 2000.

License

GPL-3.0-or-later. See LICENSE, Radix attribution is preserved there.

Chat with me