Features
- 🌸 Pastel treemap — every file type gets its own hue, ranked by size so the types you have are the most distinct
- 🪆 Nested mosaic — regions are recursively subdivided (WizTree-style), so a big folder reads as a map of its contents, not an empty box
- ⚡ Fast concurrent scanning — bounded-parallel walker measuring real on-disk allocation, with hardlink dedup so shared data counts once
- 🌳 Dual-pane tree view — a WizTree-style tree with size bars alongside the map, plus an extension color legend
- 🗑️ Safe delete — ctrl+x sends to Trash by default; permanent delete always requires typing it out
- 👀 Quick Look & open — space previews (macOS), enter opens files in their default app
- 🖱️ Mouse included — click to select, click again to open; scroll either pane
- 🪶 Single static binary — Go all the way down, no dependencies
Installation
diskbloom supports macOS and Linux. A truecolor terminal is recommended for the full palette.
Homebrew (recommended)
brew install Zingzy/tap/diskbloom
Go
go install github.com/Zingzy/diskbloom@latest
Binaries
Prebuilt binaries for macOS (arm64/amd64) and Linux (amd64/arm64) are on the
releases page.
Build from source
Requires Go 1.26+.
git clone https://github.com/Zingzy/diskbloom
cd diskbloom
go build -o diskbloom .
Usage
diskbloom # scan the current directory
diskbloom ~/Movies # scan a specific path
Reading the map:
- Area is size on disk — a tile twice as big takes twice the space (allocated blocks, like WizTree, so it matches what deleting actually frees)
- Color is file type — the legend (bottom-left) maps extensions to hues; folders take the color of their dominant content
- Nesting is structure — the mosaic inside a region is that folder's contents, three levels deep
- Brightness is share — bigger slices of the parent glow brighter, so the heavy stuff pops
Keybindings
Press ? inside diskbloom for the full list.
| Key |
Action |
| ←↑↓→ / hjkl |
Move spatially between regions |
| enter |
Drill into a folder · open a file |
| esc / backspace |
Go up a level |
| space |
Quick Look preview (macOS) |
| ctrl+x |
Delete — enter Trash · shift+enter permanent |
| tab |
Switch focus between treemap and tree pane |
| t |
Toggle the tree pane |
| m |
Toggle the extension color map |
| r |
Rescan |
| q / ctrl+c |
Quit |
How it works
A concurrent os.ReadDir walker measures on-disk allocation and dedups
hardlinks by {dev, ino} (internal/scan); the
squarified treemap algorithm with
cell-aspect correction keeps tiles visually square despite terminal cells being
~2× taller than wide (internal/treemap); a renderer fuses adjacent rounded
borders into single lines and recursively subdivides regions
(internal/render); per-extension hues are stepped by the golden angle so the
palette spreads itself out (internal/theme). Glued together with
Bubble Tea v2.
Alternatives
- WizTree (Windows GUI) — the inspiration for the nested treemap and color map
- diskonaut (Rust) — terminal treemap whose spatial navigation this follows
- gdu (Go) — ncdu-style list, the reference fast scanner
- dust (Rust) — du with a bar chart
- dua-cli (Rust) — interactive list-based analyzer
- ncdu (C/Zig) — the classic
Roadmap
- macOS
getattrlistbulk fast path (batches name+size+type per syscall)
- live-updating treemap that grows while scanning
- aggregated "small files" tile + zoom, instead of hiding tiny entries
- half-block (
▀) rendering mode for double-resolution density
Contributing
Issues and pull requests are welcome! To report a bug, simply
open a new issue.
License
Apache-2.0
✿
© diskbloom . 2026
All Rights Reserved