You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What problem are you trying to solve?
Today the only way to see which hosts Skipper knows about is to launch the TUI. That is great for selecting and connecting, but a pain when you just want to:
Quickly sanity-check that a host you just added is actually in the file.
Pipe the list into another tool (grep, fzf, shell scripts, CI).
See hosts without spinning up the full-screen UI (e.g. over a flaky ssh session, in a non-TTY context).
Proposed solution
Add a list (alias ls) subcommand that reads the same config path as the TUI and prints the parsed host entries:
skipper list [flags]
skipper ls
Default output: a tab-aligned table with columns ALIAS, USER, HOSTNAME, PORT, IDENTITY — matching the fields on sshconfig.Host. Respects the existing -c, --config flag so alternate config files work the same way they do for the TUI.
Exit codes:
0 with no output when the config parses cleanly but contains no hosts (matches shell conventions).
Non-zero when the config file is missing or unparsable, using the existing error plumbing in sshconfig.ParseHosts.
Only support the TUI view and document that users should cat ~/.ssh/config. Rejected: Skipper already parses and normalizes the config (including multi-pattern Host blocks), so it can show a strictly better view than raw cat.
What problem are you trying to solve?
Today the only way to see which hosts Skipper knows about is to launch the TUI. That is great for selecting and connecting, but a pain when you just want to:
grep,fzf, shell scripts, CI).Proposed solution
Add a
list(aliasls) subcommand that reads the same config path as the TUI and prints the parsed host entries:Default output: a tab-aligned table with columns
ALIAS,USER,HOSTNAME,PORT,IDENTITY— matching the fields onsshconfig.Host. Respects the existing-c, --configflag so alternate config files work the same way they do for the TUI.Exit codes:
0with no output when the config parses cleanly but contains no hosts (matches shell conventions).sshconfig.ParseHosts.Alternatives considered
-l/--listflag on the root command. Rejected for the same reason as [feature] Replace --add flag with anaddsubcommand #7 — read and write operations deserve their own verbs rather than piling flags on the root.cat ~/.ssh/config. Rejected: Skipper already parses and normalizes the config (including multi-pattern Host blocks), so it can show a strictly better view than rawcat.Additional context
internal/sshconfig/parser.go(ParseHosts).