An SSH client built for AI agents
ssh hangs on prompts, forgets every cd, and needs your passwords. xssh keeps shells alive across tool calls, reports state in one line, and keeps secrets from the agent.
Tell your agent
Install xssh: read https://xssh.io/llms.txt and follow it.
Or PowerShell
> irm https://xssh.io/install.ps1 | iex
Or download
$ xssh session run w -- 'sudo apt-get upgrade' Do you want to continue? [Y/n] [xssh w waiting prompt=confirm] $ xssh session send w y --enter Setting up nginx (1.24.0-2ubuntu7.5) … [xssh w done exit=0] $ xssh session run w -- pwd /srv/app [xssh w done exit=0]
No more hanging on prompts
Same job, two tools.
$ ssh deploy@web1 'sudo apt-get upgrade' [sudo] password for deploy: … 120 s, no output …
Times out at the password prompt.
$ xssh session run w -- 'sudo apt-get upgrade' Do you want to continue? [Y/n] [xssh w waiting prompt=confirm] $ xssh session send w y --enter [xssh w done exit=0]
The prompt is reported and answered. The shell keeps its state.
One command, one exact result
Terse, ANSI-free output with exit codes and next steps.
xssh host list- Saved servers: notes, tags, OS, last success.
xssh exec H -- cmd- One host, many, or @tag in parallel. Real exit codes.
xssh session run N -- cmd- A shell that keeps cwd, env and programs across calls.
xssh session send N …- Answer prompts. Drive REPLs, vim, top.
xssh job start H -- cmd- Outlives timeouts and disconnects.
xssh file edit H PATH- Exact, atomic replace with backup.
xssh cp SRC… DST- rsync-like. Skips unchanged files, resumes large ones.
xssh forward add H -L …- -L, -R, SOCKS5, held by the daemon.
xssh status | diag | logs H- Health, diagnosis with the next step, logs.
xssh host trust H- Host key changed? A human confirms.
Six states. No guessing.
Every reply ends with:
[xssh NAME STATE exit=CODE prompt=KIND]
- done
[xssh w done exit=0]Finished. Real exit code. - waiting
[xssh w waiting prompt=confirm]Prompt open. Answer with session send. - running
[xssh w running]Still printing. Read or wait. - quiet
[xssh w quiet]Running, silent. - tui
[xssh w tui]Full-screen app. The reply is the screen. - disconnected
[xssh w disconnected]Dropped (exit 69). Persistent sessions reattach.
Secrets stay with you
Agents get capabilities, not credentials.
- Passwords live in the OS keyring.
- You type them in a terminal or dialog, never in chat.
- sudo is filled from the keyring.
- {secret:NAME} injects secrets; output shows ***.
- Changed host keys are never bypassed.
$ xssh file edit db /srv/app/.env --old 'DB_PASS=old' --new 'DB_PASS={secret:dbpw}' --secrets edited /srv/app/.env (1 replacement) 12 DB_PASS=*** $ xssh host set-password db → typed by you in a dialog
Install
Windows x64. Remote: any POSIX shell.
Tell your agent
It installs xssh and its skill.
Install xssh: read https://xssh.io/llms.txt and follow it.Or do it yourself
One line, or unzip anywhere.
> irm https://xssh.io/install.ps1 | iexAdd passwords
You type each once. The agent uses the alias.
> xssh host add web1 --host 10.0.0.5 --user deploy --ask-password
Skill for Claude Code · Codex · Gemini CLI · GitHub Copilot · Cursor · OpenCode · Windsurf · Amp · Qwen Code · Kiro · Trae · Roo Code · ~/.agents (Cline…)