Gravel

A de-googled, hardened fork of the Pebble companion app for de-googled phones
Repo:F-Droid Main
AppID:com.anopticlabs.gravel
Author:david-cant-code
License:GPL-3.0-only
Donation:
InRepoSince:2026-08-26
LastRepoUpdate:2026-09-16
LastAppUpdate:Unknown
LastVersion:0.3.0
Categories:Connectivity, Speech Recognizer, Sports & Health
APK source:
icon Gravel is a de-Googled, hardened fork of the Pebble mobile app by Core Devices, for Pebble and Core Devices watches on GrapheneOS, LineageOS and other phones without Google Play services or Firebase.

The watch features are here: pairing, notifications and replies, calendar, music, health, weather, watchfaces and apps, firmware updates, and voice dictation. What is gone: Play services, Firebase, telemetry, analytics and crash reporting. The battery analytics page depended on that telemetry and has no data here, and the Pebble Index 01 ring and Index AI features do not work for now.

Hardening:
- Code that watchapps run inside Gravel gets no internet or location access until you grant it, per app, so some watchfaces and apps need a grant before they work fully
- Classic PebbleKit, which broadcasts watch data to apps on your phone, is off by default; turn it on under Watch App Permissions if a companion app stops receiving watch data
- The speech engine runs in an isolated Android process
- Other exported Android interfaces are authorization-gated or removed, and plain-HTTP traffic is blocked
- Core watch firmware comes from the public PebbleOS releases and is verified before install
- App store searches are sent when you tap search, not while you type, with the search provider's analytics switched off

Dictation runs on the phone with whisper.cpp, built from source; the speech model is an optional, integrity-pinned download. You can also send dictation to your own transcription server over https. Weather locations can also be entered by latitude and longitude.

Gravel contacts the Core Devices and Rebble web services, Algolia when you search the app store, GitHub for firmware, and the model host when you download a speech model, as well as an app store source or transcription server you add yourself and any host a watchapp you grant internet access connects to.

Background location is used so location-based watchapps and weather work while the app is closed.

Gravel is not affiliated with or endorsed by Core Devices. "Pebble" and "Core Devices" are trademarks of their respective owners; Gravel is an independent fork of their GPLv3 source code.

WhatsNew:

Classic PebbleKit, which broadcasts what watchapps and watchfaces send to apps on your phone, is now off by default. If a companion app of yours stops receiving watch data, turn it back on in Settings > Apps > Watch App Permissions. PebbleKit 2 has its own switch there and is on by default. The speech engine now runs in an isolated Android process, separate from the rest of Gravel.

anti Anti-Features:
  • NonFreeNet (this application promotes/depends a non-Free network service):
    ⇒ Pairing, notifications, health sync, dictation, and firmware updates work without any of these; the watchapp store, weather, timeline, notification icons, and language packs use the Core Devices and Rebble web services, watchapp store searches are answered by Algolia, which hosts both stores' search index, and the optional speech model is downloaded from Hugging Face.
Download Source Issues ChangeLog
01.png 02.png 03.png 04.png 05.png
While you can download the APKs here directly, you should preferably use an F-Droid client so the app stays up-to-date on your device.

Packages

Version 0.3.0 (2026-09-16) no RB details available help icon

Android Versions:
  • Target: 16.0
  • MinVer: 8.0
  • ABIs: arm64-v8a, armeabi-v7a
Permissions: help icon
Features:

Download (10.2 M)

Version 0.2.0 (2026-09-09) no RB details available help icon

Version 0.1.6 (2026-08-31) no RB details available help icon