Local-First & Serverless

Browse the Web Natively on Android TV

Control everything with a premium, low-latency mobile controller. Bypass casting DRM limitations and enjoy streamless performance powered entirely by your local network.

Test the Controls Live

Experience the seamless local WebSocket synchronization between the Mobile Remote and the TV client. Connect below to get started!

Connecting Remote...

TelePort TV

Connect your mobile remote to start browsing

1. Open TelePort Mobile App

2. Connect automatically on Wi-Fi or enter:

192.168.1.137
https://www.google.com
TelePort: Local-First TV Screen Control
https://github.com/ravitejakamalapuram/TelePort
A serverless ecosystem linking Android TV devices to mobile remotes using high-speed Ktor servers.
📺 VideoHub Stream Extractor
Big Buck Bunny (HD Stream Link)
Open Source Video • 4.2M views
Elephants Dream CGI Short Film
3D Animation • 1.8M views
Chromecast Testing Stream Sample
Google Stream • 820K views
NetStream Premium
Stranger Cast
The local web
Ktor Chronicles
Zero Cloud

My Website

https://example.com

Loaded inside native Android TV WebView browser. Controllable via Mobile Trackpad.

ExoPlayer Media3 (Native Cast Mode)
Big Buck Bunny (H.264 Stream)
01:14
03:40
TV Screen Mirroring (MediaProjection Active)
Connecting to TV...

Establishing local WebSocket handshake

TelePort Remote
Connect to your TV client to start controlling
OR CONNECT VIA DISCOVERY
Living Room Android TV

192.168.1.137:8080

Connect

TelePort Remote

Connected

📺 Stream detected!

Tap to play in Native Player

PLAY
Mirror Phone Screen

Cast phone display to TV

Air Mouse Mode

Move mouse by dragging/moving

TRACKPAD
Drag inside to move TV cursor
Tap to click
Local WebSocket Packet Inspector (Port 8080)
System: Awaiting connection. Select "Connect" on the phone remote.

See TelePort in Action

Watch a screen recording showing real-time mobile remote trackpad movements, gyroscope tracking, and ExoPlayer streams casting natively.

Fully Packed TV Browser Features

TelePort compiles into a single APK file that auto-detects its environment on launch to deploy either the client engine or remote controller UI.

🛡️

Native Ad & Popup Blocker

Integrated domain-based blocker intercepts ad queries and disables malicious popups inside WebView before they can disrupt navigation.

🖱️

Air Mouse Gyro Pointer

Streams pitch and yaw gyroscope sensor logs directly from your mobile device to draw a smooth, hardware-accelerated cursor on the TV WebView.

🎞️

ExoPlayer Cast Engine

Scans active pages for standard media streams (.mp4, .m3u8), intercepts URL queries, and feeds them into a fullscreen native ExoPlayer for hardware decoding.

📡

mDNS Network Discovery

Uses local network Network Service Discovery (NSD) to link controllers automatically without external cloud databases or account creation.

🔐

Zero-Cloud Security

Runs entirely on a secure local WebSocket server inside your home LAN. No information ever leaves your network. 100% serverless.

📱

Screen Mirroring

Easily mirror the mobile display directly onto the TV browser using low-latency MediaProjection API streaming across local sockets.

Local Network Socket Protocol

TelePort relies on a lightweight Kotlin Serialization Command model. The TV client spins up an embedded Ktor HTTP & WebSockets Server. The mobile remote opens a WebSocket connection using the discovered IP address and streams JSON commands directly.

This design allows sub-5ms input latency, providing a highly responsive tracking feeling matching hardware mice.

Read Privacy Policy
// Shared WebSocket Message Contracts @Serializable sealed class Command { data class OpenUrl(val url: String) : Command() data class MoveCursor(val dx: Float, val dy: Float) : Command() object Click : Command() data class Scroll(val dx: Float, val dy: Float) : Command() data class PlayStreamNatively(val streamUrl: String) : Command() data class SendText(val text: String) : Command() }

Frequently Asked Questions

Find quick resolutions for connection issues, firewall configurations, and general product questions.

Connection is established locally on your home Wi-Fi network. The Android TV app advertises a connection point using Network Service Discovery (NSD/mDNS). The phone remote automatically detects it on the same network. If mDNS is blocked by your router's security policies, you can simply scan the QR code displayed on the TV screen or enter the TV IP address manually to connect immediately.

1. Make sure both devices are on the exact same Wi-Fi SSID.
2. Verify that client-to-client isolation (AP Isolation) is disabled in your Wi-Fi router settings.
3. If discovery still fails, tap the Manual IP entry field on your phone remote and type the IP address shown on the TV pairing screen.
4. For developer emulators, make sure to configure ADB port forwarding as detailed in the project's README: adb forward tcp:8080 tcp:8080 and adb reverse tcp:8080 tcp:8080.

When browsing websites, the TV's native WebView monitors and intercepts URL resource requests. If it detects video resources (such as direct .mp4 links or HTTP Live Streaming .m3u8 playlist formats), it automatically extracts the stream URL and updates the connected phone remote. Tapping "PLAY" on the remote shuts down the WebView overlay and spins up a native Media3 ExoPlayer instance on the TV, which decodes the video directly with hardware acceleration for maximum smoothness and no frame skips.

No. TelePort is designed with absolute privacy in mind. There are zero cloud databases, analytical SDKs, or third-party ads integrated. The app does not save search terms, browsing history, or remote tracking coordinates. All communication packets flow directly between your phone and your TV over your local network and never leave your router.

Yes. Many media streaming apps block standard Chromecast casting or Miracast screen mirroring due to DRM restrictions. Since TelePort runs the browser natively on the TV device itself and only routes coordinates/input commands from the phone, DRM restrictions related to mirroring are completely bypassed, enabling you to load video players on the TV natively.