Fast, beautiful disk space analysis for Linux, macOS, and Windows. One standalone ~6 MB binary that opens a true native window — no Electron, no webview, no runtime dependencies. A fully parallel Rust scanner, three visualizations (cushion treemap + heatmap grid + radial rings), light & dark themes, and an optional --web mode that serves the same dashboard on localhost.
khoji (खोजी) — seeker. Every byte, accounted for.
The great treemap disk analyzers were an inspiration — but they were Windows-only, single-threaded, and never made the jump. Diskhoji is not a port or a clone of any of them: it's a ground-up rebuild in Rust, designed for how disks (and screens) work today.
- One standalone binary, truly native. The executable is the app: scanner, treemap engine, and a real native window (egui) in a single ~6.2 MB file. No installer, no Electron's 200 MB, no webview library. Copy it to any machine and run it.
- Genuinely fast. The scanner is work-stealing parallel across every core — measured at 1.85 million files / 681 GiB catalogued in ~2.7 s cold, ~0.4–0.7 s warm (≈690k files/s cold, 3–4.5M files/s warm). Rescans are painless, so you actually do them.
- The heavy lifting stays native. The squarified treemap layout is computed in Rust in ~15 ms for a 2-million-node tree; the UI only paints pre-computed rectangles. Million-file folders never freeze the UI.
- Three readings of the same disk.
- Treemap — cushion-shaded, area = size: instantly shows where the bulk is.
- Heatmap — a contributions-style grid: every item gets an equal cell, color = size on a log scale. Small-but-numerous files stay visible instead of vanishing into slivers.
- Rings — a radial sunburst: the current folder at the hub, each ring a level deeper, arc = size. The shape of the whole hierarchy at a glance. Toggle any of the three in the map header.
- A real dashboard, fully cross-linked. Explorer tree ⟷ map ⟷ file types ⟷ largest files: click a type to spotlight it in the map, click a large file to locate it in the tree, zoom with breadcrumbs and double-click.
- Delete without rescanning. Deleting updates the in-memory model in place — every panel, total, and chart is correct immediately.
- Private by design. By default the native app makes no network connection at all — no telemetry, no trackers, no account, nothing about you or your files leaves the machine. Update checks are strictly opt-in (off by default); when you enable them or click Check for updates, Diskhoji only compares your version against GitHub and sends nothing else. (
--webmode binds127.0.0.1and nowhere else.) - Safety rails. Stays on one filesystem (never wanders into
/proc, other mounts, or network fs), never follows symlinks, and refuses to delete the scan root.
One line (prebuilt binaries: Linux x86_64 · macOS Apple Silicon · Windows x86_64 — Intel Macs build from source via cargo):
curl -fsSL https://diskhoji.org/install.sh | shWindows (PowerShell):
irm https://diskhoji.org/install.ps1 | iexOr download by hand from Releases:
tar xzf diskhoji-*-linux-x86_64.tar.gz
./diskhoji # opens the native app
./diskhoji ~/ # scan a path immediatelyOr build from source (Linux, macOS, Windows — needs the Rust toolchain):
git clone https://github.com/singhpratech/diskhoji && cd diskhoji
cargo build --release
./target/release/diskhoji [PATH] [--web] [--port N] [--no-open]Diskhoji opens a native window by default. --web serves the same dashboard on 127.0.0.1 for your browser instead.
macOS first run: the app is not yet notarized, so Gatekeeper shows "damaged". Unblock it once:
xattr -cr /Applications/Diskhoji.app # or wherever you moved it
open /Applications/Diskhoji.app- Parallel scanner — rayon work-stealing across all cores, live progress while it runs.
- Cushion treemap — click to select, double-click to zoom, breadcrumbs to climb back out.
- Heatmap grid — one cell per item, ring = folder, color = size (log); same zoom and right-click actions.
- Radial rings — a sunburst of the hierarchy: current folder at the hub, up to five rings deep, arc = size; same zoom and right-click actions.
- Explorer tree — sizes, percent bars, sorted by weight, expand-on-demand.
- File types — top extensions by bytes with a fixed, CVD-validated categorical palette.
- Largest files — top 15, click to locate in the tree.
- Right-click anywhere (tree row, map tile, heat cell, ring arc, largest-files list):
- Open · Reveal in file manager · Copy path · Zoom · Delete permanently (confirmed, bypasses trash, updates every panel in place)
- Keyboard —
Backspacezoom up ·Deletedelete selection ·Escdismiss.
- Native window by default (light & dark themes,
A+/A−text zoom).--webmode embeds the whole dashboard as a single HTML file served on127.0.0.1only. - Sizes are logical file sizes, shown in binary units (KiB/MiB/GiB).
- Symlinks are counted as their own link size and never followed.
- Deleting the scan root is refused.
The web dashboard talks to a tiny JSON API you can script against:
/api/status · /api/roots · /api/scan · /api/summary · /api/node/{id} · /api/treemap?id&w&h · /api/delete · /api/reveal · /api/open
MIT — see LICENSE.
khoji (खोजी) — seeker.
Every byte, accounted for.
