Skip to main content

diskuh

du, but with attractive human-readable output — numeric sizes plus a proportional graphical bar per entry — and an optional full-screen TUI.

Install (dev)

henv --name duh-dev -x python -m pip install -e ".[dev]"

Usage

diskuh [PATH]                 # human-readable sizes + bars, sorted by size desc
                               # (top-level entries only by default: depth 1)
diskuh --depth 2 [PATH]       # go deeper (sizes are always accurate regardless of depth)
diskuh --depth 0 [PATH]       # unlimited depth: every directory, recursively (the old default)
diskuh --head 10 [PATH]       # show only the 10 largest entries
diskuh --tail 10 [PATH]       # show only the 10 smallest entries
diskuh --terse [PATH]         # plain "size<TAB>path" output, script/pipe friendly
diskuh --no-cache [PATH]      # bypass the cache; force a fresh full scan
diskuh --tui [PATH]           # launch the full-screen TUI
diskuh-tui [PATH]             # same TUI, dedicated entry point

dhx [PATH]                    # short alias for diskuh (identical, same flags)
dhx-tui [PATH]                # short alias for diskuh-tui

Scan results are cached in a SQLite database at ~/.diskuh/cache.sqlite3, keyed on a per-directory metadata fingerprint (name/type/size/mtime of each directory's immediate children) so repeat scans skip re-reading unchanged subtrees. See src/diskuh/cache.py for the exact staleness algorithm and its documented limitations.

In the TUI, press d on a selected entry to delete it (after confirmation). Deletion is permanent — there is no trash/undo. Press i to toggle Modified/Created date columns for every visible entry. Created works via st_birthtime on macOS/BSD, and via the statx() syscall on Linux (kernel 4.11+/glibc or musl since ~2018) — shows only where neither is available (very old Linux, or a filesystem that doesn't track a birth time at all, e.g. some network filesystems).

Development

henv --name duh-dev -x pytest -v

Releasing

Published to PyPI via GitHub Actions using Trusted Publishing (OIDC) — no API tokens involved. To cut a release:

  1. Bump version in both pyproject.toml and src/diskuh/__init__.py.
  2. Commit, then tag and push:
    git tag -a vX.Y.Z -m "vX.Y.Z: <summary>"
    git push origin vX.Y.Z
    
  3. .github/workflows/publish.yml builds, validates with twine check, and publishes automatically. Watch it at gh run watch --repo matplo/diskuh or the Actions tab.

PyPI's installable index can lag its own JSON API by up to ~30s after a publish — a pip install that briefly shows the previous version doesn't mean the release failed; retry after a short wait.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diskuh-0.1.4.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

diskuh-0.1.4-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file diskuh-0.1.4.tar.gz.

File metadata

  • Download URL: diskuh-0.1.4.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for diskuh-0.1.4.tar.gz
Algorithm Hash digest
SHA256 6bdffbfaf69ca2da840a7f8f2b92721e69a97f7c59f19a89486ef061fa77d2b6
MD5 b7e21312a0815559debc2c3e235feded
BLAKE2b-256 7e79cf73b06e7de5ddc2e963645719bb3b570eaaa02c072e9aa6b8090cde9e96

See more details on using hashes here.

Provenance

The following attestation bundles were made for diskuh-0.1.4.tar.gz:

Publisher: publish.yml on matplo/diskuh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diskuh-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: diskuh-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for diskuh-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9c35b2a88bb0f9edf8e5f01a2af9de09f9dd495d41805a417c8184edad7aa7ce
MD5 ec275ceb125d1e1d3ebec4b757d42ceb
BLAKE2b-256 68c1969f11f0e9c55c2185ca3e2419d874f293a52a7eaa60397cc373e244e3c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for diskuh-0.1.4-py3-none-any.whl:

Publisher: publish.yml on matplo/diskuh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.5

2 files

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page