Last updated: April 14th
Looking for the PebbleOS changelog?
Need help with your new Pebble 2 Duo?
Check out the getting started guide
What’s new in the app
Note: releases may not be immediately available to download/install.
| 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 |
| Mar 28th, 2026 | 1.0.14.8 | Fixes:
- Android PebbleKit 2: fix sendMessage cancellation handling (thanks Matejdro!)
- Fix parsing memfault chunks from datalogging payload |
| Mar 27th, 2026 | 1.0.14.7 | Fixes:
- Android: add previous process exit reason logging
- Fix another locker screen nonunique key crash
- Init libpebble on Android immediately + lazily inject properties in notification listener
- Android: preconflate kable scan results (fix ANR)
- Android: add crashlytics-ndk
- Android: potential fix for ANR on app start
- Use support webview URL from API
- Persist memfault chunks + multipart upload
Index Fixes:
- Add compound duration support to datetime parsing |
| Mar 26th, 2026 | 1.0.14.6 | Features:
- Add bug report button to screenshot dialog
- iOS: Shortcuts (notifications, quiet time, watch prefs, launch app) (thanks Federico!)
Fixes:
- Native store: show "clear filters" when search results empty
- Avoid signing users out on app start if firebase delays loading user details
- Clear deep links after they are handled
- Add last_connected_watch to firestore user object
- Add warning on Android when createBond fails
- Android: fix crash in notification apps sync
- Move AppMessage broadcasting to the CompanionAppLifecycleManager (thanks Matejdro!)
- Android: cancel PK2 send immediately on app close (thanks Matejdro!)
Index Fixes:
- Prefer feeditem timestamp for sorting (fixes crash) |
| Mar 25th, 2026 | 1.0.14.5 | Fixes:
- Android: Don't unparcel images for notification logs
- Low power mode logging/inclusion in bug reports
Index:
- Built-in reminder on iOS is now separate in settings list, called 'iOS Reminders'
- Audio processing+resampling improved: now using windowed sinc resampling, new gain control algorithm to boost quiet messages without peaking louder ones or breaking krisp
- Recording entry linked with message before LM is complete, enabling playback before thinking completes |
| Mar 23rd, 2026 | 1.0.14.4 | Features:
- Configurable fallback platform for unknown watches
- New 'parakeet' local STT model, faster and more accurate (needs download, old models don't work anymore)
Index features:
- Krisp support for ring recordings: currently only running on STT input, not what you hear (can export recording to hear it, its the one without -clean suffix)
Fixes:
- Log iOS memory warning
- Use tomorrow instead of today on tomorrow forecast
- UI: Fixed watchface title height
- Ensure bg sync state gets reset
- Fixed apple sign in failing because of expired scope
- Fix editing watch nickname
- Native store: don't show duplicates in home feed
- Add watchapp settings page may not work anymore warning
- Remove 'load to watch and' text
- Fix app reordering when view is filtered
- Fix system watchfaces always getting reset to top
- Bump bug report attachment timeout
- Send localOnly notifications for google messages
- Update timeline icon
- Clear bug report screencontext properly when making report from watch settings
- Select index/watch when creating a bug report
- Disable pairing failure analytics
- Fix crash on store collection screen
- Add Hebrew (he_IL) language pack (thanks alonmln!)
- Android: add google phone dialer icon/color (thanks KonradIT!)
Index Fixes:
- Log ring RSSI at each status change for better monitoring of RSSI issues
- Better logging around bond state for ring pairing
- Fix potential bug in settings screen toggles for analytics
- Prevent navigating back past root home screen
- Fixed iOS crash when processing with krisp
- Add hh:mm:ss timestamp to each message
- Fix iOS rssi logging
- Process recordings with limited concurrency, should reduce waiting on 'Processing...' a lot
- Use correct timestamp for queued tasks
- Handle ring entering failsafe during active transfer
- Parse e.g. '3:00PM today' datetime
- Update cactus conversation the same way as nenya
- Update conversation in IO context
- Neaten conv update cancel code
- Add 'tomorrow/this morning/afternoon/etc' to time parser
- Clean up some datetime parser logic |
| Mar 12th, 2026 | 1.0.13.4 | Features:
- Watches screen UI revamp
- Add getUtcTime message handler
Fixes:
- iOS: recreate GATT services after app is restored (trigger watch to reconnect immediately)
- Simplified STT model selection
- Fix bug reports hanging on "creating..."
- Fix settings button get squashed by long app names
- Make bug report processor more resilient to failures
- Improve locker screen isRefeshing logic to avoid stuck progress indicator
- Android: fix crash caused by invalid UUID received by PebbleKit-Android 1.0
- Android: try removing AnimatedImageDecoder on later OS versions to see it fixes memory leaks
- Fix edge-cases in log file rollover
- Fix a crash on watchapp settings screen
- iOS: fix crashes decoding invalid pebble protocol messages
- Fix firmware version displayed in scan results if any components are >127
- Fix js settings crash
- Wispr: handle expired token and attempt to refresh
- Watch screen menu theming
- Allow "move to top" to move above system apps, now that users can re-arrange those
- Android: fix crash sideloading
Index Fixes:
- Wait for conv update job to complete before continuing |
| Mar 7th, 2026 | 1.0.13.1 | Fixes:
- Cancel connection attempt when BLE connection times out (prevent hanging connection attempt in some scenarios)
- Android: fix actions when notification is replaced
- Android: release AppMessage channel immediately when PebbleKit2 app closes
- Fix displaying app settings pages served as plain text
- Android: fix call timer starting on watch when call stops before answering (thanks Shashvat) |
| Mar 6th, 2026 | 1.0.13 | Features:
- Add watchface ordering by recently used (enabled by default)
- Show watch type dropdown on store pages when no watch connected + default to Emery
Fixes:
- Don't buffer inbound AppMessages forever (fixes receiving stale AppMessages after app starts)
- Move locker pbw storage away from cache (fixes sideloaded apps failing to run)
- Fix putbytes timeouts
- Voice: cancel existing job if somehow it exists/is pending when attempting to download model
- Voice: add custom wisprflow impl
- Android BLE: try restarting android GATT server after consecutive send timeouts
- Persist filters between appstore screens
Index Fixes:
- Show firmware update in progress on pair screen
- Move 'syncing' to bottom right of feed
- Run index queue on IO dispatcher
- Add prompt for reminder permission when index enabled |
| Mar 4th, 2026 | 1.0.12 | Features:
- Updated onboarding flow
- iOS: Add support for watch timed mute options: 1 hour, Today (thanks Federico)
- Add Back+up quicklaunch setting (thanks Federico)
- Notifications add enable sort and asc/desc order (thanks Federico)
- Remove legacy appstore code
- Add pull-to-refresh to app screen
Fixes:
- Fix firebase auth flow (fixes missing dev token, users showing logged-out, ..)
- Fix crash when capabilities is null - also don't crash when similar things happen
- Fix crash on store collection screen
- Update bugreport sign in wording
- Fallback to rebble token if account null for whatever reason
- Consolidate anonymous sign-in logic
- Android: fix a crash caused by long settings URLs
Index Features:
- Support adding task/item to specific list
- Add notification shortcut
- Add number words to time parsing
- Add date parsing for explicit year w/ comma
- Add date parsing for relative months/years
- Restructure settings screen visually
Index Fixes:
- Replace iOS m4a encoder with an AudioToolbox implementation
- Fix iOS notifications + actions
- Rename send to me
- Better checking for noise: don't ignore non-latin/numbers
- Update haversine: adjusted backoff
- Handle ambiguous am/pm in time parsing
- Hide tool context when tool is disabled
- UI: show progress bar during sync
- Store clean+processed recordings in parallel
- Use newest item key instead of item count to trigger scroll
- Add RSSI to transfer events
- Check for extremely short / empty buffer before transcribing |
(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 2 Duo, Pebble 2, Pebble Time Series (Time/Time Steel/Round), and Classic Series (OG/Steel) watches. Classic Series may experience connection instability over Bluetooth LE, Android users can enable Bluetooth Classic to help with this. All watches required firmware > v3.x to connect.
- PebbleKit Android apps may work (this depends on the companion app, subject to modern Android OS limitations around Broadcasts)
- WhatsApp/Signal/etc voice call notifications on Android (from v1.0.11)
- Everything else you would expect!
What isn’t working or built yet 🤦
- Health features aren’t supported in the app, yet
- Syncing health data to Apple or Google
- Send Text app
- App Localization
- Calendar invite notifications / Calendar actions in Timeline pins
- Custom canned responses
- 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