Skip to content

Server sources

DasDuo edited this page Jun 14, 2026 · 6 revisions

Server sources

ShuttleX reads hosts from one of two sources, switchable in Settings → Server source.

~/.ssh/config

Hosts are read directly from your SSH config, including Include directives. Wildcard hosts (e.g. Host *) are ignored. This source is read-only — ShuttleX never writes to your SSH config.

JSON file

A dedicated file, by default at ~/.config/shuttlex/servers.json (created with sample entries the first time you switch to it). The path is configurable in Settings (Choose… / Reset to default), so you can point ShuttleX at a file you keep elsewhere (e.g. in a synced folder).

You can edit this file three ways:

The last 3 versions are kept automatically — see Backups.

JSON format

{
  "groups": [
    {
      "name": "Production",
      "hosts": [
        { "name": "Web server", "user": "root", "host": "web1.example.com" },
        { "name": "Database", "user": "admin", "host": "db.example.com", "port": 2222 },
        { "name": "Via jump host", "command": "ssh -J jump.example.com root@10.0.0.5" }
      ]
    }
  ],
  "hosts": [
    { "name": "Ungrouped", "host": "example.org" }
  ]
}
  • host / user / port are assembled into ssh user@host -p port (the target is shell-quoted).
  • command runs verbatim — use it for jump hosts, tunnels, mosh, etc. It overrides host/user/port.
  • Top-level hosts (outside any group) appear under a group called "Servers".

Clone this wiki locally