CarMirror

Your Android phone's apps on the Tesla screen. Direct over your hotspot, low lag, and built to keep playing while you drive.

Get the app Source on GitHub
A video playing full width on the car screen through CarMirror
The passenger's video, full width on the Tesla screen.

What it does

Any Android appYouTube for the passenger, navigation, music, your own apps. Pick which ones show up in the car.
FastVideo goes straight from the phone to the car over the hotspot, decoded in hardware. The server is only a fallback when the direct link fails.
Touch and typingTap and swipe on the car screen to control the phone. Type with a keyboard plugged into the car, a Bluetooth keyboard on the phone, or the on-screen keyboard. It hides by itself when a keyboard is connected.
Voice typingTap the mic on the car screen and speak: the words go into the text field you tapped.
Directions and notificationsThe next turn from your navigation app shows as a small card on the car screen, and new notifications pop up for a few seconds. Both can be turned off.
Made for drivingThe picture is drawn on a canvas, not a video player, which is what the browser blocks while the car moves.
Car-sized appsWith Shizuku running, each app gets its own screen at the Tesla's exact size, and split view for two apps side by side.
Focus modeHides the phone's status bar, navigation bar and home screen, so only the app shows.

Screenshots

What you need

Setup on the phone (once, about 5 minutes)

  1. Install the app from the download page. Your browser will ask to allow installing apps from it.
  2. Open CarMirror and follow Setup:
    • Touch from the car: Settings → Accessibility → Installed apps → CarMirror → on. If the switch is greyed out: App info → ⋮ (top right) → Allow restricted settings, then try again. (Android asks this for apps not installed from the Play Store.)
    • Open apps from the car: allow "Display over other apps".
    • Let CarMirror run in the background, so Android doesn't stop it during a drive.
    • Optional: Navigation and notifications in the car: tap Notification access and turn CarMirror on.
  3. Pick your apps in Apps in the car.
  4. Recommended: install Shizuku and start it with Wireless debugging (needs Wi-Fi, once after every phone restart). Then tap Allow in CarMirror. It turns on the car hotspot (direct link) and car-sized screens. For voice typing, also allow the mic under Voice typing from the car.
  5. Without Shizuku: allow Sound in the car, and tap Start sharing before you drive.
  6. Tip: on Samsung, a Modes & Routines rule "when connected to the car's Bluetooth → turn on hotspot" makes every drive hands-free.
The CarMirror phone app with its setup checklist and pairing code
The phone app: setup checklist and pairing code.

In the car

  1. Turn on the phone's hotspot and connect the car to it (car Wi-Fi settings).
  2. Open the car's browser at carmirror.outsmartis.dev.
  3. The first time, type the 6-digit code shown in the phone app. The car stays paired after that.
  4. Tap an app. Without Shizuku, the phone asks once per drive to share its screen: tap Start now (or tap Start sharing in the phone app before you leave).

In the car: Hide bars gives the app the whole screen, and Settings has video quality, frame rate, text size, focus mode, sound, the on-screen keyboard (Auto, On or Off), notifications and connecting through the server. Sound comes through the car's speakers via the browser, and the car's media card shows what's playing; its play, pause and skip buttons control the phone. The speaker on an app's bar mutes just that app, so music from the phone keeps playing over Bluetooth.

Typing: tap a text field on the car screen, then type on any keyboard, or tap the mic and speak. With the keyboard set to Auto, the phone's on-screen keyboard stays away while a physical keyboard is connected. Tapping the navigation card opens the navigation app.

Optional: pick the car's Bluetooth under Start with the car in the phone app, and CarMirror starts when the phone connects to the car and stops when it disconnects.

Two modes

Phone screen (default)Car-sized screens (Shizuku running)
SetupNothing extraShizuku started once after each phone restart (needs Wi-Fi)
PictureWhat the phone shows. Turn it sideways for wide apps such as YouTubeEach app at the car's exact size, no black bars
Apps at onceOneTwo, side by side (Split)
Phone screenStays on, showing the appFree, or locked in your pocket

CarMirror picks the mode by itself: car-sized screens when Shizuku is running, the phone screen otherwise.

How it works

Phone: the app encodes the picture as H.264 in hardware → WebRTC sends it directly over the hotspot (the server introduces the car and the phone, and relays only if the direct link fails) → Tesla browser: WebCodecs decodes in hardware and draws on a canvas → your taps go back the same way.

In car mode, nothing you watch goes through the server: it only handles pairing and helps the two find each other. Without car mode, or when the direct link fails, the stream is relayed through it.

Good to know

Something not working?

The car screenshots show the real CarMirror car interface. The app content in them was put together from real app screenshots for illustration (Conductore's own screenshots; a frame of Big Buck Bunny, © Blender Foundation, CC BY 3.0, standing in for a video).

CarMirror · Download · GitHub