id = "rainfrog"
name = "rainfrog"
homepage = "https://github.com/achristmascarl/rainfrog"
description = "Database management TUI for PostgreSQL/MySQL/SQLite"
executables = ["rainfrog"]
[dotfiles]
paths = [
"[configHome]/rainfrog/",
"[appData]/rainfrog/",
"%LOCALAPPDATA%/rainfrog/config/",
]
secret = [
"[configHome]/rainfrog/rainfrog_config.toml",
"[appData]/rainfrog/rainfrog_config.toml",
"%LOCALAPPDATA%/rainfrog/config/rainfrog_config.toml",
]
[commands]
format = 1
label = "Connect to a database"
description = "Open rainfrog on a PostgreSQL, MySQL, Oracle or SQLite database by URL or by separate connection parts. The password option is left out; rainfrog prompts or reads the saved config."
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://github.com/achristmascarl/rainfrog#usage"
revision = "main 2026-10-27"
evidence = '''
Usage: rainfrog [OPTIONS] [COMMAND]
-M, --mouse <MOUSE_MODE> Whether to enable mouse event support. [possible values: true, false]
-u, --url <URL> Full connection URL for the database, e.g. postgres://username:password@localhost:5432/dbname
--username <USERNAME> Username for database connection
-R, --reenter-password Reenter the password for a saved database connection
--host <HOST> Host for database connection (ex. localhost)
--port <PORT> Port for database connection (ex. 5432)
--database <DATABASE> Name of database for connection (ex. postgres)
--driver <DRIVER> Driver for database connection (ex. postgres)
--ssl-required Require an SSL/TLS connection (supported by PostgreSQL, MySQL, and Oracle)
'''
[[commands.field]]
id = "url"
label = "Connection URL"
description = "A URL with a password in it lands in shell history."
type = "string"
option = ["--url", "-u"]
sources = ["readme"]
[[commands.field]]
id = "driver"
label = "Driver"
type = "string"
option = ["--driver"]
suggestions = [{ value = "postgres", label = "PostgreSQL" }, { value = "mysql", label = "MySQL" }, { value = "sqlite", label = "SQLite" }]
sources = ["readme"]
[[commands.field]]
id = "host"
label = "Host"
type = "string"
option = ["--host"]
sources = ["readme"]
[[commands.field]]
id = "port"
label = "Port"
type = "integer"
option = ["--port"]
sources = ["readme"]
[[commands.field]]
id = "username"
label = "Username"
type = "string"
option = ["--username"]
sources = ["readme"]
[[commands.field]]
id = "database"
label = "Database name"
type = "string"
option = ["--database"]
sources = ["readme"]
[[commands.field]]
id = "ssl_required"
label = "Require SSL/TLS"
type = "boolean"
option = ["--ssl-required"]
sources = ["readme"]
[[commands.field]]
id = "reenter_password"
label = "Re-enter saved password"
type = "boolean"
option = ["-R", "--reenter-password"]
sources = ["readme"]
[[commands.field]]
id = "mouse"
label = "Mouse support"
type = "enum"
option = ["--mouse", "-M"]
choices = [{ value = "true", label = "On" }, { value = "false", label = "Off" }]
sources = ["readme"]
[[commands.task]]
id = "url"
label = "Connect by URL"
fields = ["url", "ssl_required"]
required = ["url"]
[[commands.task]]
id = "parts"
label = "Connect by parts"
fields = ["driver", "host", "port", "username", "database", "ssl_required"]
required = ["driver"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["url", "driver", "host", "port", "username", "database"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["ssl_required", "reenter_password", "mouse"]