
32×32 · Baked loopreal render
ProductivityBaked loop
Habits
Up to three daily habits with a 7-day dot row, today's tick and a streak flame.
At a glance
OutputBaked loopRendered once into a GIF that the panel loops with its own firmware: perfectly smooth, no Bluetooth traffic.
Settings8every one editable live in the studio, or by an agent with
update_app_settingsButtonsTick 1 · Tick 2 · Tick 3 · Undo laststudio buttons, or
app_action over MCPSourcehabits.pysrc/deskdot/apps/habits.py
Settings
| Setting | Type | Default | Options / range |
|---|---|---|---|
| General | |||
Habit 1habit1 | text | WATER | up to 10 characters |
Habit 2habit2 | text | READ | up to 10 characters |
Habit 3habit3Leave a name empty to hide it. | text | MOVE | up to 10 characters |
| Look | |||
Colour 1color1 | colour | #00dcff | any colour (#rrggbb) |
Colour 2color2 | colour | #ffd600 | any colour (#rrggbb) |
Colour 3color3 | colour | #00ff78 | any colour (#rrggbb) |
Streakstreak_style | choice | Flame + days | Flame + daysDays only |
Day starts at (hour)day_startsTicks before this hour count for the previous day (night owls). | whole number | 4 | 0 – 8 |
Try it
render a frame to PNG (no panel needed)
$ uv run deskdot preview habits --settings '{"streak_style":"days"}' --out habits.pngshow it on your panel (engine running)
$ curl -X POST http://127.0.0.1:8765/api/apps/habits/activateOr ask your agent: “Show Habits on my panel”. It calls show_app with "habits". New here? Set up DeskDot first.
More productivity apps

Productivity
OBS Status
LIVE/REC badges with elapsed time, current scene and dropped frames from OBS Studio.
6 settings

Productivity
QR Code
Share your Wi-Fi, a link or a note as a scannable QR code (encoder written from scratch).
9 settings

Productivity
Uptime Monitor
HTTP and TCP checks with latency sparklines, a status grid and outage alerts.
11 settings

Productivity
Active App
The app you're using right now — its real icon, a matching animation and today's focus time.
3 settings