id = "csshx" name = "csshX" homepage = "https://github.com/brockgr/csshx" description = "Cluster SSH tool for Terminal.app." executables = ["csshX"] [dotfiles] # csshX's bundled source loads /etc/csshrc and $HOME/.csshrc; only the latter # is a user-level configuration file. # https://github.com/brockgr/csshx/blob/master/csshX paths = ["~/.csshrc"] exclude = [] secret = [] [commands] format = 1 label = "Open cluster SSH windows" description = "Open one Terminal window per host and a master window that types into all of them. Cluster definitions, settings sets and debug options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://github.com/brockgr/csshx/blob/master/csshX" revision = "2026-10-27" evidence = """ csshX [--login username] [--config filename] [ [user@]host1[:port] [[user@]host2[:port]] .. ] =item -l username, --login username =item -x, --tile_x number =item -y, --tile_y number =item --ssh ssh command =item --ssh_args ssh arguments =item --remote_command command to run =item --hosts hosts_file =item --ping_test, --ping number =item --sorthosts =item --screen number or range """ [[commands.field]] id = "hosts" label = "Hosts" description = "Hostnames as [user@]host[:port]." type = "string" position = 0 multiple = true sources = ["man"] [[commands.field]] id = "login" label = "Login user" type = "string" option = ["--login", "-l"] sources = ["man"] [[commands.field]] id = "hosts_file" label = "Hosts file" type = "path" option = ["--hosts"] path = { kind = "file", role = "input" } sources = ["man"] [[commands.field]] id = "tile_x" label = "Columns" type = "integer" option = ["--tile_x", "-x"] sources = ["man"] [[commands.field]] id = "tile_y" label = "Rows" type = "integer" option = ["--tile_y", "-y"] sources = ["man"] [[commands.field]] id = "screen" label = "Screen" type = "string" option = ["--screen"] sources = ["man"] [[commands.field]] id = "ssh_args" label = "Extra ssh arguments" type = "string" option = ["--ssh_args"] sources = ["man"] [[commands.field]] id = "remote_command" label = "Remote command" type = "string" option = ["--remote_command"] sources = ["man"] [[commands.field]] id = "ping_test" label = "Ping hosts first" type = "boolean" option = ["--ping_test"] sources = ["man"] [[commands.field]] id = "sorthosts" label = "Sort windows by hostname" type = "boolean" option = ["--sorthosts"] sources = ["man"] [[commands.task]] id = "hosts" label = "Connect to hosts" fields = ["hosts", "login", "tile_x", "sorthosts"] required = ["hosts"] [[commands.task]] id = "from-file" label = "Connect to hosts from a file" fields = ["hosts_file", "login", "ping_test"] required = ["hosts_file"] [[commands.group]] id = "basic" label = "Basic" fields = ["hosts", "login", "hosts_file", "tile_x", "tile_y"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["screen", "ssh_args", "remote_command", "ping_test", "sorthosts"]