Noxdir
Terminal utility for visualizing file system usage.
Install / Use
/learn @crumbyte/NoxdirREADME
🧹 NoxDir
NoxDir is a high-performance, cross-platform command-line tool for visualizing and exploring your file system usage. It detects mounted drives or volumes and presents disk usage metrics through a responsive, keyboard-driven terminal UI. Designed to help you quickly locate space hogs and streamline your cleanup workflow. Supports: Windows, macOS, and Linux.

📦 Installation
🍺 Homebrew
Stable release:
brew tap crumbyte/noxdir
brew install --cask noxdir
Nightly release:
brew tap crumbyte/noxdir
brew uninstall --cask noxdir # If the stable version was installed previously
brew install --cask noxdir-nightly
Arch based Linux distros
pacman -S noxdir
NixOS / Nix
NoxDir can be installed either directly from nixpkgs or used via flake:
From nixpkgs (unstable channel):
nix-env -iA nixpkgs.noxdir
Or in your configuration.nix:
environment.systemPackages = with pkgs; [
noxdir
];
Using flake:
nix run github:crumbyte/noxdir
Or add to your flake.nix:
{
inputs.noxdir.url = "github:crumbyte/noxdir";
}
Other Linux distros
curl -s https://crumbyte.github.io/noxdir/scripts/install.sh | bash
curl -s https://crumbyte.github.io/noxdir/scripts/install.sh | bash -s -- v0.6.0
Pre-compiled Binaries
Obtain the latest optimized binary from the Releases page. The application is self-contained and requires no installation process.
Go install (Go 1.24+)
go install github.com/crumbyte/noxdir@latest
Build from source (Go 1.24+)
git clone https://github.com/crumbyte/noxdir.git
cd noxdir
make build
./bin/noxdir
🛠 Usage
Just run in the terminal:
noxdir
The interactive interface initializes immediately without configuration requirements.
🚩 Flags
NoxDir accepts flags on a startup. Here's a list of currently available CLI flags:
Usage:
noxdir [flags]
Flags:
--clear-cache Delete all cache files from the application's directory.
Example: --clear-cache (provide a flag)
--color-schema string Set the color schema configuration file. The file contains a custom
color settings for the UI elements.
-x, --exclude strings Exclude specific directories from scanning. Useful for directories
with many subdirectories but minimal disk usage (e.g., node_modules).
NOTE: The check targets any string occurrence. The excluded directory
name can be either an absolute path or only part of it. In the last case,
all directories whose name contains that string will be excluded from
scanning.
Example: --exclude="node_modules,Steam\appcache"
(first rule will exclude all existing "node_modules" directories)
-h, --help help for noxdir
-d, --no-empty-dirs Excludes all empty directories from the output. The directory is
considered empty if it or its subdirectories do not contain any files.
Even if the specific directory represents the entire tree structure of
subdirectories, without a single file, it will be completely skipped.
Default value is "false".
Example: --no-empty-dirs (provide a flag)
--no-hidden Excludes all hidden files and directories from the output. The entry is
considered hidden if its name starts with a dot, e.g., ".git".
Default value is "false".
Example: --no-hidden (provide a flag)
-r, --root string Start from a predefined root directory. Instead of selecting the target
drive and scanning all folders within, a root directory can be provided.
In this case, the scanning will be performed exclusively for the specified
directory, drastically reducing the scanning time.
Providing an invalid path results in a blank application output. In this
case, a "backspace" still can be used to return to the drives list.
Also, all trailing slash characters will be removed from the provided
path.
Example: --root="C:\Program Files (x86)"
--simple-color Use a simplified color schema without emojis and glyphs.
Example: --simple-color (provide a flag)
-l, --size-limit string Define size limits/boundaries for files that should be shown in the
scanner output. Files that do not fit in the provided limits will be
skipped.
The size limits can be defined using format "<size><unit>:<size><unit>
where "unit" value can be: KB, MB, GB, TB, PB, and "size" is a positive
numeric value. For example: "1GB:5GB".
Both values are optional. Therefore, it can also be an upper bound only
or a lower bound only. These are the valid flag values: "1GB:", ":10GB"
NOTE: providing this flag will lead to inaccurate sizes of the
directories, since the calculation process will include only files
that meet the boundaries. Also, this flag cannot be applied to the
directories but only to files within.
Example:
--size-limit="3GB:20GB"
--size-limit="3MB:"
--size-limit=":1TB"
-c, --use-cache Force the application to cache the data. With cache enabled, the full
file system scan will be performed only once. After that, the cache will be
used as long as the flag is provided.
The cache will always store the last session data. In order to update the
cache and the application's state, use the "r" (refresh) command on a
target directory.
Default value is "false".
Example: -c|--use-cache (provide a flag)
-v, --version Print the application version and exit.
🔧 Configuration File
On first launch, the application automatically generates a simple configuration file. This file allows you to define default behaviors without needing to pass flags every time.
The configuration file is created at:
- Windows:
%LOCALAPPDATA%\.noxdir\settings.json(e.g.,C:\Users\{user}\AppData\Local\.noxdir\settings.json) - Linux/macOS:
~/.noxdir/settings.json
The created configurations file already contains all available settings and has the following structure:
{
"colorSchema": "",
"exclude": null,
"noEmptyDirs": false,
"noHidden": false,
"simpleColor": false,
"useCache": false,
"bindings": {
"driveBindings": {
"levelDown": []
},
"dirBindings": {
"levelUp": null,
"levelDown": null,
"delete": null,
"topFiles": null,
"topDirs": null,
"filesOnly": null,
"dirsOnly": null,
"nameFilter": null,
"chart": null,
"diff": null,
"toggleSelectAll": null,
"toggleSelection": null
},
"explore": null,
"quit": null,
"refresh": null,
"help": null,
"diff": null,
"config": null
}
}
Values follow the same format and behavior as CLI flags. For example:
{
"exclude": "node_modules,Steam\\appcache",
"colorSchema": "custom_schema.json",
"noEmptyDirs": true,
"noHidden": false,
"simpleColor": true,
"useCache": false
}
👉 If you cannot find the configuration file you can open it right from the application using % key binding.
🗂️ Caching for Faster Scanning
Scanning can take time, especially on volumes with many small files and directories (e.g., log folders or
node_modules). To improve performance in such cases, NoxDir supports caching.
When the --use-cache (-c) flag is provided, NoxDir will attempt to use an existing cache file for the selected drive
or volume. If no cache file exists, it performs a full scan and saves the result to a cache file for future use.
If a cache file is found, the full scan is skipped by default (unless you explicitly want to see the structure delta).
Scanning is then performed on demand using the r (refresh) key, which updates the cache after the session ends.
Cache file locations:
- Windows:
%LOCALAPPDATA%\.noxdir\cache(e.g.,C:\Users\{user}\AppData\Local\.noxdir\cache) - Linux/macOS: `~/.noxd
Related Skills
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
