diskbloom

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

README

✿ diskbloom

see what's eating your disk — in bloom

A pastel, WizTree-style treemap disk visualizer that lives in your terminal.

Latest Release CI Go Report Card License

diskbloom scanning a directory, drilling three levels deep, and climbing back out

Theme: Catppuccin Mocha · Font: JetBrains Mono · Recorded with VHS

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.

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


Built with 🌸 and Bubble Tea · Lip Gloss · VHS


© diskbloom . 2026

All Rights Reserved

Documentation

Overview

Command diskbloom is a fast, pastel disk-space visualizer for the terminal — a WizTree-style treemap that renders right in your shell.

Usage:

diskbloom [path]

With no argument it scans the current directory.

Directories

Path Synopsis
internal
scan
Package scan walks a filesystem subtree and builds a size-aggregated Node tree.
Package scan walks a filesystem subtree and builds a size-aggregated Node tree.
theme
Package theme defines the pastel palette and Lipgloss styles used across the UI.
Package theme defines the pastel palette and Lipgloss styles used across the UI.
treemap
Package treemap implements the squarified treemap layout algorithm (Bruls, Huizing & van Wijk, "Squarified Treemaps", 2000).
Package treemap implements the squarified treemap layout algorithm (Bruls, Huizing & van Wijk, "Squarified Treemaps", 2000).
ui
Package ui is the Bubble Tea application: it owns app state, drives the asynchronous scan, and renders the treemap.
Package ui is the Bubble Tea application: it owns app state, drives the asynchronous scan, and renders the treemap.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL