xwire

xwire

wire your screen and audio to any TV, phone or PC

“The Internet is not something that you just dump something on. It's not a big truck. It's a series of tubes.” — Ted Stevens

Linux desktop → anything. xwire captures a monitor natively (X11 → VAAPI) and streams it — video, system audio, a realtime cursor overlay — to our own receiver app on an Android TV, phone or tablet, or to a native desktop client over SSH. The remote comes back to your desktop, so the couch keyboard drives your machine. No buffering layer, no player.

Use cases

You want to… Run
mirror a monitor onto the couch TV — screen, audio and cursor, with the remote driving your desktop xwire
extend your desktop onto the TV as a real second screen xwire --extend right
extend onto a PC over SSH (no TV, no adb) xwire --ssh host
cast one file or link to the TV xcast <file|url>
serve a folder as a DLNA library for VLC xshare ~/Videos

Install

curl -fsSL https://xwire.hkroot.de/install.sh | sh

Linux only. Runs on your own Deno (installed automatically if missing) — a couple of megabytes of source, not a 100 MB binary. The installer reuses an existing install, or asks whether to use ~/.local/bin, /usr/local/bin or /usr/bin (with sudo only when it has to). Read it first — audit the script.

The suite

Binary Job
xshare serve a folder as a DLNA/UPnP media server for VLC and friends
xcast cast one file or link to an Android TV (yt-dlp + adb)
xwire stream a screen (+ audio, cursor, input) to a receiver
xwire-* satellites: xwire-list, xwire-monitors, xwire-rewire, xwire-daemon, xwire-remote, xwire-install
screens desktop app that manages screens (owns the daemon)
render desktop receiver for the xwire stream

Receiver app

The TV side is our own Android app — no Play Store, no player. xwire builds and installs it over adb, or grab it directly:

curl -fsSL https://xwire.hkroot.de/release/xwire-receiver.apk -o xwire.apk
adb install -r xwire.apk

Download xwire-receiver.apk · Android 5.0+ · debug-signed, built from the source in the source tarball. While it's open and idle it announces itself on the LAN, so xwire list and the screens app find it — and it shows its name and LAN address under the logo, so you always know where to point xwire.

Requirements

Linux with X11 (xrandr, xdotool) and PipeWire/PulseAudio (pactl), plus ffmpeg and adb for the TV path. VAAPI hardware encoding (AMD/Intel) for the smoothest stream.

FAQ

Will you support Wayland?

As a receiver, yes. As a sender — which compositor? The maintenance burden is too high, and most of the remote-control APIs are private (see KDE): they don't want something like this to exist. I'm sure they'll clone it as soon as they can — at least the KDE folks, who are genuinely top-notch! So if you're a KDE dev: let's talk alignment. But I think hacking into your system violates your own design philosophy. And the GNOME folks can go fuck themselves. :P

Windows / macOS support?

As a receiver — probably. For everything else, undecided. macOS: probably not, unless someone donates me a MacBook with 1 TB of RAM. :P