id = "gonzo"
name = "Gonzo"
homepage = "https://github.com/control-theory/gonzo"
description = "The Go based TUI for log analysis."
executables = ["gonzo"]
[dotfiles]
paths = ["~/.config/gonzo/config.yml"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Analyze logs"
description = "Open the Gonzo log-analysis TUI on files, optionally following them, or on Kubernetes pods. Piped stdin, OTLP receiver and custom format files are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "readme"
kind = "help"
url = "https://raw.githubusercontent.com/control-theory/gonzo/HEAD/README.md"
revision = "2026-10-27"
evidence = """
-f, --file stringArray Files or file globs to read logs from (can specify multiple)
--follow Follow log files like 'tail -f' (watch for new lines in real-time)
--format string Log format to use (auto-detect if not specified). Can be: otlp, json, text, or a custom format name
-u, --update-interval duration Dashboard update interval (default: 1s)
-b, --log-buffer int Maximum log entries to keep (default: 1000)
--ai-provider string AI provider to use: 'openai' (default), 'claude-code'
--ai-model string AI model for analysis (auto-selects best available if not specified)
-s, --skin string Color scheme/skin to use (default, or name of a skin file)
--web-port int Port for the Dstl8 Lite web dashboard (default: 5718)
--web-disabled Disable the web dashboard
--k8s-enabled=true Enable Kubernetes log streaming mode
--k8s-namespaces stringArray Kubernetes namespace(s) to watch (can specify multiple, default: all)
--k8s-selector string Kubernetes label selector for filtering pods
"""
[[commands.field]]
id = "files"
label = "Log files or globs"
type = "string"
option = ["--file", "-f"]
multiple = true
sources = ["readme"]
[[commands.field]]
id = "follow"
label = "Follow like tail -f"
type = "boolean"
option = ["--follow"]
sources = ["readme"]
[[commands.field]]
id = "format"
label = "Log format"
description = "Auto-detected when unset."
type = "string"
option = ["--format"]
suggestions = [{ value = "otlp", label = "OTLP" }, { value = "json", label = "JSON" }, { value = "text", label = "Text" }]
sources = ["readme"]
[[commands.field]]
id = "log_buffer"
label = "Max log entries"
type = "integer"
option = ["--log-buffer", "-b"]
sources = ["readme"]
[[commands.field]]
id = "ai_provider"
label = "AI provider"
type = "enum"
option = ["--ai-provider"]
choices = [{ value = "openai", label = "OpenAI" }, { value = "claude-code", label = "Claude Code" }]
sources = ["readme"]
[[commands.field]]
id = "ai_model"
label = "AI model"
type = "string"
option = ["--ai-model"]
sources = ["readme"]
[[commands.field]]
id = "skin"
label = "Skin"
type = "string"
option = ["--skin", "-s"]
sources = ["readme"]
[[commands.field]]
id = "web_disabled"
label = "Disable web dashboard"
type = "boolean"
option = ["--web-disabled"]
sources = ["readme"]
[[commands.field]]
id = "k8s_enabled"
label = "Stream Kubernetes logs"
type = "boolean"
option = ["--k8s-enabled"]
sources = ["readme"]
[[commands.field]]
id = "k8s_namespaces"
label = "Kubernetes namespaces"
type = "string"
option = ["--k8s-namespaces"]
multiple = true
sources = ["readme"]
[[commands.field]]
id = "k8s_selector"
label = "Pod label selector"
type = "string"
option = ["--k8s-selector"]
sources = ["readme"]
[[commands.task]]
id = "follow_files"
label = "Follow log files"
fields = ["files", "follow"]
required = ["files"]
set = { follow = [true] }
[[commands.task]]
id = "k8s"
label = "Stream Kubernetes logs"
fields = ["k8s_enabled", "k8s_namespaces", "k8s_selector"]
required = ["k8s_enabled"]
set = { k8s_enabled = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["files", "follow", "format", "k8s_enabled", "k8s_namespaces", "k8s_selector"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["log_buffer", "ai_provider", "ai_model", "skin", "web_disabled"]