🧹 diskuse
A fast, read-only disk usage browser for macOS and Linux,
inspired by OmniDiskSweeper
⚡️ Quickstart
-
Run diskuse without installing it using
uvx diskuse -
Or browse a specific folder with
uvx diskuse ~ -
Press
?to see all the keys
To install it instead, use uv tool install diskuse, pipx install diskuse or cargo install diskuse.
Prebuilt binaries for macOS and Linux are also on the releases page.
📋 Features
- As fast as dua and dumac, and faster than dust, pdu, gdu and ncdu (see benchmarks)
- Read-only, it never deletes anything. Reveal an item in Finder with
rand delete it yourself - Three columns like OmniDiskSweeper, with sizes filling in while it scans
- Updates live while open, with a column showing what grew or shrank
- Labels for caches and other large folders, eg.
node_modules,target,.venv, Xcode, Docker - Pick items with
spaceto come back to later - Works on macOS and Linux
⌨️ Keys
| Key | Action | Key | Action |
|---|---|---|---|
arrows, hjkl |
move | space |
pick an item |
r |
reveal in Finder | p |
list picked items |
o |
open | c |
sort by change |
/ |
filter | s / S |
rescan folder / everything |
t |
largest files | d |
folders that could not be read |
? |
help | q |
quit |
💻 Command Line
diskuse scan ~/src # print sizes, largest first
diskuse scan ~/src --top 10 # also list the 10 largest files
diskuse scan ~/src --json # json output for scripts
diskuse show ~/src # print the last scan again
Sizes are allocated bytes like du -x. Scans stay on one disk, never follow symlinks, and count hard links once.
🔐 Full Disk Access (macOS)
macOS hides some folders like Mail, Messages and Safari from apps without Full Disk Access.
diskuse checks this before your first scan and tells you which terminal app needs it.
To enable it, turn on your terminal in System Settings > Privacy & Security > Full Disk Access, then restart the terminal.
diskuse never asks for sudo.
🏁 Benchmarks
Warm cache on an Apple M4 (10 cores, 24 GB, macOS 27), 3 timed runs each, so differences under about 6% are noise.
Every tool's total matched du. See bench/README.md to reproduce.
S1: the dumac README tree, 4,095 folders and 409,500 files
| tool | kind | time | memory |
|---|---|---|---|
| diskuse | tree | 0.342 s | 7.7 MiB |
| dua | tree | 0.350 s | 9.2 MiB |
| dumac | totals only | 0.446 s | - |
Homebrew: a homebrew prefix, 42,700 folders and 12 GiB. "Best" is each tool at its fastest thread count.
| tool | kind | default threads | best | memory |
|---|---|---|---|---|
| diskuse | tree | 0.610 s | 0.610 s | 13.8 MiB |
| dumac | totals only | 0.636 s | 0.636 s | 31.8 MiB |
| dua | tree | 0.722 s | 0.647 s | 12.7 MiB |
| diskus | totals only | 0.997 s | 0.950 s | 20.2 MiB |
| dust | tree | 1.086 s | 1.086 s | 156.7 MiB |
| pdu | tree | 1.087 s | 0.989 s | 36.5 MiB |
| gdu | tree | 1.844 s | 1.177 s | 41.9 MiB |
| ncdu | totals only (-o -) |
2.709 s | 1.030 s | 2.3 MiB |
| du | totals only | 2.703 s | 2.703 s | 5.5 MiB |
| DiskScour | tree | 3.581 s | 3.581 s | 248.8 MiB |
Versions: dua 2.45.1, gdu 5.37.0, dust 1.2.6, pdu 0.24.0, ncdu 2.9.2, DiskScour 0.5.0, diskus 0.9.0, dumac 1ffbe3c3, du (macOS).
🛠 Development
Run just check to format, lint and test, and just demo to re-record the demo above. Benchmarks are run with just bench, see bench/README.md.
Scans are cached in ~/Library/Caches/diskuse (or ~/.cache/diskuse on Linux), which can be changed with DISKUSE_CACHE_DIR.
This is the only place diskuse ever writes to.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
🤖 AI Use
diskuse was written with the help of an AI coding assistant (Claude Code). I designed the features, made the decisions, and reviewed and tested every change. The benchmarks are real runs on real machines, see bench/README.md.
Metadata
Release files for diskuse 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| diskuse-0.1.1.tar.gz | 127.0 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| diskuse-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| diskuse-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| diskuse-0.1.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| diskuse-0.1.1-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 3.5 MB
Release files / diskuse-0.1.1.tar.gz
| Download URL | diskuse-0.1.1.tar.gz |
|---|---|
| Size | 127.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a58ada73b2d1058029c18bab7d91cb9a38257a387323914f1ee6217b8f85de56
|
|
BLAKE2b-256 checksum How to use checksums |
0c3e8eeace2bba4e32f008ece1a0c96f573513294f04906aebc5eaac49cfe859
|
| 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 Oct 3, 2026.
Transparency logRelease files / diskuse-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | diskuse-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 874.3 kB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
4f981fd1b2f9b55b2db3b21765e8cce8b867df68a2d4da5a4e5e869081664b84
|
|
BLAKE2b-256 checksum How to use checksums |
ffd6b73cc46935c1f8b269a710d693979553c3ab92a8202c9b659e5e8bdbfd7e
|
| 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 Oct 3, 2026.
Transparency logRelease files / diskuse-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | diskuse-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 833.3 kB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
225fb26e2ce3ac3bfaba35352e0eef679d2b252d4252b02a880dd2c51e564e59
|
|
BLAKE2b-256 checksum How to use checksums |
0789cc9200e0f6fa5cd8d65a4f9c5aa7605542b20dcfb286b1a6632271613c65
|
| 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 Oct 3, 2026.
Transparency logRelease files / diskuse-0.1.1-py3-none-macosx_11_0_arm64.whl
| Download URL | diskuse-0.1.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 827.6 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0215d34407e0cb521e0b6069391f2feec15a57a49477fe8c3ab0d38c71efe4ff
|
|
BLAKE2b-256 checksum How to use checksums |
04825a556d72684c8f79bb22d073228484ced204479b0876563a30dd80e5b273
|
| 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 Oct 3, 2026.
Transparency logRelease files / diskuse-0.1.1-py3-none-macosx_10_12_x86_64.whl
| Download URL | diskuse-0.1.1-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 865.7 kB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
6ebeed7952b1d8bc5d7f27b9086bf5661b4d7e6b788d6f98c04b8675c93f9681
|
|
BLAKE2b-256 checksum How to use checksums |
23e196dced0fc5bd0ed8c6dd8a7b3e707044c516e306830d54a061d8a72e7371
|
| 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 Oct 3, 2026.
Transparency log