Install
openclaw skills install @jkfaris94/remote-node-sshRun commands and transfer files between an OpenClaw gateway (VPS) and a paired local node via node protocol or SSH fallback. Covers transport selection, common exec patterns, file transfer, and disconnect recovery. Assumes the node is already paired. For setup, see hybrid-gateway.
openclaw skills install @jkfaris94/remote-node-sshRun commands on a paired OpenClaw node from your gateway. Node protocol when connected, SSH when not.
Setup: Node must be paired first. See
hybrid-gateway.
This skill expects the following on your gateway machine:
ssh, scp, rsync — standard SSH tooling for fallback transport and file transferopenclaw CLI — for node protocol commands and node status checksYour remote node needs an SSH server running and an OpenClaw node agent paired to your gateway.
| Need | Transport |
|---|---|
| Run a command | exec host=node (node protocol) |
| Full shell env (brew, nvm, pyenv) | SSH with shell rc sourcing |
| Transfer files | SSH (scp / rsync) |
| Node disconnected | SSH |
| Long-running task | SSH + nohup or tmux |
Fastest path. Routes through the gateway — no SSH keys needed.
exec host=node command="uname -a"
Caveat: Minimal PATH. Use full binary paths for package-manager-installed tools:
exec host=node command="/opt/homebrew/bin/python3 --version"
Use your SSH config alias (the hostname or alias you configured in your SSH config for the node).
ssh <node-alias> "whoami"
With full shell environment:
ssh <node-alias> "source ~/.profile 2>/dev/null; node --version"
# To node
scp file.txt <node-alias>:/tmp/
# From node
scp <node-alias>:/tmp/result.txt ./
# Sync a directory
rsync -avz ./data/ <node-alias>:~/data/
openclaw nodes status
openclaw nodes statusssh <node-alias> "echo ok"openclaw nodes statusnohup/tmux to avoid timeouts