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 --depth 5 [PATH] # launch the TUI showing 5 levels deep at once (default: 3)
diskuh-tui [PATH]             # same TUI, dedicated entry point
diskuh-tui --depth 0 [PATH]   # same TUI, unlimited depth from the start

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). Press n to set how many entries to show per directory level, and l to set how many levels deep to show at once — both accept blank for unlimited. --depth's short flag is -l (for "depth-level"), not -d, to avoid any mnemonic overlap with the TUI's d (delete) binding.

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.

Metadata

Release files for diskuh 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for diskuh 0.1.5
File Size Uploaded Provenance
diskuh-0.1.5.tar.gz 34.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for diskuh 0.1.5
File Interpreter ABI Platform
diskuh-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 63.1 kB

Release files / diskuh-0.1.5.tar.gz

Download URL diskuh-0.1.5.tar.gz
Size 34.9 kB
Tags Source
SHA-256 checksum
How to use checksums
149fa2776e9e21474401d3b1ff387a2f1d0fd3308f5bd4737b1a39e15c048fdf
BLAKE2b-256 checksum
How to use checksums
c53ad6281cfbc6a0ecdaca3c6d4a79a7fde79b492488149797a57eb9983bcf3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / diskuh-0.1.5-py3-none-any.whl

Download URL diskuh-0.1.5-py3-none-any.whl
Size 28.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
74f574a949e9dae7a347c073526f46486868df7ffa9fa798208eaaa7ac7267c5
BLAKE2b-256 checksum
How to use checksums
ed4e86c1d619fb7642cd3d5a9eda3adbc210569a57573f476863374f4f9587c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Security for diskuh 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for diskuh-0.1.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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