A cross-platform GUI remote control for Samsung Smart TVs built with Rust and Slint.
https://github.com/Codycody31/samsung-tv-remote
- Slint 66.7%
- Rust 33.3%
| src | ||
| ui | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
Samsung TV Remote
A cross-platform GUI remote control for Samsung Smart TVs built with Rust and Slint.
Features
- Automatic Discovery - Scans your network for Samsung Smart TVs using SSDP
- Manual Connection - Connect directly via IP address
- Full Remote Control - Navigation, volume, channels, media playback, and more
- App Launcher - Launch popular streaming apps (Netflix, YouTube, Prime Video, etc.)
- TLS Support - Secure connections with automatic fallback to non-TLS
- Token Persistence - Remembers authentication tokens for seamless reconnection
Screenshots
The application provides three main screens:
- Discovery Screen - Find and connect to TVs on your network
- Remote Screen - Full remote control interface with d-pad, volume, channels, media controls, number pad, and color buttons
- Apps Screen - Quick launch for popular streaming apps
Requirements
- Rust 1.70+
- A Samsung Smart TV (2016 or newer with WebSocket API support)
- TV and computer on the same network
Installation
From Source
git clone https://git.macco.dev/insidiousfiddler/samsung-tv-remote
cd samsung-tv-remote
cargo build --release
The binary will be at target/release/samsung-tv-remote.
Usage
samsung-tv-remote
First Connection
- Launch the application
- Wait for automatic discovery or enter your TV's IP manually
- Select your TV from the list
- Accept the pairing prompt on your TV - A popup will appear on the TV screen asking to allow the connection
- Once paired, the remote control interface appears
Remote Controls
| Button | Function |
|---|---|
| Power | Turn TV on/off |
| Source | Switch input source |
| Home | Samsung Smart Hub |
| D-Pad + OK | Navigation and selection |
| Back / Menu / Exit | Navigation |
| Vol +/- | Volume control |
| Mute | Toggle mute |
| CH +/- | Channel navigation |
| 0-9 | Number input |
| Play/Pause/Stop/RW/FF | Media playback |
| Red/Green/Yellow/Blue | Color function keys |
Logging
Enable debug logging with:
RUST_LOG=samsung_tv_remote=debug samsung-tv-remote
Configuration
Authentication tokens are stored in your system config directory:
- Linux:
~/.config/samsung-tv-remote/ - macOS:
~/Library/Application Support/samsung-tv-remote/ - Windows:
%APPDATA%\samsung-tv-remote\
Dependencies
- slint - Native GUI framework
- samsung_tv - Samsung TV WebSocket API client
- tokio - Async runtime
Compatibility
Tested with Samsung Smart TVs from 2016 onwards that support the WebSocket remote API. Older TVs using different protocols are not supported.
License
MIT