You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On macOS, pai-sho daemon install installs a launchd service and starts it. The service creates the utun, writes /etc/resolver/pai-sho, and hands /tmp/pai-sho.sock to the logged-in user, so the commands after install need no sudo. The key is kept at /usr/local/var/pai-sho/op.key. daemon up starts the service, or restarts it when it is already loaded. daemon down stops it and leaves it stopped across a reboot. daemon remove unloads it and deletes the service files, and keeps the key. daemon status prints the job as JSON. The commands are macOS only.
Once a peer has connected, both ends dial it. Before this, only the machine that ran accept dialed, so the machine that sent the invitation could not bring the link back after a drop. Both machines need 0.5.3. An older peer still replaces its connection with any inbound one, and if both dial at once each can close the one the other kept. A dial is given 15 seconds. The wait after a failure starts at 1 second and climbs to 60.
A peer that has never connected is dialed immediately the first time. If that dial is refused, later attempts back off. Before this, a refusal left the delay at zero, so the dial ran in a loop.
Raw commits
feat: add macOS launchd commands to the daemon (2026-10-01)
fix: drop an unneeded return in tun_write (2026-10-01)
feat: both ends dial a peer they have reached (2026-09-09)
fix: back off when a peer we have never reached refuses to answer (2026-09-09)
docs: say what list's admission values mean (2026-09-04)
docs: say what the v0.5.2 timings actually measure (2026-09-04)