ssh-cli 0.4.1

Native Rust CLI that gives LLMs (Claude Code, Cursor, Windsurf) the ability to operate remote servers via SSH over stdin/stdout
Documentation
{
  "skill_name": "ssh-cli",
  "queries": [
    {
      "query": "add my production vps to the multi-host registry and run uname over ssh with json",
      "should_trigger": true
    },
    {
      "query": "exec a remote command on edge.example.com with private key auth and parse stdout",
      "should_trigger": true
    },
    {
      "query": "need sudo-exec with safe packing to install packages on the staging host",
      "should_trigger": true
    },
    {
      "query": "open a short-lived ssh tunnel with timeout-ms and --json wait for event tunnel_listening before using local 18080",
      "should_trigger": true
    },
    {
      "query": "upload a single file with scp --json and parse ok event scp-transfer direction vps local remote bytes duration_ms",
      "should_trigger": true
    },
    {
      "query": "scp download with --json expect .ssh-cli.partial then atomic rename and preserve mtime mode",
      "should_trigger": true
    },
    {
      "query": "refuse scp of a directory regular files only no -r no SFTP",
      "should_trigger": true
    },
    {
      "query": "scp transfer failed under --json parse stderr error envelope exit_code message",
      "should_trigger": true
    },
    {
      "query": "scp --timeout for long file copy do not use --timeout-ms on scp",
      "should_trigger": true
    },
    {
      "query": "upload large artifact with scp streaming 32KiB chunks not full file in RAM",
      "should_trigger": true
    },
    {
      "query": "tunnel bind failure with --json read stderr error envelope not stdout success",
      "should_trigger": true
    },
    {
      "query": "secrets status failed after rotating master-key, how do i reencrypt config.toml",
      "should_trigger": true
    },
    {
      "query": "host key mismatch TOFU what flag replaces known_hosts after human approval",
      "should_trigger": true
    },
    {
      "query": "vps doctor shows wrong path, i need XDG config path and export redacted hosts",
      "should_trigger": true
    },
    {
      "query": "su-exec one-shot to become root because sudo is disabled on this box",
      "should_trigger": true
    },
    {
      "query": "password-stdin for vps add, dual max_command_chars max_output_chars for agent commands",
      "should_trigger": true
    },
    {
      "query": "health-check with optional timeout override and parse only stdout json",
      "should_trigger": true
    },
    {
      "query": "vps list json password is null for key-only host and masked for password hosts",
      "should_trigger": true
    },
    {
      "query": "ssh-cli stderr is noisy with INFO by default how do agents keep logs clean",
      "should_trigger": true
    },
    {
      "query": "use quiet mode and key-passphrase-stdin so argv never holds secrets",
      "should_trigger": true
    },
    {
      "query": "parse stderr error envelope exit_code message remote_exit_code after failed exec",
      "should_trigger": true
    },
    {
      "query": "vps add nonstandard ssh port 2222 with --check then connect active host",
      "should_trigger": true
    },
    {
      "query": "scp download with password-stdin or key-passphrase-stdin without argv secrets",
      "should_trigger": true
    },
    {
      "query": "vps export redacted empty password must stay empty string never sshcli-enc blob",
      "should_trigger": true
    },
    {
      "query": "tunnel post-bind deadline after tunnel_listening must exit 0 not 74",
      "should_trigger": true
    },
    {
      "query": "tunnel with password-stdin and key-passphrase-stdin auth overrides",
      "should_trigger": true
    },
    {
      "query": "health-check with password-stdin key and key-passphrase-stdin overrides",
      "should_trigger": true
    },
    {
      "query": "health-check replace-host-key after human approval of host key mismatch",
      "should_trigger": true
    },
    {
      "query": "scp json success must include event scp-transfer discriminator",
      "should_trigger": true
    },
    {
      "query": "tunnel pre-bind timeout still exit 74 before listening",
      "should_trigger": true
    },
    {
      "query": "write a react component that fetches weather from a public api",
      "should_trigger": false
    },
    {
      "query": "refactor this rust crate to use async postgres with sqlx",
      "should_trigger": false
    },
    {
      "query": "how do i center a div with css grid",
      "should_trigger": false
    },
    {
      "query": "generate a powerpoint pitch deck for our fundraising round",
      "should_trigger": false
    },
    {
      "query": "summarize this pdf invoice into a table",
      "should_trigger": false
    },
    {
      "query": "tune postgres vacuum settings for a 200gb table",
      "should_trigger": false
    },
    {
      "query": "create a github actions matrix for linux macos windows rust builds",
      "should_trigger": false
    },
    {
      "query": "translate this marketing landing page into spanish",
      "should_trigger": false
    },
    {
      "query": "plot sales csv columns with a line chart in a spreadsheet",
      "should_trigger": false
    },
    {
      "query": "debug why my local next.js hot reload is broken",
      "should_trigger": false
    }
  ]
}