tailscale: Tailscale status & control (port of the v4 tailscale plugin)#72
tailscale: Tailscale status & control (port of the v4 tailscale plugin)#72rylos wants to merge 2 commits into
Conversation
Port of the v4 tailscale plugin to the v5 Luau plugin API, built around fast host access: /ts launcher provider (Enter copies a peer's IP, "/ts n" copies its name), a panel with online-first peer list, per-row copy/ping/SSH/exit-node actions and live filter, connect/disconnect, Taildrop receive, last-seen for offline peers, up/down shortcut, and a desktop widget. All host interaction goes through the tailscale CLI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
• 1. blocking - tailscale/service.luau:224
|
What
rylos/tailscale— Tailscale status and control, built around fast host access: see which peers are online and copy their IP or name in one gesture. A port of the v4tailscaleplugin (credited in the README, MIT) to the v5 Luau plugin API.Entries: bar widget, panel, headless poller service, up/down control-center shortcut,
/tslauncher provider, desktop widget.Highlights:
/ts <query>fuzzy-searches the tailnet and Enter copies the peer's IP (/ts ncopies its Tailscale short name); panel with online-first peer list, live filter, per-row copy IP / copy name / ping / SSH / use-as-exit-node, last-seen for offline peers, exit-node banner, Taildrop receive. Duplicate host names are disambiguated with the unique Tailscale short name.Not ported from v4: Taildrop send (the plugin API has no file picker) and multi-account switching.
Every network call, file access, and spawned process
tailscale status --json(poll),tailscale up,tailscale down,tailscale set --exit-node=<ip>/--exit-node=,tailscale ping -c 3 <ip>,tailscale file get <dir>(Taildrop receive),xdg-user-dir DOWNLOAD(resolve the default Taildrop folder),gio open/xdg-open(open the daemon's auth URL when login is required), andssh <host>launched in the user's terminal vianoctalia.runInTerminal(SSH button).tailscale file getto report exactly which files arrived. No other reads or writes.Testing
Developed and tested live on Noctalia 5.0.0_beta.3 (Arch, niri) against a real 18-peer tailnet: launcher copy flows, panel actions (copy/ping/exit node), Taildrop receive (operator mode), name-dedup, bar states, desktop widget.
noctalia plugins lint: 0 errors, 0 warnings.plugin_api = 3— no capability beyond level 3 is used.Happy to adjust anything (naming, tags, thumbnail) per review.
🤖 Generated with Claude Code