building-garmin-watchfaces

Develop and debug Garmin Connect IQ watch faces in Monkey C.

Updated Jun 26, 2026
One-click install
npx skills add https://github.com/wistrand/skill-building-garmin-watchfaces --skill building-garmin-watchfaces
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: building-garmin-watchfaces
Source: https://github.com/wistrand/skill-building-garmin-watchfaces/tree/main
Command: npx skills add https://github.com/wistrand/skill-building-garmin-watchfaces --skill building-garmin-watchfaces

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires python3, openssl, gio, and includes scripts (resource) and references (resource) components.

What problem does it solve?

This skill addresses the non-obvious, device-specific challenges of building Garmin Connect IQ watch faces, such as memory constraints, always-on display (AOD) burn-in rules, and cross-device font sizing.

Core Features & Use Cases

  • Device Vetting: Automatically report and assert hardware capabilities like vector font support and graphics pool size before committing to a design.
  • Performance Optimization: Guidance on per-frame budgets, caching strategies, and memory management to prevent janky redraws or crashes.
  • Workflow Automation: Includes scripts for scaffolding new projects, screenshotting simulator output, and managing sideloaded builds on physical devices.

Quick Start

Use the building-garmin-watchfaces skill to vet the venu2 device for vector font and graphics pool support.

Frequently Asked Questions about building-garmin-watchfaces

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I develop Garmin Connect IQ watch faces in Monkey C?

To develop Garmin Connect IQ watch faces in Monkey C, you can use a comprehensive framework that provides toolchain management, automated project scaffolding, and simulator-based testing workflows to streamline the development process across diverse hardware targets.

How do I check Garmin device capabilities like vector fonts and graphics pool size before designing a watch face?

Checking Garmin device capabilities like vector fonts and graphics pool size is done through device vetting, which automatically reports and asserts hardware capabilities to ensure your watch face design is compatible before committing to it.

How do I prevent janky redraws and crashes when building always-on display watch faces?

To prevent janky redraws and crashes in always-on display watch faces, you need performance optimization that includes managing per-frame budgets, utilizing caching strategies, and applying strict memory management to avoid exceeding hardware constraints.

Do I need specific dependencies to scaffold and test Monkey C watch face builds?

Scaffolding and testing Monkey C watch face builds requires specific dependencies including python3, openssl, and gio to manage the toolchain, execute automated project scaffolding scripts, and run simulator-based testing workflows.

What is the best way to automate screenshotting simulator output for Garmin watch faces?

The best way to automate screenshotting simulator output for Garmin watch faces is by using the included workflow automation scripts, which manage simulator output capture and sideloaded builds on physical devices.

Why does my Garmin watch face violate always-on display burn-in rules?

Garmin watch faces violate always-on display burn-in rules when device-specific AOD constraints are not followed, making it necessary to assess hardware capabilities and implement proper caching and display strategies before finalizing the design.