id = "tinyfugue"
name = "TinyFugue"
homepage = "https://github.com/ingwarsw/tinyfugue"
description = "A rebirth of the TinyFugue MUD client: a programmable, screen-oriented client for text-based multi-user games."
executables = ["tf"]
platforms = ["macos", "linux"]
[dotfiles]
paths = [
"~/.tfrc",
"~/tfrc",
]
exclude = []
secret = []
side_effect = false
[[dotfiles.secret_paths]]
file = ["~/.tfrc", "~/tfrc"]
match = { prefix = ["/test addworld("] }
[commands]
format = 1
label = "Connect to a MUD"
description = "Start TinyFugue and connect to a world or host. Library directory and startup command are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = true }
[[commands.source]]
id = "usage"
kind = "help"
url = "https://github.com/ingwarsw/tinyfugue/blob/HEAD/src/main.c"
revision = "2026-10-27"
evidence = """
Usage: tf [-L<dir>] [-f[<file>]] [-c<cmd>] [-vnlq] [<world>]
tf [-L<dir>] [-f[<file>]] [-c<cmd>] [-vlq] <host> <port>
-f don't load personal config file (.tfrc)
-f<file> load <file> instead of config file
-n no automatic first connection
-l no automatic login/password
-q quiet login
-v no automatic visual mode
<host> hostname or IP address
<port> port number or name
<world> connect to <world> defined by addworld()
"""
[[commands.field]]
id = "world"
label = "World or host"
description = "A world defined by addworld(), or a hostname/IP when a port follows."
type = "string"
position = 0
sources = ["usage"]
[[commands.field]]
id = "port"
label = "Port"
description = "Only with a hostname instead of a world."
type = "string"
position = 1
sources = ["usage"]
[[commands.field]]
id = "config_file"
label = "Config file"
description = "Load this file instead of ~/.tfrc."
type = "path"
option = ["-f"]
path = { kind = "file", role = "input" }
sources = ["usage"]
[[commands.field]]
id = "no_connect"
label = "No automatic first connection"
type = "boolean"
option = ["-n"]
sources = ["usage"]
[[commands.field]]
id = "no_login"
label = "No automatic login"
type = "boolean"
option = ["-l"]
sources = ["usage"]
[[commands.field]]
id = "quiet"
label = "Quiet login"
type = "boolean"
option = ["-q"]
sources = ["usage"]
[[commands.field]]
id = "no_visual"
label = "No automatic visual mode"
type = "boolean"
option = ["-v"]
sources = ["usage"]
[[commands.task]]
id = "connect_world"
label = "Connect to a world"
fields = ["world"]
required = ["world"]
[[commands.task]]
id = "connect_host"
label = "Connect to host and port"
fields = ["world", "port"]
required = ["world", "port"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["world", "port", "config_file"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["no_connect", "no_login", "quiet", "no_visual"]