ssh-cli 0.5.5

Native Rust CLI that gives LLMs (Claude Code, Cursor, Windsurf) the ability to operate remote servers via SSH over stdin/stdout
Documentation
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/danilo-aguiar-br/ssh-cli/docs/schemas/vps-show.schema.json",
  "title": "vps show JSON",
  "description": "Payload of `ssh-cli vps show <VPS> --json`, with every secret masked to a fixed marker. Five fields are conditional and vanish when unset rather than appearing empty: tags, tls, tls_sni, tls_client_cert, tls_client_key. Carries no `event` discriminator.",
  "type": "object",
  "additionalProperties": true,
  "required": [
    "name",
    "host",
    "port",
    "user",
    "timeout_ms",
    "max_command_chars",
    "max_output_chars",
    "disable_sudo",
    "schema_version"
  ],
  "properties": {
    "tags": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Host tags used by the `--tags` fleet selector on the exec family. Omitted when empty (`skip_serializing_if`), never emitted as `[]`."
    },
    "tls": {
      "type": "boolean",
      "description": "True when this host runs SSH inside a rustls TLS tunnel. Omitted when false, so absence means plain TCP."
    },
    "tls_sni": {
      "type": ["string", "null"],
      "description": "SNI presented on the TLS handshake. Omitted when unset."
    },
    "tls_client_cert": {
      "type": ["string", "null"],
      "description": "Absolute path to the mTLS client certificate, when the host authenticates with one. Omitted when unset."
    },
    "tls_client_key": {
      "type": ["string", "null"],
      "description": "Absolute path to the mTLS client key. Omitted when unset; never contains key material."
    },
    "name": {
      "type": "string"
    },
    "host": {
      "type": "string"
    },
    "port": {
      "type": "integer"
    },
    "user": {
      "type": "string"
    },
    "password": {
      "type": [
        "string",
        "null"
      ],
      "description": "Empty/key-only hosts serialize as null; non-empty is the masked string \"***\""
    },
    "key_path": {
      "type": [
        "string",
        "null"
      ]
    },
    "key_passphrase": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked when present"
    },
    "sudo_password": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked when present"
    },
    "su_password": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked when present"
    },
    "timeout_ms": {
      "type": "integer"
    },
    "max_command_chars": {
      "type": "integer"
    },
    "max_output_chars": {
      "type": "integer"
    },
    "disable_sudo": {
      "type": "boolean"
    },
    "schema_version": {
      "type": "integer"
    },
    "added_at": {
      "type": "string"
    }
  }
}