{
    "Informative": [
        {
            "short": "h",
            "long": "help",
            "desc": "Show this help message or help for a specific command",
            "arg": {
                "type": "command",
                "optional": true
            }
        },
        {
            "short": "v",
            "long": "version",
            "desc": "Show the full Fastfetch version"
        },
        {
            "long": "version-raw",
            "desc": "Show the raw version string (major.minor.patch)"
        },
        {
            "long": "list-config-paths",
            "desc": "List search paths for config files"
        },
        {
            "long": "list-data-paths",
            "desc": "List search paths for presets and logos"
        },
        {
            "long": "list-logos",
            "desc": "List available logos"
        },
        {
            "long": "list-modules",
            "desc": "List available modules"
        },
        {
            "long": "list-presets",
            "desc": "List available presets",
            "remark": "Presets can be loaded with \"--config <preset-name>\""
        },
        {
            "long": "list-features",
            "desc": "List the supported features that fastfetch was compiled with",
            "remark": "Mainly for development"
        },
        {
            "long": "print-logos",
            "desc": "Show available logos"
        },
        {
            "long": "print-structure",
            "desc": "Show the default structure"
        },
        {
            "long": "format",
            "desc": "Set the output format",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Default format",
                    "json": "JSON format"
                },
                "default": "default"
            }
        },
        {
            "long": "json",
            "short": "j",
            "arg": {
                "type": "bool",
                "default": false,
                "optional": true
            },
            "desc": "Enable or disable JSON output",
            "remark": "Shortcut for `--format json`"
        },
        {
            "long": "dynamic-interval",
            "desc": "Keep Fastfetch running and refresh the output every <num> milliseconds",
            "remark": "Set to 0 (default) to disable this behavior; does not work with --json",
            "arg": {
                "type": "num",
                "default": 0
            }
        },
        {
            "long": "watch",
            "short": "w",
            "desc": "Alias of dynamic-interval, but the value is in seconds instead of milliseconds. If no value is provided, it defaults to 1 second",
            "arg": {
                "type": "num",
                "optional": true,
                "default": 1
            }
        }
    ],
    "Config": [
        {
            "short": "c",
            "long": "config",
            "desc": "Specify the config file or preset to load",
            "remark": "The file is searched in the order shown by \"fastfetch --list-config-paths\". Use \"-\" to read config from stdin, or \"none\" to disable further config loading. See also https://github.com/fastfetch-cli/fastfetch/wiki/Configuration for details",
            "arg": {
                "type": "config"
            }
        },
        {
            "long": "gen-config",
            "desc": "Interactively generate a config file at the specified path",
            "remark": "Opens an interactive configuration UI when run in a terminal. Falls back to non-interactive generation when env-var `$NO_COLOR` is set or stdin/stdout is not a TTY. Defaults to \"~/.config/fastfetch/config.jsonc\". Prints the generated config if <path> is \"-\"",
            "arg": {
                "type": "path",
                "optional": true
            }
        }
    ],
    "General": [
        {
            "long": "thread",
            "desc": "Use separate threads for HTTP requests",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": true
            }
        },
        {
            "long": "wmi-timeout",
            "desc": "Set the timeout (ms) for WMI queries",
            "remark": "Windows only",
            "arg": {
                "type": "num",
                "default": 5000
            }
        },
        {
            "long": "processing-timeout",
            "desc": "Set the timeout (ms) when waiting for child processes",
            "arg": {
                "type": "num",
                "default": 5000
            }
        },
        {
            "long": "ds-force-drm",
            "desc": "Specify whether display detection should use DRM only",
            "remark": [
                "Use this option if you encounter problems with other detection methods.",
                "Linux only"
            ],
            "arg": {
                "type": "enum",
                "optional": true,
                "default": "false",
                "enum": {
                    "true": "Try `libdrm` first, then `sysfs` if libdrm fails",
                    "sysfs-only": "Use `/sys/class/drm` only",
                    "false": "Try `wayland`, then `x11`, then `drm`"
                }
            }
        },
        {
            "long": "detect-version",
            "desc": "Specify whether to detect and display versions for terminal, shell, editor, and others",
            "remark": "Mainly for benchmarking",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": true
            }
        }
    ],
    "Logo": [
        {
            "short": "l",
            "long": "logo",
            "desc": "Set the logo source. Use \"none\" to disable logo output",
            "remark": "Use either a built-in logo name or a path to an image file. See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options",
            "arg": {
                "type": "logo"
            }
        },
        {
            "long": "logo-type",
            "desc": "Set the type of logo specified by \"--logo\"",
            "remark": "See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options",
            "arg": {
                "type": "enum",
                "enum": {
                    "auto": "If a value is provided, try built-in first, then file. Otherwise auto-detect the logo",
                    "builtin": "Built-in ASCII art",
                    "small": "Built-in ASCII art, small version",
                    "file": "Text file, printed with color code replacement",
                    "file-raw": "Text file, printed as is",
                    "data": "Text data, printed with color code replacement",
                    "data-raw": "Text data, printed as is",
                    "sixel": "Image file, rendered as sixel",
                    "kitty": "Image file, rendered using the Kitty graphics protocol",
                    "kitty-direct": "Image file, tells the terminal emulator to read image data from the specified file",
                    "kitty-icat": "Image file, displayed using `kitten icat`. Requires the `kitten` binary",
                    "iterm": "Image file, rendered using the iTerm graphics protocol",
                    "chafa": "Image file, printed as ASCII art using libchafa",
                    "raw": "Image file, printed as raw binary string",
                    "none": "Disable logo printing"
                }
            }
        },
        {
            "long": "logo-width",
            "desc": "Set the width of the logo (in characters) if it is an image",
            "remark": "Required for iTerm image protocol",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-height",
            "desc": "Set the height of the logo (in characters) if it is an image",
            "remark": "Required for iTerm image protocol",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-preserve-aspect-ratio",
            "desc": "Specify whether the logo should fill the specified width and height as much as possible without stretching",
            "remark": "Supported by iTerm image protocol only",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "logo-color-[1-9]",
            "desc": "Override a color in the logo",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color"
            },
            "pseudo": true
        },
        {
            "long": "logo-padding",
            "desc": "Set the padding on the left and right sides of the logo",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-padding-left",
            "desc": "Set the padding on the left side of the logo",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-padding-right",
            "desc": "Set the padding on the right side of the logo",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-padding-top",
            "desc": "Set the padding at the top of the logo",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "logo-print-remaining",
            "desc": "Specify whether to print remaining logo lines when the logo is taller than the module list",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": true
            }
        },
        {
            "long": "logo-position",
            "desc": "Set the display position of the logo",
            "arg": {
                "type": "enum",
                "enum": {
                    "left": "Left",
                    "top": "Top",
                    "right": "Right"
                }
            }
        },
        {
            "long": "logo-recache",
            "desc": "If true, regenerate the image logo cache",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "file",
            "desc": "Short for --logo-type file --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "file-raw",
            "desc": "Short for --logo-type file-raw --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "data",
            "desc": "Short for --logo-type data --logo <data>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "data"
            }
        },
        {
            "long": "data-raw",
            "desc": "Short for --logo-type data-raw --logo <data>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "data"
            }
        },
        {
            "long": "raw",
            "desc": "Short for --logo-type raw --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "sixel",
            "desc": "Short for --logo-type sixel --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "kitty",
            "desc": "Short for --logo-type kitty --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "kitty-direct",
            "desc": "Short for --logo-type kitty-direct --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "kitty-icat",
            "desc": "Short for --logo-type kitty-icat --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "iterm",
            "desc": "Short for --logo-type iterm --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "chafa",
            "desc": "Short for --logo-type chafa --logo <path>",
            "remark": "See \"--help logo-type\" for more info",
            "arg": {
                "type": "path"
            }
        },
        {
            "long": "chafa-fg-only",
            "desc": "Produce character-cell output using foreground colors only",
            "remark": "See the Chafa documentation for details",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "chafa-symbols",
            "desc": "Specify character symbols to employ in final output",
            "remark": "See the Chafa documentation for details",
            "arg": {
                "type": "str"
            }
        },
        {
            "long": "chafa-canvas-mode",
            "desc": "Determine how colors are used in the output",
            "remark": "This value maps to the integer value of enum ChafaCanvasMode. See the Chafa documentation for details",
            "arg": {
                "type": "enum",
                "enum": {
                    "TRUECOLOR": "Truecolor",
                    "INDEXED_256": "256 colors",
                    "INDEXED_240": "256 colors, but avoid using the lower 16 whose values vary between terminal environments",
                    "INDEXED_16": "16 colors using the aixterm ANSI extension",
                    "FGBG_BGFG": "Default foreground and background colors, plus inversion",
                    "FGBG": "Default foreground and background colors. No ANSI codes will be used",
                    "INDEXED_8": "8 colors, compatible with original ANSI X3.64",
                    "INDEXED_16_8": "16 FG colors (8 of which enabled with bold/bright) and 8 BG colors"
                }
            }
        },
        {
            "long": "chafa-color-space",
            "desc": "Set the color space used for quantization",
            "remark": "This value maps to the integer value of enum ChafaColorSpace. See the Chafa documentation for details",
            "arg": {
                "type": "enum",
                "enum": {
                    "RGB": "RGB color space. Fast but imprecise",
                    "DIN99D": "DIN99d color space. Slower, but good perceptual color precision"
                }
            }
        },
        {
            "long": "chafa-dither-mode",
            "desc": "Set the output dithering mode (no effect with 24-bit color)",
            "remark": "This value maps to the integer value of enum ChafaDitherMode. See the Chafa documentation for details",
            "arg": {
                "type": "enum",
                "enum": {
                    "NONE": "No dithering",
                    "ORDERED": "Ordered dithering (Bayer or similar)",
                    "DIFFUSION": "Error diffusion dithering (Floyd-Steinberg or similar)"
                }
            }
        }
    ],
    "Display": [
        {
            "short": "s",
            "long": "structure",
            "desc": "Set the structure of the fetch",
            "remark": "Must be a colon-separated list of module keys. Use \"fastfetch --list-modules\" to see available options",
            "arg": {
                "type": "structure",
                "default": "\"fastfetch --print-structure\""
            }
        },
        {
            "long": "structure-disabled",
            "desc": "Disable specific modules in the structure",
            "remark": "Must be a colon-separated list of keys",
            "arg": {
                "type": "structure"
            }
        },
        {
            "long": "stat",
            "desc": "Show execution time (ms) for individual modules",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "pipe",
            "desc": "Disable colors",
            "remark": "Auto-detected based on isatty(1) by default",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "color",
            "desc": "Set the color of both keys and title",
            "remark": [
                "Shortcut for \"--color-keys <color>\" and \"--color-title <color>\"",
                "For color syntax, see <https://github.com/fastfetch-cli/fastfetch/wiki/Color-Format-Specification>"
            ],
            "arg": {
                "type": "color"
            }
        },
        {
            "long": "color-keys",
            "desc": "Set the color of the keys",
            "remark": "Doesn't affect Title, Separator, and Colors modules. See `-h color` for the list of available colors",
            "arg": {
                "type": "color"
            }
        },
        {
            "long": "color-title",
            "desc": "Set the color of the title",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color"
            }
        },
        {
            "long": "color-output",
            "desc": "Set the color of module output",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color"
            }
        },
        {
            "long": "color-separator",
            "desc": "Set the color of the key-value separator",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color"
            }
        },
        {
            "long": "duration-abbreviation",
            "desc": "Specify whether to abbreviate duration values",
            "remark": "If true, output is shown as \"1h 2m\" instead of \"1 hour, 2 mins\"",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "duration-space-before-unit",
            "desc": "Specify whether to put a space before the unit in duration values",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the default behavior of the module",
                    "always": "Always put a space before the unit",
                    "never": "Never put a space before the unit"
                }
            }
        },
        {
            "long": "key-width",
            "desc": "Align the width of keys to <num> characters",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "key-padding-left",
            "desc": "Set the left padding of keys to <num> characters",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "key-type",
            "desc": "Specify whether to show an icon before string keys",
            "arg": {
                "type": "enum",
                "enum": {
                    "none": "Disable keys",
                    "string": "Show string",
                    "icon": "Show icon (requires a recent Nerd Font)",
                    "both": "Show both icon and string (alias of `both-1`)",
                    "both-0": "Show both icon and string with no spaces between them",
                    "both-1": "Show both icon and string with a space between them",
                    "both-2": "Show both icon and string with 2 spaces between them",
                    "both-3": "Show both icon and string with 3 spaces between them",
                    "both-4": "Show both icon and string with 4 spaces between them"
                },
                "default": "string"
            }
        },
        {
            "long": "bright-color",
            "desc": "Specify whether keys, title, and ASCII logo should be printed in bright color",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": true
            }
        },
        {
            "long": "separator",
            "desc": "Set the separator between key and value",
            "arg": {
                "type": "str",
                "default": ": "
            }
        },
        {
            "long": "show-errors",
            "desc": "Print errors when they occur",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "disable-linewrap",
            "desc": "Specify whether to disable line wrap during execution",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": true
            }
        },
        {
            "long": "hide-cursor",
            "desc": "Specify whether to hide the cursor during execution",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "percent-type",
            "desc": "Set the percentage output style",
            "remark": [
                "1 for percentage number",
                "2 for multi-color bar",
                "3 for both",
                "6 for bar only",
                "9 for colored number",
                "10 for monochrome bar"
            ],
            "arg": {
                "type": "num",
                "default": 9
            }
        },
        {
            "long": "percent-ndigits",
            "desc": "Set the number of decimal places to use when formatting percentages",
            "arg": {
                "type": "num",
                "default": 0
            }
        },
        {
            "long": "percent-color-green",
            "desc": "Set color used for the green state of percentage bars and numbers",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "green"
            }
        },
        {
            "long": "percent-color-yellow",
            "desc": "Set color used for the yellow state of percentage bars and numbers",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "light_yellow"
            }
        },
        {
            "long": "percent-color-red",
            "desc": "Set color used for the red state of percentage bars and numbers",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "light_red"
            }
        },
        {
            "long": "percent-space-before-unit",
            "desc": "Specify whether to put a space before the percentage symbol",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the default behavior of the module",
                    "always": "Always put a space before the unit",
                    "never": "Never put a space before the unit"
                }
            }
        },
        {
            "long": "percent-width",
            "desc": "Specify the width of the percentage number, in characters",
            "remark": "This option affects only percentage numbers, not bars",
            "arg": {
                "type": "num",
                "default": 0
            }
        },
        {
            "long": "bar-char-elapsed",
            "desc": "Set the character used for the elapsed part of percentage bars",
            "arg": {
                "type": "str",
                "default": "\u25a0"
            }
        },
        {
            "long": "bar-char-total",
            "desc": "Set the character used for the total part of percentage bars",
            "arg": {
                "type": "str",
                "default": "-"
            }
        },
        {
            "long": "bar-border-left",
            "desc": "Set the string to use at the left border of percentage bars",
            "arg": {
                "type": "string",
                "default": "[ "
            }
        },
        {
            "long": "bar-border-right",
            "desc": "Set the string to use at the right border of percentage bars",
            "arg": {
                "type": "string",
                "default": " ]"
            }
        },
        {
            "long": "bar-border-left-elapsed",
            "desc": "If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content",
            "arg": {
                "type": "string",
                "default": ""
            }
        },
        {
            "long": "bar-border-right-elapsed",
            "desc": "If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content",
            "arg": {
                "type": "string",
                "default": ""
            }
        },
        {
            "long": "bar-color-elapsed",
            "desc": "Set the color used for the elapsed part of percentage bars",
            "remark": "By default, this is auto-selected by percent-color-{green,yellow,red}",
            "arg": {
                "type": "color",
                "default": "<auto>"
            }
        },
        {
            "long": "bar-color-total",
            "desc": "Set the color used for the total part of percentage bars",
            "arg": {
                "type": "color",
                "default": "light_white"
            }
        },
        {
            "long": "bar-color-border",
            "desc": "Set the color used for percentage bar borders",
            "arg": {
                "type": "color",
                "default": "light_white"
            }
        },
        {
            "long": "bar-width",
            "desc": "Set the width of percentage bars in characters",
            "arg": {
                "type": "num",
                "default": 10
            }
        },
        {
            "long": "no-buffer",
            "desc": "Specify whether stdout buffering should be disabled",
            "arg": {
                "type": "bool",
                "optional": true,
                "default": false
            }
        },
        {
            "long": "size-ndigits",
            "desc": "Set the number of decimal places to use when formatting sizes",
            "arg": {
                "type": "num"
            }
        },
        {
            "long": "size-binary-prefix",
            "desc": "Set the binary prefix to use when formatting sizes",
            "arg": {
                "type": "enum",
                "enum": {
                    "IEC": "1024 Bytes = 1 KiB, 1024 KiB = 1 MiB, ...",
                    "SI": "1000 Bytes = 1 kB, 1000 kB = 1 MB, ...",
                    "JEDEC": "1024 Bytes = 1 KB, 1024 KB = 1 MB, ..."
                },
                "default": "IEC"
            }
        },
        {
            "long": "size-max-prefix",
            "desc": "Set the largest binary prefix to use when formatting sizes",
            "arg": {
                "type": "enum",
                "enum": {
                    "B": "Bytes",
                    "kB": "KiB",
                    "MB": "MiB",
                    "GB": "GiB",
                    "TB": "TiB",
                    "PB": "PiB",
                    "EB": "EiB",
                    "ZB": "ZiB",
                    "YB": "YiB"
                },
                "default": "YB"
            }
        },
        {
            "long": "size-space-before-unit",
            "desc": "Specify whether to put a space before the unit",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the default behavior of the module",
                    "always": "Always put a space before the unit",
                    "never": "Never put a space before the unit"
                }
            }
        },
        {
            "long": "freq-ndigits",
            "desc": "Set the number of decimal places to use when printing CPU/GPU frequency in GHz",
            "arg": {
                "type": "num",
                "default": 2
            }
        },
        {
            "long": "freq-space-before-unit",
            "desc": "Specify whether to put a space before the unit",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the default behavior of the module",
                    "always": "Always put a space before the unit",
                    "never": "Never put a space before the unit"
                }
            }
        },
        {
            "long": "fraction-ndigits",
            "desc": "Set the number of decimal places to use when printing fractional values",
            "remark": "If negative, the number of digits will be automatically determined based on the value",
            "arg": {
                "type": "num",
                "default": -1
            }
        },
        {
            "long": "fraction-trailing-zeros",
            "desc": "Set when to keep trailing zeros",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the built-in behavior",
                    "always": "Always keep trailing zeros",
                    "never": "Never keep trailing zeros"
                }
            }
        },
        {
            "long": "temp-unit",
            "desc": "Set the temperature unit",
            "arg": {
                "type": "enum",
                "enum": {
                    "D": "Default",
                    "C": "Celsius",
                    "F": "Fahrenheit",
                    "K": "Kelvin"
                },
                "default": "D"
            }
        },
        {
            "long": "temp-ndigits",
            "desc": "Set the number of decimal places to use when printing temperatures",
            "arg": {
                "type": "num",
                "default": 2
            }
        },
        {
            "long": "temp-color-green",
            "desc": "Set color used for the green state of temperature values",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "green"
            }
        },
        {
            "long": "temp-color-yellow",
            "desc": "Set color used for the yellow state of temperature values",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "light_yellow"
            }
        },
        {
            "long": "temp-color-red",
            "desc": "Set color used for the red state of temperature values",
            "remark": "See `-h color` for the list of available colors",
            "arg": {
                "type": "color",
                "default": "light_red"
            }
        },
        {
            "long": "temp-space-before-unit",
            "desc": "Specify whether to put a space before the unit",
            "arg": {
                "type": "enum",
                "enum": {
                    "default": "Use the default behavior of the module",
                    "always": "Always put a space before the unit",
                    "never": "Never put a space before the unit"
                }
            }
        }
    ]
}
