couch.

Linux for your
universal remote.

Control lights, media players, TVs,
and receivers from one remote.

Couch replaces Android on the HA100 with a custom Linux kernel, Rust integrations, and a Slint touchscreen interface.

PRERELEASE Installs, backs up Android, and restores stock Android over Wi-Fi. Hardware validation is ongoing on development units.

Interactive demo

The remote’s own interface, compiled to WebAssembly. About 13 MB.

WORKS WITH

THE CODEBASE

A dedicated Linux stack.

Couch runs the remote’s UI and device clients directly on Linux. It does not load Android’s application framework, runtime, or system apps. That gives us control over the drivers, input handling, and display behavior this hardware needs.

Custom kernel

Built from source for the HA100’s display, touchscreen, keypad, Wi-Fi, Bluetooth, motion sensor, and built-in IR transmitter. Driver fixes and wake behavior live in our codebase, so they can be tested and improved without waiting for a vendor firmware update.

Browse the kernel source

Rust

Native device clients and the configuration service share typed models. Rust’s ownership checks help catch memory errors at compile time, without a garbage collector. Integrations and control logic can be tested independently of the screen.

Browse the Rust clients

Slint

A declarative UI compiled into the native remote application. Couch renders directly to the framebuffer and reads physical input events, with no browser or Android UI layer on the device. The interface is tailored to its 480 × 800 screen and buttons.

Browse the Slint interface

FEATURES

Remote features.

Screenshots & button guides →

01

Physical controls

Use the D-pad, volume, playback, and other hardware keys to control devices. Assign activity buttons to device commands, including supported long presses.

02

Rooms and activities

Group devices into rooms, recall Hue scenes, and configure activities. Dedicated media and TV screens keep playback controls and device options close.

03

Web configuration

Add connections, arrange rooms and areas, and edit button mappings in your browser. Attach IR commands to existing devices, and change the accent color and remote settings there too.

04

Built-in infrared

Add IR commands to a network device or create an IR-only device. Infrared setup →

05

Sleep and wake

The side power button sleeps and wakes the remote. The keypad power button controls your TV or activity. Room and device screens dim when idle, and lift wake is supported.

PROJECT STATUS

Prerelease.

The OS and integrations run on development hardware, and the installer has completed end-to-end installs from stock Android and back. Releases are published as pinned GitHub prereleases with corresponding source; hardware validation continues on development units. The application and kernel repositories contain the source, build instructions, and current development notes.

Most of Couch can be worked on without owning the remote. Contributing says what builds and tests on an ordinary machine, and the client SDK guide is the concrete path for adding support for a device you own.

BEFORE YOU INSTALL

What you need.

The remote

Couch runs on one device, the Sanytron Astrion HA100. Search for that model name; this project sells no hardware and links no shop. Buy one that still runs its stock Android software and can enable USB debugging in its settings, because that is what the installer attaches to and what it backs up before writing anything.

A computer to install from

Linux x64, an Intel or Apple Silicon Mac, or Windows x64. Linux ARM64 and Windows ARM are not supported by these launchers. Linux and macOS need curl and sha256sum or shasum; Windows needs PowerShell 5.1 or later. ADB, Python, the MediaTek adapter and libusb are downloaded and verified by the installer itself, so nothing else has to be installed first.

Cable, network and disk space

A USB data cable, an interactive terminal, internet access, and a Wi-Fi network the remote can see: enrolment goes over USB and the large transfers go over Wi-Fi. Leave room for the downloads and the backups, and keep the saved session folder afterwards. It is what reinstalls Couch or puts stock Android back.

The installer guide has the full prerequisites, the USB permission notes for each system, and what to do when a step stops.

INSTALL PRERELEASE

Install Couch on your HA100.

Start Android on the remote, enable USB debugging, and connect it to your computer by USB. Run the command for your system. The script verifies every download against hashes pinned inside it before anything runs, and it backs up your original Android first.

Linux & macOS

curl -fsSL https://github.com/dangerouslaser/couch/releases/download/v0.1.0-alpha.20260916.169/install.sh | sh

Windows · PowerShell

irm https://github.com/dangerouslaser/couch/releases/download/v0.1.0-alpha.20260916.169/install.ps1 | iex

Then open http://couch.local from any browser on your network. The remote starts on the software built into the OS image, so the version it shows right after installing is that image's, not the installer's: check Settings › Updates to bring it up to the current release. Prerelease under hardware validation. Release notes, other platforms & checksums