id = "portal" name = "Portal" homepage = "https://github.com/SpatiumPortae/portal" description = "A command-line file transfer utility for sending files from any computer to another." executables = ["portal"] [dotfiles] # Portal's upstream README says it places the YAML configuration at # $HOME/.config/portal/config.yml. This is the user's relay/TUI preference; # transfer passwords are one-shot values entered on the command line. # https://github.com/SpatiumPortae/portal#configuration paths = ["[configHome]/portal/config.yml"] exclude = [] secret = [] side_effect = false [commands] format = 1 label = "Transfer files" description = "Send files or folders to another machine, or receive them with the password the sender shows. Running your own relay is left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["send"] label = "Send files" [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/SpatiumPortae/portal/blob/master/README.md" revision = "2026-10-27" evidence = """ portal send ... - `-r/--relay`: address of the relay server (`:8080`, `myrelay.io:1234`, ...) - `-s/--tui-style`: the style of the tui (`rich` | `raw`) """ [[commands.subcommand.field]] id = "paths" label = "Files or folders" type = "path" position = 0 multiple = true min = 1 path = { kind = "any", role = "input" } sources = ["readme"] [[commands.subcommand.field]] id = "relay" label = "Relay address" type = "string" option = ["--relay", "-r"] sources = ["readme"] [[commands.subcommand.field]] id = "tui_style" label = "Display style" type = "enum" option = ["--tui-style", "-s"] choices = [{ value = "rich", label = "Rich" }, { value = "raw", label = "Raw" }] sources = ["readme"] [[commands.subcommand.task]] id = "send" label = "Send files" fields = ["paths", "relay"] required = ["paths"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["paths", "relay", "tui_style"] [[commands.subcommand]] path = ["receive"] label = "Receive files" [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/SpatiumPortae/portal/blob/master/README.md" revision = "2026-10-27" evidence = """ portal receive 1-intertia-elliptical-celestial - `-y/--yes`: overwrite existing files without `[Y/n]` prompts - `-r/--relay`: address of the relay server (`:8080`, `myrelay.io:1234`, ...) - `-s/--tui-style`: the style of the tui (`rich` | `raw`) """ [[commands.subcommand.field]] id = "password" label = "Password" description = "The password shown by the sender, e.g. 1-word-word-word." type = "string" position = 0 min = 1 sources = ["readme"] [[commands.subcommand.field]] id = "yes" label = "Overwrite without asking" type = "boolean" option = ["--yes", "-y"] effect = "overwrite" sources = ["readme"] [[commands.subcommand.field]] id = "relay" label = "Relay address" type = "string" option = ["--relay", "-r"] sources = ["readme"] [[commands.subcommand.field]] id = "tui_style" label = "Display style" type = "enum" option = ["--tui-style", "-s"] choices = [{ value = "rich", label = "Rich" }, { value = "raw", label = "Raw" }] sources = ["readme"] [[commands.subcommand.task]] id = "receive" label = "Receive files" fields = ["password", "yes"] required = ["password"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["password", "yes", "relay", "tui_style"]