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." # The binary TinyFugue installs is `tf`. executables = ["tf"] platforms = ["macos", "linux"] [dotfiles] # src/main.c, the startup path, tries the personal config file in this order: # do_file_load("~/.tfrc", TRUE, &main_configfile) >= 0 || # do_file_load("~/tfrc", TRUE, &main_configfile) >= 0 || # do_file_load("./.tfrc", ...) || do_file_load("./tfrc", ...) # and the usage text calls it "-f don't load personal config file (.tfrc)". # The two home-directory spellings are listed; the two ./ ones are per-project # files in whatever directory tf was started from, not user config. paths = [ "~/.tfrc", "~/tfrc", ] exclude = [] # Nothing here is a credential end to end — a .tfrc is macros, triggers, key # bindings and world definitions together. The passwords inside it are named # below instead. secret = [] # tf reads the file once at startup and holds nothing open on it afterwards. side_effect = false # A world definition carries the character's password for that MUD. TinyFugue # stores it as the world's `pass` field, and /saveworld writes the world list # back out through the same formatter /listworlds uses, which builds each line # as `/test addworld(` followed by the quoted name, type, host, port, # character, pass, macro file and flags (src/world.c, listworld_body: # Stringcpy(buf, "/test addworld("); … Sappendf(buf, ", \"%q\"", '"', p->pass)). # So the whole call is held back: the password is the sixth argument of a line # this syntax can only match whole. Both home-directory spellings are named, # because a rule bound to only one of them would not run for a user who has # the other. [[dotfiles.secret_paths]] file = ["~/.tfrc", "~/tfrc"] match = { prefix = ["/test addworld("] } # No machine_lines: macros, triggers, hooks and key bindings are the point of # carrying a .tfrc, and a world's host and port belong to the MUD rather than # to one of the user's computers. [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