id = "gdu"
name = "gdu"
homepage = "https://github.com/dundee/gdu"
description = "A fast disk-usage analyzer with a console interface."
executables = ["gdu"]
[dotfiles]
paths = [
"~/.gdu.yaml",
"[configHome]/gdu/gdu.yaml",
]
secret = []
side_effect = false
[commands]
format = 1
label = "Analyze disk usage"
description = "Scan directories and show where the space goes, interactively or as a plain listing. Databases, exports, filters by age or type, the web UI and profiling are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/dundee/gdu#usage"
revision = "2026-10-27"
evidence = """
-L, --follow-symlinks Follow symlinks for files, i.e. show the size of the file to which symlink points to (symlinks to directories are not followed)
-i, --ignore-dirs strings Paths to ignore (separated by comma). Can be absolute or relative to current directory (default [/proc,/dev,/sys,/run])
-x, --no-cross Do not cross filesystem boundaries
-H, --no-hidden Ignore hidden directories (beginning with dot)
-n, --non-interactive Do not run in interactive mode
-a, --show-apparent-size Show apparent size
-C, --show-item-count Show number of items in directory
-s, --summarize Show only a total in non-interactive mode
-t, --top int Show only top X largest files in non-interactive mode
-d, --show-disks Show all mounted disks
--no-delete Do not allow deletions
"""
[[commands.field]]
id = "non_interactive"
label = "Plain listing (non-interactive)"
type = "boolean"
option = ["--non-interactive", "-n"]
sources = ["help"]
[[commands.field]]
id = "summarize"
label = "Only a total"
description = "Show only a total per path; implies the plain listing."
type = "boolean"
option = ["--summarize", "-s"]
sources = ["help"]
[[commands.field]]
id = "top"
label = "Top N largest files"
type = "integer"
option = ["--top", "-t"]
sources = ["help"]
[[commands.field]]
id = "no_cross"
label = "Stay on one filesystem"
type = "boolean"
option = ["--no-cross", "-x"]
sources = ["help"]
[[commands.field]]
id = "no_hidden"
label = "Skip hidden directories"
type = "boolean"
option = ["--no-hidden", "-H"]
sources = ["help"]
[[commands.field]]
id = "apparent_size"
label = "Apparent size"
type = "boolean"
option = ["--show-apparent-size", "-a"]
sources = ["help"]
[[commands.field]]
id = "item_count"
label = "Show item counts"
type = "boolean"
option = ["--show-item-count", "-C"]
sources = ["help"]
[[commands.field]]
id = "ignore_dirs"
label = "Ignore paths"
description = "Comma-separated paths to skip."
type = "string"
option = ["--ignore-dirs", "-i"]
sources = ["help"]
[[commands.field]]
id = "no_delete"
label = "Disallow deletions"
type = "boolean"
option = ["--no-delete"]
sources = ["help"]
[[commands.field]]
id = "show_disks"
label = "List mounted disks"
type = "boolean"
option = ["--show-disks", "-d"]
sources = ["help"]
[[commands.field]]
id = "paths"
label = "Directories to scan"
description = "Leave empty to scan the current directory."
type = "path"
position = 0
multiple = true
path = { kind = "directory", role = "input" }
sources = ["help"]
[[commands.task]]
id = "browse"
label = "Browse a directory"
fields = ["paths", "no_cross", "no_hidden", "no_delete"]
required = []
[[commands.task]]
id = "biggest"
label = "Top 20 largest files"
set = { non_interactive = [true], top = [20] }
lock = ["non_interactive"]
fields = ["paths", "top", "no_cross"]
required = []
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["paths", "non_interactive", "summarize", "top", "no_cross"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["no_hidden", "apparent_size", "item_count", "ignore_dirs", "no_delete", "show_disks"]