pi-carplay brings Apple CarPlay and Android Auto to the Raspberry Pi, with support for Linux (ARM/x86) and macOS (ARM) as well. It is a standalone Electron app, optimized for embedded setups and ultra-low-resolution OEM displays.
Requirements: A Carlinkit CPC200-CCPA (wireless & wired) or CPC200-CCPW (wired only) adapter.
curl -LO https://raw.githubusercontent.com/f-io/pi-carplay/main/setup-pi.sh
sudo chmod +x setup-pi.sh
./setup-pi.shThe setup-pi.sh script performs the following tasks:
- check for required tools: curl and xdg-user-dir
- configures udev rules to ensure the proper access rights for the CarPlay dongle
- downloads the latest AppImage
- creates an autostart entry, so the application will launch automatically on boot
- creates a desktop shortcut for easy access to the application
Not actively tested on other Linux distributions.
This AppImage has been tested on Debian Trixie (13). No additional software is required — just download the -x86_64.AppImage and make it executable. Depending on your distro and how you run the app, you may need a udev rule to access the USB dongle. It presents as a composite (multi-class) USB device, and unlike single-class devices, its interfaces often require explicit permissions. The optional install script can create this rule for you.
SUBSYSTEM=="usb", ATTR{idVendor}=="1314", ATTR{idProduct}=="152*", MODE="0660", GROUP="plugdev"
chmod +x pi-carplay-*-x86_64.AppImageJust download the -arm64.dmg, open it, and drag pi-carplay.app into Applications. Then remove the Gatekeeper quarantine once and launch the app.
This step is required for all non-Apple-signed apps and future in-app updates will preserve this state.
xattr -cr /Applications/pi-carplay.appFor microphone support, please install Sound eXchange (SoX) via brew.
brew install soxMake sure the following packages and tools are installed on your system before building:
- Python 3.x (for native module builds via
node-gyp) - build-essential (Linux: includes
gcc,g++,make, etc.) - libusb-1.0-0-dev (required for
node-usb) - libudev-dev (optional but recommended for USB detection on Linux)
- fuse (required to run AppImages)
git clone --branch main --single-branch https://github.com/f-io/pi-carplay.git \
&& cd pi-carplay \
&& npm run install:clean \
&& npm run build \
&& npm run build:armLinuxProvisioning not supported. This app does not perform the Android Auto first-time provisioning/pairing flow.
Your phone must already be paired/enrolled on the dongle.
How to provision AA on the dongle:
- Use the dongle with a regular head unit or the vendor’s mobile app to add your phone once.
- After the dongle knows your phone, connect the dongle to pi-carplay — it will attach without running provisioning again.
Apple and CarPlay are trademarks of Apple Inc. Android and Android Auto are trademarks of Google LLC. This project is not affiliated with or endorsed by Apple or Google. All product names, logos, and brands are the property of their respective owners.
This project is licensed under the MIT License.




