Getting started with Elm Pebble
Create a Pebble project in the browser, learn the Elm loop on a finished watchface template, and use the docs when you need API details.
Use the hosted IDE
The fastest way to try Elm Pebble is the hosted IDE. Sign in, create a project from a template, edit watch, protocol, and phone sources, then build and run in the emulator or debugger.
Open the IDEThe IDE includes CodeMirror editing, elmc check/compile, Pebble SDK packaging, a debugger with watch and companion state, embedded and external emulators, optional browser WASM emulation, and MCP/ACP hooks for AI tools.
Pick a project template
New projects start from working templates instead of an empty tree. Common starting points include:
- Starter — watch, protocol, and phone roots for a full app.
- Watchface tutorial complete — the weather watchface walked through in the tutorial.
- Watchfaces — digital, analog, YES, Tangram Time, and animated weather samples.
- Companion demos — phone status, weather, calendar, geolocation, storage, settings, WebSocket, and timeline APIs.
- Watch demos — accelerometer, vibes, data logging, app focus, compass, and dictation.
- Games — basic, Tiny Bird, jump'n run, and 2048 starters.
Create a project in the IDE, choose a template, then adjust Elm in watch/, protocol/, and phone/ as needed.
Learn the watchface loop
If you are new to Elm, read the guided walkthrough of the Watchface tutorial complete template. It explains model, messages, update, protocol types, the companion worker, subscriptions, view, and PebblePlatform.watchface.
Read the watchface tutorialRead the FAQBrowse package docs
Watch code uses elm-pebble/elm-watch. Companion bridge code uses elm-pebble/companion-core and elm-pebble/companion-preferences. Regular Elm packages such as elm/http belong on the phone side when the stock Elm compiler supports them.
Browse Elm Pebble package docsRun the IDE locally (optional)
You can also run the IDE yourself with Docker. From the repository root:
docker compose up -d
That starts the IDE on http://localhost:4000/projects with persistent volumes for projects, settings, and the Pebble SDK. See the repository README for PostgreSQL, external disk paths, WASM emulator runtime builds, and SDK version pins.
elm-pebble on GitHubHow the IDE is built
For architecture notes on Phoenix, LiveView, CodeMirror, elmc, the debugger, and MCP/ACP integration, see the IDE overview page.
How the elm-pebble IDE is built