explaingit

persitz/pebble-testpilot

Analysis updated 2026-05-18

6PythonAudience · developerComplexity · 4/5LicenseSetup · hard

TLDR

A CLI testing harness that installs Pebble smartwatch apps into an emulator, scripts button and touch input, and asserts on logs, screenshots, and on-screen text.

Mindmap

mindmap
  root((repo))
    What it does
      Runs app in Pebble emulator
      Scripts button and touch input
      Asserts on logs and OCR
      Live browser viewer
    Tech stack
      Python
      QEMU
      Pebble SDK
      TypeScript bridge
    Use cases
      Automated app testing
      CI acceptance runs
      AI agent driven development
    Audience
      Pebble app developers
      Coding agents
    Setup
      Debian 12 aarch64 primary
      x86_64 best effort
      Devcontainer included

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automate testing of a Pebble watch app by scripting button presses and asserting on screenshots or logs.

USE CASE 2

Run repeatable acceptance tests for a Pebble app in CI using committed JSON action scripts.

USE CASE 3

Let an AI coding agent drive a Pebble emulator to iterate on an app without a human at the keyboard.

What is it built with?

PythonQEMUPebble SDKTypeScript

How does it compare?

persitz/pebble-testpilotaclark4life/home-depot-crawlaetheria-labs1/storefront-skills
Stars666
LanguagePythonPythonPython
Last pushed2014-08-10
MaintenanceDormant
Setup difficultyhardmoderateeasy
Complexity4/52/53/5
Audiencedeveloperdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Only tested on Debian 12/aarch64 with a QEMU-based Pebble emulator, other platforms are best-effort or unsupported.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

pebble-testpilot is a testing and automation tool for developers building apps for the Pebble smartwatch. It is not itself a watch app. Instead, it is a command line tool that installs your built app, a .pbw file, into a real Pebble emulator, then lets you script button presses, touch input, and sensor events, check device logs and on-screen text, take screenshots, and watch the emulator live in a browser. The project describes itself as similar to Playwright, the web browser testing tool, but for Pebble watches. You write a JSON file listing the actions you want to run, such as launching the app, pressing a button, and taking a screenshot, and the tool replays that script and reports back structured results. The same script can be run by a person at a keyboard, by a continuous integration job, or by an AI coding agent. The supported platform is narrow and clearly stated: only the Emery watch model, Pebble Time 2, and the primary tested environment is Debian 12 on aarch64 hardware. On x86_64 Linux, the author suggests using pebble-tool's own built in emulator commands instead, since this project's own tooling is not available there. macOS and Windows are not covered at all. Interestingly, the README states plainly that this tool was built almost entirely by AI coding agents, Claude and Codex, working from human technical direction, with the human not reviewing the code line by line. Despite that, it has already been used to build and ship a real watch app called Timers, which is live on the rePebble app store and has gone through about ten released versions. Because the tool starts local processes, opens network ports, and creates and deletes files on your machine, the author recommends running it inside a container or other disposable environment, and a ready made devcontainer setup is included for that purpose. The project is released under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
Help me write a JSON action script for pebble-testpilot that launches my app, presses the select button, and takes a screenshot named after.
Prompt 2
Show me how to set up pebble-testpilot's devcontainer so I can safely run it without affecting my main machine.
Prompt 3
Explain how to use EmulatorSession directly in Python to drive one-off probes against my Pebble app.
Prompt 4
Walk me through installing pebble-tool without the pypkjs dependency on Debian 12 aarch64 for this project.

Frequently asked questions

What is pebble-testpilot?

A CLI testing harness that installs Pebble smartwatch apps into an emulator, scripts button and touch input, and asserts on logs, screenshots, and on-screen text.

What language is pebble-testpilot written in?

Mainly Python. The stack also includes Python, QEMU, Pebble SDK.

What license does pebble-testpilot use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is pebble-testpilot to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is pebble-testpilot for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.