id = "i2cssh"
name = "i2cssh"
homepage = "https://github.com/wouterdebie/i2cssh"
description = "csshX like ssh tool for iTerm2."
executables = ["i2cssh"]
platforms = ["macos"]
[dotfiles]
paths = ["~/.i2csshrc"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Open SSH sessions in iTerm2"
description = "Open split panes or tabs for hosts or clusters. Layout, SSH and iTerm2 options are included; gateway, custom command and environment 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 = "readme"
kind = "help"
url = "https://github.com/wouterdebie/i2cssh/blob/master/README.md"
revision = "master 2026-10"
evidence = """
Usage: i2cssh [OPTIONS] [HOSTS_OR_CLUSTER]...
HOSTS: [(login@host [login@host] | login@cluster)]
-c, --clusters TEXT Comma-separated list of clusters specified
-m, --machines TEXT Comma-separated list of hosts
-t, --tab-split Split servers/clusters into tabs and put all
-A, --forward-agent Enable SSH agent forwarding
-l, --login TEXT SSH user name
-F, --fullscreen Make the window fullscreen
-b, --broadcast Start with broadcast input (DANGEROUS!)
-p, --profile TEXT iTerm2 profile name (default: Default)
-s, --sleep INTEGER Number of seconds to sleep between creating
-d, --direction [column|row] Direction that new sessions are created
-C, --columns INTEGER Number of columns (rows will be calculated)
-R, --rows INTEGER Number of rows (columns will be calculated)
`i2cssh` will assume you want to connect to a cluster when only one host is given.
"""
[[commands.field]]
id = "hosts"
label = "Hosts or cluster"
description = "login@host entries, or one cluster name defined in ~/.i2csshrc."
type = "string"
position = 0
multiple = true
sources = ["readme"]
[[commands.field]]
id = "clusters"
label = "Clusters"
description = "Comma-separated clusters from ~/.i2csshrc."
type = "string"
option = ["--clusters", "-c"]
sources = ["readme"]
[[commands.field]]
id = "machines"
label = "Machines"
description = "Comma-separated list of hosts."
type = "string"
option = ["--machines", "-m"]
sources = ["readme"]
[[commands.field]]
id = "login"
label = "SSH user"
type = "string"
option = ["--login", "-l"]
sources = ["readme"]
[[commands.field]]
id = "forward_agent"
label = "Forward SSH agent"
type = "boolean"
option = ["--forward-agent", "-A"]
sources = ["readme"]
[[commands.field]]
id = "tab_split"
label = "Split into tabs"
type = "boolean"
option = ["--tab-split", "-t"]
sources = ["readme"]
[[commands.field]]
id = "profile"
label = "iTerm2 profile"
type = "string"
option = ["--profile", "-p"]
sources = ["readme"]
[[commands.field]]
id = "direction"
label = "Split direction"
type = "enum"
option = ["--direction", "-d"]
choices = [{ value = "column", label = "Column" }, { value = "row", label = "Row" }]
sources = ["readme"]
[[commands.field]]
id = "columns"
label = "Columns"
type = "integer"
option = ["--columns", "-C"]
sources = ["readme"]
[[commands.field]]
id = "rows"
label = "Rows"
type = "integer"
option = ["--rows", "-R"]
sources = ["readme"]
[[commands.field]]
id = "sleep"
label = "Seconds between sessions"
type = "integer"
option = ["--sleep", "-s"]
sources = ["readme"]
[[commands.field]]
id = "fullscreen"
label = "Fullscreen"
type = "boolean"
option = ["--fullscreen", "-F"]
sources = ["readme"]
[[commands.field]]
id = "broadcast"
label = "Start with broadcast input"
description = "Typing goes to every pane; dangerous."
type = "boolean"
option = ["--broadcast", "-b"]
sources = ["readme"]
[[commands.task]]
id = "hosts"
label = "Connect to hosts"
fields = ["hosts", "login", "forward_agent"]
required = ["hosts"]
[[commands.task]]
id = "cluster"
label = "Connect to a cluster"
fields = ["clusters", "profile", "tab_split"]
required = ["clusters"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["hosts", "clusters", "machines", "login", "forward_agent", "tab_split"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["profile", "direction", "columns", "rows", "sleep", "fullscreen", "broadcast"]