Fast TUI Disk Usage Explorer

Explore massive directories in seconds with a responsive ncurses UI, parallel scanning, and smart caching.

Why fastdu?

Parallel & precise

Deep work-queue with multiple threads plus robust openat/fstatat for correct size accounting without following symlinks.

Persistent cache

Stores directory sizes and metadata at the scan root for instant reloads and targeted rescans when content changes.

Responsive TUI

Clean ncurses UI with sorting (size/name/mtime), filters, incremental find/regex, and preserved selection.

Safe operations

Mark entries for bulk move/copy/delete with conflict handling and progress bars, updating cache and totals on the fly.

Flexible display

Left size column: numeric/percent/off (I). Right info: mtime/owner+perm/hidden (i). Tweak views to your workflow.

Battle‑tested

Designed for large trees and fast iteration, informed by gdu/ncdu patterns and careful concurrency in C (pthreads + atomics).

Install

Fedora / RHEL

sudo dnf install gcc make ncurses-devel
make
./fastdu [path]

Generic build

# Requirements
# - C11 compiler (gcc/clang)
# - ncurses (wide-char)
# - pthreads

make
./fastdu [options] [path]

Run from source

git clone https://github.com/anidisc/fastdu
cd fastdu
make && ./fastdu

Key shortcuts

Navigation

  • Up/Down or j/k — select
  • Enter or Right/l — open directory
  • Backspace or Left — go up
  • b — top, e — end

View & search

  • o — sort (size/name/mtime), s — asc/desc
  • I — size column (numeric → percent → off)
  • i — info column (mtime → owner+perm → hidden)
  • f — find, F — regex, n/N — next/prev
  • t — filter (all/dirs/files), T — toggle filter by query

Operations

  • Space — mark/unmark, Ctrl‑A — select/deselect all
  • m — move, c — copy, d — delete
  • r — rescan selected, R — rescan current

Full help is available in‑app with h.

Open source and ready for contributions

Issues, ideas, and PRs are welcome. Check the repository for roadmap and TODOs.

Go to GitHub