id = "gitui"
name = "GitUI"
homepage = "https://github.com/gitui-org/gitui"
description = "Blazing fast terminal-ui for git written in rust."
executables = ["gitui"]
[dotfiles]
paths = [
"~/.config/gitui/key_bindings.ron",
"~/.config/gitui/key_symbols.ron",
"~/.config/gitui/theme.ron",
"[configHome]/gitui/key_bindings.ron",
"[configHome]/gitui/key_symbols.ron",
"[configHome]/gitui/theme.ron",
"%APPDATA%/gitui/key_bindings.ron",
"%APPDATA%/gitui/key_symbols.ron",
"%APPDATA%/gitui/theme.ron",
]
secret = []
side_effect = false
[commands]
format = 1
label = "Open GitUI"
description = "Open the GitUI terminal interface for a repository, with optional theme, keybinding and logging overrides."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "args"
kind = "help"
url = "https://github.com/gitui-org/gitui/blob/master/src/args.rs"
revision = "master 2026-10-27"
evidence = """
-k, --key-bindings Use a custom keybindings file
-s, --key-symbols Use a custom symbols file
-t, --theme Set color theme filename loaded from config directory
-l, --logging Store logging output into a file (in the cache directory by default)
--logfile Store logging output into the specified file (implies --logging)
--watcher Use notify-based file system watcher instead of tick-based update.
--bugreport Generate a bug report
-f, --file Select the file in the file tab
-d, --directory Set the git directory
-w, --workdir Set the working directory
"""
[[commands.field]]
id = "workdir"
label = "Working directory"
type = "path"
option = ["--workdir", "-w"]
path = { kind = "directory", role = "input", must_exist = true }
sources = ["args"]
[[commands.field]]
id = "directory"
label = "Git directory"
type = "path"
option = ["--directory", "-d"]
path = { kind = "directory", role = "input", must_exist = true }
sources = ["args"]
[[commands.field]]
id = "theme"
label = "Theme file"
description = "Filename loaded from the config directory."
type = "string"
option = ["--theme", "-t"]
sources = ["args"]
[[commands.field]]
id = "key_bindings"
label = "Keybindings file"
type = "path"
option = ["--key-bindings", "-k"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["args"]
[[commands.field]]
id = "key_symbols"
label = "Symbols file"
type = "path"
option = ["--key-symbols", "-s"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["args"]
[[commands.field]]
id = "file"
label = "Select file"
description = "File to select in the file tab."
type = "string"
option = ["--file", "-f"]
sources = ["args"]
[[commands.field]]
id = "logging"
label = "Write log file"
type = "boolean"
option = ["--logging", "-l"]
sources = ["args"]
[[commands.field]]
id = "logfile"
label = "Log file path"
type = "path"
option = ["--logfile"]
path = { kind = "file", role = "output", must_exist = false }
effect = "overwrite"
sources = ["args"]
[[commands.field]]
id = "watcher"
label = "File system watcher"
type = "boolean"
option = ["--watcher"]
sources = ["args"]
[[commands.field]]
id = "bugreport"
label = "Generate bug report"
type = "boolean"
option = ["--bugreport"]
sources = ["args"]
[[commands.task]]
id = "open"
label = "Open a repository"
fields = ["workdir", "theme", "watcher"]
required = []
[[commands.task]]
id = "bugreport"
label = "Bug report"
fields = ["bugreport"]
required = ["bugreport"]
set = { bugreport = [true] }
lock = ["bugreport"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["workdir", "directory", "theme", "file", "watcher", "bugreport"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["key_bindings", "key_symbols", "logging", "logfile"]