id = "ungit"
name = "ungit"
homepage = "https://github.com/FredrikNoren/ungit"
description = "The easiest way to use git. On any platform. Anywhere."
executables = ["ungit"]
[dotfiles]
paths = ["~/.ungitrc"]
exclude = []
secret = []
[commands]
format = 1
label = "Start ungit"
description = "Launch the ungit server with common overrides of ~/.ungitrc. Authentication, users and the many other config keys are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "config"
kind = "help"
url = "https://github.com/FredrikNoren/ungit/blob/HEAD/source/config.js"
revision = "2026-10-27"
evidence = """
You can also override configuration variables at launch by specifying them as command line arguments; `ungit --port=8080`. To disable boolean features use --no: `ungit --no-autoFetch`.
$0 --port=8888 Run Ungit on port 8888
.describe('port', 'The port ungit is exposed on')
.describe('rootPath', 'The root path ungit will be accessible from')
.describe('logDirectory', 'Directory to output log files')
.describe('b', 'Launch a browser window with ungit when the ungit server is started. --no-b or --no-launchBrowser disables this')
// Instead of launching ungit with the current folder force a different path to be used. Can be set to null to force the home screen.
forcedLaunchPath: undefined,
// Automatically fetch from remote when entering a repository using ungit
autoFetch: true,
// a string of ip to bind to, default is `127.0.0.1`
ungitBindIp: '127.0.0.1',
// Assigns the log level. Possible values, in order from quietest to loudest, are "none", "error", "warn", "info", "verbose", "debug", and "silly"
--port --launchBrowser --no-launchBrowser --autoFetch --no-autoFetch --ungitBindIp --forcedLaunchPath --logLevel --rootPath
"""
[[commands.field]]
id = "port"
label = "Port"
description = "Default 8448."
type = "integer"
option = ["--port"]
sources = ["config"]
[[commands.field]]
id = "bind_ip"
label = "Bind address"
description = "Default 127.0.0.1."
type = "string"
option = ["--ungitBindIp"]
sources = ["config"]
[[commands.field]]
id = "launch_browser"
label = "Open browser on start"
type = "boolean"
option = ["--launchBrowser"]
false_option = "--no-launchBrowser"
sources = ["config"]
[[commands.field]]
id = "auto_fetch"
label = "Auto-fetch from remote"
type = "boolean"
option = ["--autoFetch"]
false_option = "--no-autoFetch"
sources = ["config"]
[[commands.field]]
id = "forced_launch_path"
label = "Repository to open"
description = "Open this folder instead of the current one."
type = "path"
option = ["--forcedLaunchPath"]
path = { kind = "directory", role = "input" }
sources = ["config"]
[[commands.field]]
id = "root_path"
label = "URL root path"
type = "string"
option = ["--rootPath"]
sources = ["config"]
[[commands.field]]
id = "log_level"
label = "Log level"
type = "enum"
option = ["--logLevel"]
choices = [{ value = "none", label = "None" }, { value = "error", label = "Error" }, { value = "warn", label = "Warn" }, { value = "info", label = "Info" }, { value = "verbose", label = "Verbose" }, { value = "debug", label = "Debug" }, { value = "silly", label = "Silly" }]
sources = ["config"]
[[commands.task]]
id = "serve_port"
label = "Serve on a port"
fields = ["port", "launch_browser"]
required = ["port"]
[[commands.task]]
id = "open_repo"
label = "Open a repository"
fields = ["forced_launch_path"]
required = ["forced_launch_path"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["port", "forced_launch_path", "launch_browser", "auto_fetch"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["bind_ip", "root_path", "log_level"]