screenlink
v0.3.0
Published
AnyDesk-style remote desktop (screen view + control) for Linux/Wayland. View & control from any OS; host on Linux.
Maintainers
Readme
screenlink
AnyDesk-style remote desktop (live screen view + mouse/keyboard control) for Linux/Wayland. One package, one command — it bundles a prebuilt native binary for every platform and runs the right one (no Go toolchain needed).
npm install -g screenlinkWhat runs where
- Host (share a screen): Linux/Wayland only — needs
xdg-desktop-portal- PipeWire + GStreamer for capture and
/dev/uinputfor control.
- PipeWire + GStreamer for capture and
- View & control a remote host: any OS (the viewer is a browser;
connectandrelayare pure Go and run on Linux, macOS, and Windows).
Use it
Share this machine's screen over the internet in one command (Linux host):
screenlink host --tunnelIt prints a public URL + password — open that in any browser, on any device, to
view and control. (Needs cloudflared
on the host. H.264 is the default and needs a Chrome/Edge viewer; pass
--codec mjpeg for any browser.)
Or go through your own relay (AnyDesk-style ID), which works from any OS:
screenlink relay --addr :9000 # on a public box
screenlink host --relay RELAY_HOST:9000 # on the Linux host
screenlink connect --relay RELAY_HOST:9000 --pin CODE <address> # on any viewerHost system requirements (Linux)
The package ships the binary and capture.py, but hosting relies on system
packages npm does not install:
- a Wayland session with
xdg-desktop-portal+pipewire - GStreamer with
pipewiresrc,x264enc+h264parse(H.264) andjpegenc(MJPEG) python3withgi(PyGObject) anddbus- write access to
/dev/uinputfor control (sudo usermod -aG input "$USER")
Viewing/relaying from macOS or Windows needs none of these.
