Config reference

A brand is one config.yaml under brands/<id>/. Anything you leave out is simply off. The builder writes this file for you, and this page explains every section it writes.

brand

Identity. The id is the folder name under brands/, everything else lands on the device.

TAMAGOOSHI1 GOOSHI2 keep it alive3 gooshi.me4
  1. name the title on the boot screen
  2. mascot what the pet calls itself
  3. tagline under the name
  4. website and logo on the about screen
brand:
  id: gooshi
  name: TAMAGOOSHI
  mascot: GOOSHI
  tagline: keep it alive
  website: gooshi.me
  logo: logo.png

device

What ships in firmware. Every subsection is an enabled list plus a default, and the image only carries what the brand lists. Transport is ble: gatt.

TAMAGOOSHI GOOSHI keep it alive

Themes are palettes, and theme.custom takes your own three colors. Try one, default is slate.

The same shape covers typeface, mascot packs, games, and apps. agent: muse pairs the device with Muse, persona bakes your name into the status bar and an about screen (long-press A on home), and timezone sets the clock.

Mascots can be custom too. mascot.custom takes any transparent PNG next to the config, and the mixer builds one from parts. persona.avatar uses the same 6-expression strip. Set mascot: true to also offer it in mascot selection.

moods & alerts

Moods map metrics to the face. A rule is a condition plus a mood, the highest priority match wins, and with no match the device falls back to mascot.mood. Try one.

TAMAGOOSHI GOOSHI signups: 42

When signups drop under 100, the mood turns

device:
  moods:
    - {when: {metric: signups, op: lt, value: 100}, mood: sick, priority: 10}

Operators are lt, lte, gt, gte, eq, and ne. Alerts use the same condition but page you instead: a severity, a title, and an acknowledgement on the device.

device:
  alerts:
    - {id: cpu-high, when: {metric: cpu, op: gt, value: 90}, severity: critical, title: "CPU is pegged", source: hub}

Severities are info, warning, and critical. Ready to write yours? The builder has a form for all of this.