ssh-cli 0.5.2

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 with tags 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": "su-exec one-shot to become root because sudo is disabled on this box",
      "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 use sftp recursive for trees",
      "should_trigger": true
    },
    {
      "query": "sftp upload recursive directory tree with --json event sftp-transfer no symlink follow",
      "should_trigger": true
    },
    {
      "query": "sftp ls mkdir rmdir rm stat rename remote filesystem ops over ssh subsystem",
      "should_trigger": true
    },
    {
      "query": "sftp rmdir empty remote directory then sftp mkdir for a new path",
      "should_trigger": true
    },
    {
      "query": "health-check with optional timeout override and parse only stdout json",
      "should_trigger": true
    },
    {
      "query": "run health-check --all --json with --max-concurrency 8 across the fleet registry",
      "should_trigger": true
    },
    {
      "query": "exec --all uptime on every host with bounded concurrency batch schema exec-batch",
      "should_trigger": true
    },
    {
      "query": "exec --tags prod,web uptime selecting hosts by tag OR fleet filter",
      "should_trigger": true
    },
    {
      "query": "multi-host fleet with --fail-fast stop admitting hosts after first failure",
      "should_trigger": true
    },
    {
      "query": "run uname then df then free on the same SSH session with --step multi-step json step index",
      "should_trigger": true
    },
    {
      "query": "authenticate via ssh-agent with --use-agent and --agent-socket for vps add and exec",
      "should_trigger": true
    },
    {
      "query": "secrets status failed after rotating primary-key, how do i reencrypt config.toml",
      "should_trigger": true
    },
    {
      "query": "secrets init --json secrets-reencrypt and flags --allow-plaintext-secrets --secrets-key-file --use-keyring",
      "should_trigger": true
    },
    {
      "query": "host key mismatch TOFU what flag replaces known_hosts after human approval",
      "should_trigger": true
    },
    {
      "query": "root doctor --json and vps doctor show XDG path schema and ssh_probe",
      "should_trigger": true
    },
    {
      "query": "discover full command tree with ssh-cli commands JSON for agent tooling",
      "should_trigger": true
    },
    {
      "query": "emit schema catalog and one schema body with ssh-cli schema and schema exec",
      "should_trigger": true
    },
    {
      "query": "set UI language with locale set pt-BR and show resolved locale winning layer",
      "should_trigger": true
    },
    {
      "query": "tls provider paths mtls import client cert and acme DNS-01 issue complete status",
      "should_trigger": true
    },
    {
      "query": "ACME invalidContact permanent validation failure must exit 64 never retry as 74",
      "should_trigger": true
    },
    {
      "query": "vps list json password is null for key-only host and FIXED_MASK *** for password hosts",
      "should_trigger": true
    },
    {
      "query": "empty remote command fails with message empty command and exit 64",
      "should_trigger": true
    },
    {
      "query": "vps export redacted empty password must stay empty string never sshcli-enc blob",
      "should_trigger": true
    },
    {
      "query": "include-secrets must use --output or --i-understand-secrets-on-stdout never raw pipe",
      "should_trigger": true
    },
    {
      "query": "vps export default body is TOML even on pipe non-TTY use --json only for event vps-export",
      "should_trigger": true
    },
    {
      "query": "import hosts from TOML EN keys PT aliases or JSON vps-export with allow-incomplete",
      "should_trigger": true
    },
    {
      "query": "password-stdin for vps add, dual max_command_chars max_output_chars for agent commands",
      "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 retryable error_class suggestion after failed exec",
      "should_trigger": true
    },
    {
      "query": "tunnel post-bind deadline after tunnel_listening must exit 0 not 74",
      "should_trigger": true
    },
    {
      "query": "tunnel pre-bind timeout still exit 74 before listening",
      "should_trigger": true
    },
    {
      "query": "scp remote missing exit 66 file not found path invalid import TOML exit 65 auth exit 77",
      "should_trigger": true
    },
    {
      "query": "timeout under 1000 ms emits stderr warning unit is milliseconds not seconds",
      "should_trigger": true
    },
    {
      "query": "scp multi-file one session with --scp-file-concurrency parallel channels",
      "should_trigger": true
    },
    {
      "query": "enable SSH-over-TLS on host with --tls --tls-sni and mTLS client cert key flags",
      "should_trigger": true
    },
    {
      "query": "first vps add auto secrets key puts secrets_key_auto_created on same vps-added json never second event",
      "should_trigger": true
    },
    {
      "query": "doctor --probe-ssh --hosts web1,web2 single root event vps-doctor with local and ssh_probe",
      "should_trigger": true
    },
    {
      "query": "vps add nonstandard ssh port 2222 with --check then connect active host",
      "should_trigger": true
    },
    {
      "query": "ssh-cli stderr is noisy with INFO by default how do agents keep logs clean",
      "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
    }
  ]
}