id = "trzsz-ssh" name = "trzsz-ssh" homepage = "https://github.com/trzsz/trzsz-ssh" description = "A terminal SSH client with trzsz and zmodem file-transfer support." executables = ["tssh"] [dotfiles] paths = ["[configHome]/tssh/tssh.conf", "~/.tssh.conf"] secret = ["~/.ssh/password"] # The upstream README names both custom tssh.conf locations and the extended # SSH password file; the latter stores remembered passwords and is secret. # https://github.com/trzsz/trzsz-ssh/blob/main/README.en.md [commands] format = 1 label = "Connect with tssh" description = "Log in to a host with tssh, an ssh-compatible client with trzsz file transfer and optional UDP mode. Tools such as --new-host, --enc-secret and the --install-* options are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/trzsz/trzsz-ssh/blob/main/tssh/args.go" revision = "v0.1.27" evidence = """ Destination string `arg:"positional" help:"alias in ~/.ssh/config, or [user@]hostname[:port]"` Command string `arg:"positional" help:"command to execute instead of a login shell"` ForwardAgent bool `arg:"-A,--" help:"enable forwarding the ssh agent connection"` DisableTTY bool `arg:"-T,--" help:"disable pseudo-terminal allocation"` ForceTTY bool `arg:"-t,--" help:"force pseudo-terminal allocation"` NoCommand bool `arg:"-N,--" help:"do not execute a remote command"` Port int `arg:"-p,--" placeholder:"port" help:"port to connect to on the remote host"` LoginName string `arg:"-l,--" placeholder:"login_name" help:"the user to log in as on the remote machine"` Identity multiStr `arg:"-i,--" placeholder:"identity_file" help:"identity (private key) for public key auth"` ConfigFile string `arg:"-F,--" placeholder:"configfile" help:"an alternative per-user configuration file"` ProxyJump string `arg:"-J,--" placeholder:"destination" help:"jump hosts separated by comma characters"` DynamicForward bindArgs `arg:"-D,--" placeholder:"[bind_addr:]port" help:"dynamic port forwarding ( socks5 proxy )"` LocalForward forwardArgs `arg:"-L,--" placeholder:"[bind_addr:]port:host:hostport" help:"local port forwarding"` RemoteForward forwardArgs `arg:"-R,--" placeholder:"[bind_addr:]port:host:hostport" help:"remote port forwarding"` DragFile bool `arg:"--dragfile" help:"enable drag files and directories to upload"` Debug bool `arg:"--debug" help:"verbose mode for debugging, same as ssh's -vvv"` Zmodem bool `arg:"--zmodem" help:"enable zmodem lrzsz ( rz / sz ) feature"` TCP bool `arg:"--tcp" help:"force standard TCP SSH (overrides UdpMode)"` UDP bool `arg:"--udp" help:"ssh over UDP like mosh (default: QUIC)"` KCP bool `arg:"--kcp" help:"[udp] use KCP protocol for ssh over UDP"` QUIC bool `arg:"--quic" help:"[udp] use QUIC protocol for ssh over UDP"` """ [[commands.field]] id = "destination" label = "Host" description = "An alias from ~/.ssh/config, or [user@]hostname[:port]." type = "string" position = 0 min = 1 sources = ["help"] [[commands.field]] id = "command" label = "Remote command" description = "Run this instead of a login shell." type = "string" position = 1 effect = "exec" sources = ["help"] [[commands.field]] id = "port" label = "Port" type = "integer" option = ["-p"] sources = ["help"] [[commands.field]] id = "login_name" label = "Login user" type = "string" option = ["-l"] sources = ["help"] [[commands.field]] id = "identity" label = "Identity file" type = "path" option = ["-i"] multiple = true path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.field]] id = "config_file" label = "SSH config file" type = "path" option = ["-F"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.field]] id = "proxy_jump" label = "Jump hosts" description = "Comma-separated jump hosts." type = "string" option = ["-J"] sources = ["help"] [[commands.field]] id = "local_forward" label = "Local forward" description = "[bind_addr:]port:host:hostport." type = "string" option = ["-L"] multiple = true sources = ["help"] [[commands.field]] id = "remote_forward" label = "Remote forward" description = "[bind_addr:]port:host:hostport." type = "string" option = ["-R"] multiple = true sources = ["help"] [[commands.field]] id = "dynamic_forward" label = "SOCKS proxy" description = "[bind_addr:]port for dynamic port forwarding." type = "string" option = ["-D"] sources = ["help"] [[commands.field]] id = "force_tty" label = "Force terminal allocation" type = "boolean" option = ["-t"] sources = ["help"] [[commands.field]] id = "no_command" label = "No remote command" description = "Useful together with port forwarding." type = "boolean" option = ["-N"] sources = ["help"] [[commands.field]] id = "forward_agent" label = "Forward SSH agent" type = "boolean" option = ["-A"] sources = ["help"] [[commands.field]] id = "dragfile" label = "Drag files to upload" type = "boolean" option = ["--dragfile"] sources = ["help"] [[commands.field]] id = "zmodem" label = "Enable zmodem (rz / sz)" type = "boolean" option = ["--zmodem"] sources = ["help"] [[commands.field]] id = "udp" label = "SSH over UDP" description = "Needs tsshd on the server. QUIC by default." type = "boolean" option = ["--udp"] sources = ["help"] [[commands.field]] id = "kcp" label = "Use KCP (with UDP)" type = "boolean" option = ["--kcp"] sources = ["help"] [[commands.field]] id = "debug" label = "Debug output" type = "boolean" option = ["--debug"] sources = ["help"] [[commands.task]] id = "login" label = "Log in" fields = ["destination"] required = ["destination"] [[commands.task]] id = "login_udp" label = "Log in over UDP" fields = ["destination", "udp"] required = ["destination"] set = { udp = [true] } [[commands.task]] id = "tunnel" label = "Local port forward" fields = ["destination", "local_forward", "no_command"] required = ["destination", "local_forward"] set = { no_command = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["destination", "command", "port", "login_name", "identity", "proxy_jump"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["config_file", "local_forward", "remote_forward", "dynamic_forward", "force_tty", "no_command", "forward_agent", "dragfile", "zmodem", "udp", "kcp", "debug"]