id = "tig" name = "Tig" homepage = "https://jonas.github.io/tig/" description = "An ncurses-based text-mode interface for git, functioning mainly as a repository browser but also able to stage changes and act as a pager." executables = ["tig"] [dotfiles] # tigrc(5): "You can permanently set an option by putting it in the `~/.tigrc` # file" and "In some environments, a user's configuration will be stored in the # alternate location `$XDG_CONFIG_HOME/tig/config`." The manual repeats it # under Configuration Files: Tig "proceeds to read the user's configuration # file (`~/.tigrc` or `$XDG_CONFIG_HOME/tig/config` by default)", overridable # with $TIGRC_USER. # # The second one is the XDG variable itself, not the `~/.config` default, so it # is written as [configHome] — which is `~/.config` on macOS too, matching what # Tig looks for there. paths = [ "~/.tigrc", "[configHome]/tig/config", ] # The manual's History Files section puts the readline history at # `~/.tig_history` or `$XDG_DATA_HOME/tig/history` — a different directory from # either path above, so there is nothing to carve out of what is listed. exclude = [] # A tigrc is `set`, `bind`, `color` and `source` commands. Nothing in it is a # credential; Tig reads no passwords of its own and defers to Git for remotes. secret = [] # No machine_lines: the file is key bindings, colour definitions and display # options, which are the reason to carry it. The one line-oriented thing that # could be machine-local is `source `, but Tig's own documentation shows # it used for relative, repository-tracked files as often as absolute ones, so # naming it would hold back more than it should. # tig parses its configuration at startup and exits with the pager; nothing # holds the file open between runs. side_effect = false [commands] format = 1 label = "Open Tig" description = "Open the text-mode Git browser in a chosen view, optionally in another repository. Revision ranges and paths are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://github.com/jonas/tig/blob/master/doc/tig.1.adoc" revision = "master 2026-10" evidence = """ tig [options] [revisions] [--] [paths] tig log [options] [revisions] [--] [paths] tig show [options] [revisions] [--] [paths] tig reflog [options] [revisions] tig blame [options] [rev] [--] path tig grep [options] [pattern] tig refs [options] tig stash [options] tig status -C :: """ [[commands.field]] id = "view" label = "View" description = "Leave empty for the default main view." type = "enum" position = 0 choices = [{ value = "log", label = "Log" }, { value = "show", label = "Show" }, { value = "reflog", label = "Reflog" }, { value = "blame", label = "Blame" }, { value = "grep", label = "Grep" }, { value = "refs", label = "Refs" }, { value = "stash", label = "Stash" }, { value = "status", label = "Status" }] sources = ["man"] [[commands.field]] id = "dir" label = "Run in directory" type = "path" path = { kind = "directory", role = "input" } option = ["-C"] sources = ["man"] [[commands.task]] id = "status" label = "Open status view" fields = ["view", "dir"] required = ["view"] set = { view = ["status"] } [[commands.group]] id = "basic" label = "Basic" fields = ["view", "dir"]