--- name: remote-observable-process description: Use this skill when starting, supervising, debugging, holding open, or stopping any remote process over SSH that needs an operator-like interactive environment, a TTY, login-shell startup files, long-running observation, logs, readiness checks, or later inspection. metadata: short-description: Run observable SSH processes --- # remote-observable-process Use this skill before starting a non-trivial remote process over SSH when the process needs to behave like it was launched by an operator in a terminal, be observed after launch, expose readiness, keep running beyond one command, or be stopped cleanly later. ## macOS Local Network privacy If a macOS same-LAN join or split fails, or remote macOS nodes on the same LAN connect only via relay, check the `deploy-macos` skill's Local Network troubleshooting section before diagnosing iroh (not a routine preflight; SSH/shell launches normally just work). A raw UDP probe, a LAN address in an invite, or relay connectivity is not proof that the deployed process was authorized. Do not collect performance data until both nodes report the intended LAN peer as an iroh direct path. ## Rule For environment-sensitive processes, prefer SSH with a TTY and an interactive login shell: ```bash ssh -tt host '/bin/zsh -ilc '\''COMMAND'\''' ``` If the remote host does not use zsh, adapt the shell while preserving the same properties: allocate a TTY, use a login/interactive shell, and keep the session foreground for first repro/debug runs. Avoid detached first attempts such as: ```bash ssh host "nohup COMMAND > /tmp/process.log 2>&1 &" ssh host "COMMAND > /tmp/process.log 2>&1 &" ``` Those shapes hide lifecycle and can behave differently from a real remote session. ## Stage Runtime Debugging For network-sensitive server chains, model stage servers, GPU/Metal workloads, or bind/connect debugging, first prove the process in a held foreground TTY: ```bash ssh -tt host '/bin/zsh -ilc '\''COMMAND 2>&1 | tee /tmp/COMMAND.log'\''' ``` Keep the SSH session open while sending traffic. Use `tmux` or `screen` only after validating that they preserve the same listener, downstream connection, and request behavior on that host.