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 gate
Before using a remote macOS node for LAN, mDNS, or split-inference diagnosis,
complete the deploy-macos skill's Local Network privacy preflight for the exact
signed app/binary identity and launch context on every Mac. 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:
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:
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:
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.