Skip to main content

QT Android Remote

QT Android Remote Logo

A desktop remote control application for Android TV devices using direct connection via the androidtvremote2 protocol.

Screenshot

QT Android Remote Application Screenshot

Features

  • Direct Connection: Connect directly to Android TV devices without requiring Home Assistant
  • Device Discovery: Automatically discover Android TV devices on your network using Zeroconf
  • Pairing Wizard: Easy step-by-step pairing process with Android TV devices
  • Full Remote Control: Complete remote control functionality including:
    • D-pad navigation (arrow keys, OK button)
    • Power control
    • Volume control and mute
    • Media controls (play/pause, stop, rewind, fast forward)
    • Home and back buttons
    • App launching (YouTube, Netflix, and custom apps)
    • Text input support
  • Keyboard Shortcuts: Control your Android TV using keyboard shortcuts
  • Multiple Remotes: Manage multiple Android TV devices
  • Cross-Platform: Works on Windows, macOS, and Linux
  • System Theme Support: Automatically adapts to your system's light/dark theme

Installation

pip install qt-android-remote

From Source

  1. Clone the repository:
git clone https://github.com/dmarkey/qt-android-remote.git
cd qt-android-remote
  1. Install dependencies:
pip install -e .

Usage

Starting the Application

qt-android-remote

Or if installed from source:

python -m qt_android_remote.main

Setting Up Your First Remote

  1. Launch the application and click the "+" button to add a new remote
  2. Device Discovery:
    • Click "Scan Network" to automatically discover Android TV devices
    • Or manually enter your Android TV's IP address
  3. Connection Details: Configure the client name that will appear on your Android TV
  4. Pairing:
    • The app will connect to your Android TV and start the pairing process
    • A pairing dialog will appear on your Android TV screen
    • Enter the 6-digit pairing code shown on your TV
  5. Name Your Remote: Give your remote a descriptive name
  6. Done: Your remote is now ready to use!

Keyboard Shortcuts

  • Arrow Keys: Navigate (D-pad)
  • Enter/Space: OK/Select
  • Escape/Backspace: Back
  • Home: Home button
  • M: Menu
  • P: Power
  • +/-: Volume up/down

Supported Android TV Devices

This application works with any Android TV device that supports the Android TV Remote protocol v2, including:

  • NVIDIA SHIELD TV
  • Google Chromecast with Google TV
  • Sony Android TVs
  • Philips Android TVs
  • TCL Android TVs
  • And many more Android TV devices

Requirements

  • Python 3.10 or higher
  • PySide6
  • androidtvremote2
  • zeroconf
  • cryptography
  • protobuf

Configuration

Configuration files are stored in platform-specific locations:

  • Windows: %APPDATA%\QTAndroidRemote\
  • macOS: ~/Library/Application Support/QTAndroidRemote/
  • Linux: ~/.config/qt-android-remote/

The configuration includes:

  • remotes.json: Remote configurations
  • certs/: SSL certificates for each paired device

Troubleshooting

Cannot Discover Devices

  1. Ensure your Android TV and computer are on the same network
  2. Check that your Android TV has "Network remote control" enabled:
    • Go to Settings > Device Preferences > About > Android TV OS build
    • Click 7 times to enable Developer options
    • Go to Settings > Device Preferences > Developer options
    • Enable "Network debugging"

Pairing Issues

  1. Make sure your Android TV is turned on and connected to the network
  2. Try restarting the Android TV Remote Service:
    • Go to Settings > Apps > See all apps > Show system apps
    • Find "Android TV Remote Service"
    • Force stop and restart it
  3. Clear the Android TV Remote Service data if pairing continues to fail

Connection Problems

  1. Verify the IP address is correct
  2. Check firewall settings on both devices
  3. Ensure the Android TV Remote Service is running
  4. Try re-pairing the device

Development

Setting Up Development Environment

  1. Clone the repository:
git clone https://github.com/dmarkey/qt-android-remote.git
cd qt-android-remote
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install development dependencies:
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black qt_android_remote/

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • androidtvremote2 - The underlying Android TV remote protocol implementation
  • ha-desktop-remote - UI inspiration and design patterns
  • Google's Android TV Remote protocol documentation

Support

If you encounter any issues or have questions, please:

  1. Check the troubleshooting section
  2. Search existing GitHub issues
  3. Create a new issue with detailed information about your problem

Changelog

v1.0.0

  • Initial release
  • Direct Android TV connection support
  • Device discovery via Zeroconf
  • Complete pairing wizard
  • Full remote control functionality
  • Keyboard shortcuts
  • Multi-device support
  • Cross-platform compatibility

Metadata

Release files for qt-android-remote 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qt-android-remote 1.0.4
File Size Uploaded
qt_android_remote-1.0.4.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for qt-android-remote 1.0.4
File Interpreter ABI Platform
qt_android_remote-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 3.8 MB

Release files / qt_android_remote-1.0.4.tar.gz

Download URL qt_android_remote-1.0.4.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
5d27612ca0a75e6c1c6d03838d89b6fffd98d977b418a99a60b0c050955229b4
BLAKE2b-256 checksum
How to use checksums
d857e8a58e3af8358af2be6e332ac93cf1f2b8fe52c6de527f44cfec58045347
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.

Transparency log

Release files / qt_android_remote-1.0.4-py3-none-any.whl

Download URL qt_android_remote-1.0.4-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6476004dd00c1e8751bf5520c63bcca42d87ea9c970e8b430b9f14ba15f0a86f
BLAKE2b-256 checksum
How to use checksums
3d33004b8693fb664aa7a0d8fabff6ec00c185d43c0e91b09968b943f2528bee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page