Skip to content

Development

Tools, libraries, languages and environments for building Pebble watchfaces and apps.

Pebble Platforms

The SDK refers to each watch by its platform codename.

Watch Platform
Pebble (Classic), Pebble Steel aplite
Pebble Time, Pebble Time Steel basalt
Pebble Time Round chalk
Pebble 2 diorite
Pebble Time 2 emery
Pebble 2 Duo flint
Pebble Round 2 gabbro

General

  • PebbleKit.ts - A modern Pebble app boilerplate using TypeScript by @jccit
  • microPebble - An open source Pebble companion app based on the libpebble3 by @matejdro.
  • Better Pebble Emulator - A Pebble emulator for Ubuntu and Debian.
  • PebbleGL - OpenGL for Pebble. Uses minimal OpenGL engine (miniGL) for rendering a 3D world on the Pebble Smartwatch.

Development Environments & Build Tools

Languages & Frameworks

Libraries

Integrations & Utilities

Hacking & Reverse Engineering

  • rockgarden - Patch and modify existing watchfaces and apps (maintained fork of cpfair/rockgarden).
  • sand - Remix existing Pebble apps.
  • pebble-pyrite - Utilities for working with Pebble app resources.
  • pebble_patch_tts - Patch voice dictation to remove punctuation. Uses rockgarden.
  • pebble-autoconfig - Generate configuration pages, handy for recreating config pages that have gone offline.
  • radare2 - Reverse engineering framework with support for Pebble apps. See this guide.

Tips

  • PBW files are ZIP files. You can unzip a .pbw, edit its JavaScript (e.g. to fix a dead settings page or weather API), and zip it back up. No checksums or manifest changes are needed.
  • View logs from a real watch. Enable Developer Mode in the Pebble app, then run pebble logs --phone <PHONE_IP> to see logs from both C and JavaScript code.
  • Emulator hung? Run pebble kill, stop any remaining emulator processes, then run pebble wipe.
  • SDK versions. Use SDK 4.x. SDK 3.x can still build apps that run on firmware 4.x. SDK 2 has incompatibilities with SDK 1, and SDK 1 should not be used.
  • Look for unmerged fixes. Some tool fixes only exist as open pull requests, e.g. pebble-tool PRs (such as logging on Windows) and Clay PRs (such as Clay config working in the emulator with a modern browser). Rebble's Clay fork is active again and published as @rebble/clay.
  • Download a PBW from the Rebble store. Add ?dev_settings=true to an app's Rebble store URL to get a download link for its PBW in your browser.

Talks & Guides