A console-style home launcher for Android that feels like a handheld gaming PC's game mode. It is controller first, works with touch, and runs full screen in landscape.
- Home. The games you played last lead the screen, and the focused game's colours tint the background. Shelves below hold favorites, your games, emulators and game hubs, and apps.
- Library. Tabs for all games, favorites, emulators and hubs, apps and hidden items, switched with the shoulder buttons.
- Game page. Play, favorite, hide, mark as game or app, app info and uninstall.
- Main menu on Start and Quick Access on Select: Wi-Fi, Bluetooth, brightness, volume, battery and settings.
- Games from other apps. When GameNative, GameHub, an emulator or any other app uses "Add to home screen", the game appears in your library. Browser shortcuts go to Apps instead.
- Automatic sorting. Android games are recognised from their app category, and known emulators and game hubs get their own shelf.
- Covers without internet. Each cover is built from the app's icon and colours, or from its TV banner if it ships one. Nothing is downloaded.
| Game page | Library |
|---|---|
![]() |
![]() |
| Main menu | Quick Access |
![]() |
![]() |
- Download the APK from the latest release.
- Open it on your phone and allow your browser or file manager to install apps.
- Press Home and choose Couch → Always.
To go back to your usual launcher, open the main menu and pick Switch to Android home.
For the brightness slider, tap Allow brightness control once in Quick Access.
Requires Android 10 or newer.
| Button | Action |
|---|---|
| A | Select / open |
| B | Back, close menus |
| X | Game page |
| Y | Add to or remove from favorites |
| L1 / R1 | Previous / next library tab |
| Start | Main menu |
| Select | Quick Access |
The button hints at the bottom of the screen are also touch targets.
Requires JDK 17 and the Android SDK (platform 37).
./gradlew testDebugUnitTest # unit and UI tests (Robolectric)
./gradlew assembleDebug # app/build/outputs/apk/debug/app-debug.apkRelease builds are signed when a signing.properties file exists in the
project root:
storeFile=/path/to/keystore.jks
storePassword=...
keyAlias=...
keyPassword=...| Path | Contents |
|---|---|
app/src/main/kotlin/app/couch/launcher/domain |
Pure logic: game detection, library tabs and shelves, navigation, controller mapping |
.../data |
Installed apps and shortcuts, artwork, saved preferences, system status |
.../ui |
Compose screens and components |
MIT, see LICENSE.
The bundled Figtree font is licensed
under the SIL Open Font License 1.1 (app/src/main/assets/licenses).
Couch is an independent project. It is not affiliated with, endorsed by or connected to Valve Corporation or Steam. All trademarks belong to their owners.




