[Unit] Description=Herdr headless server (terminal multiplexer for coding agents) Documentation=https://herdr.dev/docs/ After=network-online.target Wants=network-online.target [Service] # Reads $HOME/.local/bin/herdr; the resolver in fleet_herdr expects this path. ExecStart=%h/.local/bin/herdr server # Herdr's socket lives under ~/.config/herdr/herdr.sock — the daemon # creates its own state dir, no need to pre-provision anything. Restart=on-failure RestartSec=5 # 24 hours between restart bursts so a crashing binary doesn't hot-loop. StartLimitIntervalSec=86400 StartLimitBurst=8 # Herdr owns its own logs (~/.config/herdr/herdr-server.log); systemd # journal captures anything that escapes. StandardOutput=journal StandardError=journal [Install] # WantedBy=default.target for user units — no wants for multi-user.target. WantedBy=default.target