Last updated: May 13th
Looking for the PebbleOS changelog?
Need help with your new Pebble?
Check out the getting started guide
What’s new in the app
Note: releases may not be immediately available to download/install.
| May 13th, 2026 | 1.2.0.3 | Features:
- iOS: Add support for notification rules (thanks Federico!)
- Watch settings: add quick launch combo: hold up + down
- Resting heart rate on Health screen
- Android: add optional foreground service when watch connection active
- Add Gentle vibe option for alarms in watch settings (thanks cvuorinen!)
- Add support for getafix dvt2
- Add Settings -> Battery analytics screen
Fixes:
- Android: skip duplicate processing for Ring notifications
- Properly return disabled result before dictation begins when model unavailable
- Android: Allow VPN when downloading models
- Use isModelDownloaded to check for stt availability as well as in-memory loaded check
- Handle missing resources in pbw
- Android: strip more hidden characters from notifications (avoid boxes)
- Show logged-in account email in settings
- Fix pebble hearts sync when not logged into rebble
- Sync hearts after login
- Remove hearted filter, add hearted collection
- Add Android 13 health rationale activity entry
- iOS: Fix keyboard making backlight color picker unusable
- Update health-kmp library
- Health: write deep sleep periods to health connect
- Try to keep dev connection server alive
- Reorder add device menu
- Don't remove watches from firestore
- Add option to hide warnings about missing permissions
- Logout fix when user is anonymous
- Android: Fix an edge-case in PKJS local storage
- Add debug pref to disable watch settings sync
- Add Confirmation before wiping account on sign-in + unify sign-in logic between screens
- Add locker logging to catch any more login/sync bugs
- Sync all health prefs (i.e. HRM prefs) back from watch (when supported)
Index Features:
- Add Demo + FAQ to onboarding
Index Fixes:
- Use audiosession for playback on iOS
- Use simplified nenya v2 endpoint
- Use device manager abstraction for info in settings
- Require login for online agent/speech
- Hide watch scanning hint when scanning for index
- Add Hint to wake ring if it can't be found
- Fix associations bt permission wait so pair survives reinstalls
- Retry iOS bonding a few times in case of connection failure the first time
- Tix transfer notification not firing until recording present
- Use
__ instead of . as mcp separator to allow use of anthropic model
- Disable key regeneration when a key exists unless debug enabled
- More prompt engineering to try to avoid duplicate actions
- Add fake 'duration' arg to get LM to give us durations please
- Show ring serial and MAC separately in bugreport info
- Update haversine to narrow scanning + fix an edge case
- Store known rings in firestore
- Wipe recordings on first pair
- Framework for items/lists
- Nudge LM towards duration timers
- Log issues with assistant session context + inserting notes |
| --- | --- | --- |
| Apr 30th, 2026 | 1.1.0.6 | Fixes:
- Check free memory before using local transcription to try to avoid OOM native crash
- Remove BT classic text in connection UI
- Show UI warning on BT classic connection failure
- Add a link to Android BT settings dialog when we recommend unpairing
- Fix a health sync crash on iOS 15 (skip syncing sleep <16)
Index fixes:
- Add debug option to send a panic event to ring
- Redact sensitive data unless diagnostic option enabled
- Disable Krisp |
| Apr 29th, 2026 | 1.1.0.3 | Features:
- Add Contact Developer dialog on app detail page
- Enable Timeline insertion from PebbleKit2 (thanks Matejdro!)
- Add Bluetooth Classic mode on Android:
- This should be more reliable than BLE for users who have been experiencing connectivity issues (and more reliable than the existing “Prefer BT classic” setting).
- New “Add Classic Watch” option to find legacy Pebbles (using a BT classic scan)
- Existing legacy watches are converted to BT classic connections. This should “just work” - if you weren’t already using the BT classic option then it should prompt to add a BT classic pairing.
- If this fails to connect, you may need to unpair and repair the watch. This is a one-off step.
- Health: add HRM settings
- Add descriptions for many watch settings
- Add backlight intensity/colour settings, tap to backlight setting
Fixes:
- Android: fix Google Voice VoIP ("self-managed") calls (thanks leo60228!)
- Actually return pairing failure as an error
- Remove purple tint from light theme
- Only show HRM chart when watch supports HRM
- Update watch pref defaults
- iOS PKJS: fix timeout callbacks
- Show warnings on calendar screen if permissions not granted or results are empty
- Remove TODO()s from permission checker
- Improve background location reliability and respect PKJS parameters
- Make ConnectivityWatcher more robust
- Health UI: always show headers
- Health UI: sleep chart improvements
- Respect obfuscateContent toggle in PKJS console logs (thanks aveeo!)
- Minor readme update for ios health setup (thanks Federico!)
- Fix newslines + autocorrect on bug report chat screen
- Health settings UI impovements
- iOS: fix an edge-case causing calendar permission to show as not approved, right after approval
- Don't wipe locker when firestore returns an empty collections (i.e. stop wiping apps when firestore fails)
- Health UI: Update HRM chart scrubbing to find closest value
- Fix more locker sync edge-cases
- Add logging for locker bulk fetch API failures
- iOS: fix weird UI transitions on settings screen
Index Features:
- Android: Use system BT settings as source of truth for pairing
- Expose updates to devices screen
Index Fixes:
- Use ring serial for trace
- Clear paired state on start if ring forgotten while app is closed
- Handle and report various pairing states from android
- UI: consider iOS pairing fail always a case where user needs guidance because we don't get enough detail
- UI: prompt user to unpair if they try to pair another index
- Handle android cases where ring is paired by system
- Cache name of ring
- Discard ring recordings shorter than 1.5s |
| Apr 24th, 2026 | 1.0.17.4 | Features:
- Android: add calendar pin actions
- Speech: allow spoken language to be configured to influence STT output
Fixes:
- Health: fix steps sync to mobile OS
- Health: lots of chart UI fixes
- Health: allow configuring height/weight/age/gender/units
Index Fixes:
- Show Webhook setting to all users |
| Apr 24th, 2026 | 1.0.17.2 | Features:
- Health UI
Index Features:
- Pairing & device management now in main devices tab
- Onboarding screen added
- Index tab enabled when first pairing a device or when signing in with recordings on your account
Fixes:
- Removed watch theme prefs
- Changed "Show Scaled" -> "Made For.."
- Language install timeout + error display fixed
- Don't create anonymous firebase account on app start when previously signed in
- Add
mobile_version and mobile_os to heartbeat upload payload
- Show error when weather location search fails
- Fix locker sync comparing against wrong type
- Fix weather app showing all locations as current location
- Add health insights to onboarding
- Fix network crash fetching firebase token
- Android: fix an ANR
- iOS: fix another health sync crash on old iOS versions
- Add missing remember key
- Update sleep logic to match firmware
Index fixes:
- Notif shortcut options now filtered by added integrations
- Device management refactored to be more maintainable/follow libpebble3
- Search prompt+parameters tuned for lower latency
- Fixed race condition causing playback to not be available on some feed recordings
- Local model is now warmed up (in addition to loading if not loaded) during transfer start if it's been a while
- Transcription is still shown in recording details view if agent fails/will rety
- Programmed serial reading now works properly
- Recording trace offset fixed
- Race condition fixed when checking for enabled bluetooth during sync
- Add model used to assistant messages |
| Apr 20th, 2026 | 1.0.16.3 | Features:
- Android: add notification filter rules on app screen (thanks ave!)
- Store known watches in firestore
- Forward watch heartbeats to server
- Add Take Screenshot button to Bug Report screen
Fixes:
- Android: catch a health auth crash
- iOS: Potential fix for app not showing any text until restarted
- Fix voice session stuck state when watch cancels during local STT inference
- Remove old gcloud transcription code
- Android: catch security exception reading contacts
- iOS: add fallback for when background sync doesn't run (for weather updates, etc)
- Android: move notification channel items within the same object as the title (thanks ave!)
- Android: catch cactus init error
- Use rebble cohorts for core watches when no memfault token
- iOS: fix crash when firebase can't get token
- iOS: improve BgRefresh rescheduling resilience
- iOS: fix health sync crash on older iOS versions
- Android: try to fix another ANR on app start
Index Features:
- Add E2E ring recording evals
Index Fixes:
- Change userMessageId fallback to long
- Reschedule android reminder alarms after reboot
- Index: route Cloud Run service URLs through Cloudflare *.repebble.com
- Fix trace timeline showing negative offsets
- Improve Beeper messaging: search approved contacts, nicknames, confirmation UI
- Log RX RSSI to log and analytics
- Use programmed serial when available
- Fix iOS crash when signing in to Notion
- Wait for pair state to propagate before attempting to launch bg service
- Fix crash when invalid uuid is used
- Skip programming application data on fw >= 3.62 |
| Apr 14th, 2026 | 1.0.15.11 | Features:
- Add Music player settings (thanks Federico!)
- Add Notifications Mute status in UI (thanks Federico!)
- Add ja_JP language packs (thanks Jamie!)
- Add Open Google Fit link in health settings
- Sync health settings from watch to phone via BlobDB
- Android: seed watches list with previously-paired Pebbles as on-off on first run
Fixes:
- Fix onboarding only attempting FWUP once
- iOS: fix PKJS callback crash
- iOS: fix LAN dev connection crash
- Android: fix health-related crash
- Filter incompatible in store home feeds
- Fix iOS Sign button (thanks Federico!)
- Don't crash connection when sending iOS PPoG reset-on-disconnect
- Fixed parakeet model download failure case
- FW update action in phone notification navigates to UI
- Removed duplicate text on onboarding screen
- Fixed watch timezone not updating when it changed in background
- Start watchface when added from onboarding
- Only show speech recognition setting in onboarding if the watch supports it
- Remove wispr key from build config as has been handled by wispr-auth for a while
Index Features:
- Added manual retry
- Bidirectional firestore sync for feed
- Inline mic recording on feed chat bar
- Backup settings + Encrypted backups
Index Fixes:
- iOS: run notifications db listener as a bg task
- Set up pre-emptive connection immediately on scan start
- Fixed feed entry transition bug
- Converted Vermillion->Webhook integration
- M4A audio format for uploads
- Beeper contacts menu refactored & performance improved
- iOS: run pre-emptive connection in a bg task to prevent early suspend
- Save trace to firestore
- Save lifetime collection to firestore
- Fix recording audio upload sometimes being cancelled by unrelated errors |
| Apr 9th, 2026 | 1.0.15.8 | Features:
- Android: configure notification canned responses in settings (thanks ClusterM!)
- Separate screens for each settings category
- Sync quiet time motion backlight setting to watch
- Update adding devices to use FAB menu
- Google Health Connect and Apple Health sync support (thanks michaelthatsit!)
- Watch onboarding flow
Fixes:
- More robust firebase init to avoid signing users out on app start
- Android: Lazy initialize firebase to avoid ANR on app start
- Fix sending time to watch when user switches from manual to automatic
- "Support" -> "Get Help"
- Don't dismiss app update badge until update is shown
- Fix DictationResult serialization when sending UTF-8 text (thanks ClusterM!)
- Fix sendAppMessage erroring out on timeout (thanks Metejdro!)
- Handle malformed locker response/failure to fetch apps
- Check for legacy watch FWUP without login
- Attach index trace to bugreports
- Work around cactus link error crash on start
- Hide app sideloading unless debug mode
- Load store homes in parallel on locker screen
- Android: Fix CDM crash
- Skip unnecessary store calls during locker sync
- Increase MAX_LENGTH for MusicTrack to 64
- Fix CloudPebble proxy dev connection dropping and not reconnecting
- Fix requestConfigurationUrl infinite wait (thanks Matejdro!)
- Default weather units to what is configured on the phone
- Update WorkManager
- Default speech mode to offline disabled, so that user is prompted to download a model when they select an offline mode
- iOS: Use new app icon service (works when not logged in)
Index Fixes:
- Record trace of transfer->agent flow
- UI: audio-only indicator, processing animation
- Add inline mic recording to Index feed
- Add skip to next track via ring button
- Make 'Log in before pairing' button open sign-in dialog
- Provide paired ring to haversine for targeting, update haversine
- Update haversine for pre-emptive bg connection on iOS
- Use Default dispatcher for resampling work
- Android: fix AudioPlayer race condition
- iOS: fix AudioPlayer possible stale state
- UI: add trace to recording details when debug enabled
- UI: show trace items for packet rx and stt init
- Add notifications to trace
- Write whole recording buffer to disk, precompute filter bank before resampling |
(click the arrow to see) Full changelog
Want to try our cutting-edge beta mobile app?
iOS beta app: https://testflight.apple.com/join/T17YYZYq for iOS
Android beta app: https://play.google.com/apps/testing/coredevices.coreapp
What should work in the App 🤞
- Connection to Pebble Time 2, Pebble Round 2, Pebble 2 Duo, Pebble 2, Pebble Time Series (Time/Time Steel/Round), and Classic Series (OG/Steel) watches. All watches require firmware > v3.x to connect.
- PebbleKit Android apps may work (this depends on the companion app, subject to modern Android OS limitations around Broadcasts)
- Everything else you would expect!
What isn’t working or built yet 🤦
- Send Text app
- App Localization
- Calendar invite notifications
- Remote timeline pins
Important
If anything isn’t working, and it isn’t listed above as not working, please report a bug in the app! Try to connect to your watch before reporting, so that the app can fetch watch logs (cycling airplane mode on the watch if required to get it connected). We might not get back to you, but we read every report.
Known issues/bugs
- Bug reporting takes 2-3 minutes sometimes (it’s uploading a ‘coredump’ from your watch)
- Pebble 2 Duo will not keep time if you shut it down. You will need to reconnect it to your phone to get latest time.