Skip to main content
Version: 2.8

CarPlay

The app supports Apple CarPlay for hands-free mesh messaging while driving. The CarPlay interface integrates with the iOS messaging system and Siri so that users can send and receive Meshtastic messages without looking at their phone.

Requirements​

  • iPhone running iOS 18 or later
  • A supported CarPlay head unit or the CarPlay Simulator in Xcode
  • A Meshtastic device connected via Bluetooth, TCPTCP (Transmission Control Protocol). One of the three ways a client reaches a node, alongside serial and Bluetooth. Clients connect over TCP on port 4403., or serial
  • Siri enabled — the app requests Siri authorization during onboarding and again on subsequent launches

Interface​

The CarPlay screen presents a two-tab interface:

TabDescription
ChannelsLists all active mesh channels
Direct MessagesDirect MessageA message sent to one node rather than broadcast to a channel. It's encrypted with a key that only the sender and the recipient can compute, so other nodes can relay it but can't read it.Lists recent and favorite contacts

When no Meshtastic device is connected, both tabs show a "Not Connected" status item with a prompt to open the Meshtastic app.

Channels Tab​

Each channel row shows:

  • The channel name (or "Primary ChannelPrimary ChannelThe channel used for a node's default traffic and its name in the mesh. It's channel 0, and its name helps set the node's frequency slot." for index 0)
  • An unread message badge when there are unread messages
  • "Primary" or "Ch N" as detail text

Tapping a channel row starts a Siri compose session for that channel.

Direct Messages Tab​

The Direct MessagesDirect MessageA message sent to one node rather than broadcast to a channel. It's encrypted with a key that only the sender and the recipient can compute, so other nodes can relay it but can't read it. tab is divided into two sections:

  • Favorites — Nodes marked as favorites, sorted by last heard
  • Recent — All other messageable contacts with history, sorted by last heard (capped at 24 entries)

Each contact row shows:

  • Contact name and a person icon
  • Unread message count when applicable
  • Time since last heard (e.g., "Just now", "5m ago", "2h ago", "3d ago")

Siri Voice Commands​

Use these Siri voice commands in CarPlay to interact with Meshtastic:

Voice CommandExample PhraseDescription
Send Message"Send a message on Meshtastic"Composes and sends a text message to a contact or channel
Search Messages"Search Meshtastic messages"Searches message history
Mark as Read"Mark Meshtastic message as read"Marks a conversation as read

Warning — Message Limits: Messages are limited to 200 bytes (UTF-8). Siri will not send messages that exceed this limit. Only a single recipient per message is supported — no group direct messagesDirect MessageA message sent to one node rather than broadcast to a channel. It's encrypted with a key that only the sender and the recipient can compute, so other nodes can relay it but can't read it.. Emoji-only messages and admin messages are excluded from CarPlay.

Incoming Message Announcements​

When CarPlay is connected and Announce Notifications is enabled in iOS Settings → Siri, Siri reads incoming Meshtastic messages aloud. Only non-emoji, non-admin text messages trigger announcements.

Up to 50 unread messages that arrived before the CarPlay session started are donated to Siri at connection time so they can be read back on demand.

After Siri reads messages aloud, they are automatically marked as read so they no longer appear as unread in the app or in future CarPlay sessions.

Live Activity​

When a Meshtastic device connects during a CarPlay session and no Live Activity is running, a mesh status Live Activity starts automatically (iOS only, not available on macOS). It shows the connection, nodes online, unread messages and the radio's battery. On iOS 26 it appears on the CarPlay Dashboard as well as the Lock Screen and Dynamic Island.

When CarPlay disconnects, the Live Activity it started ends. A Live Activity you started yourself — mesh status or tracking a node — keeps running. See Live Activity.

Tip — For implementation details and component architecture, see the CarPlay Developer Guide.