DeskDot Open in browser GitHub
Focus Timer running on a 32×32 LED panel
32×32 · Livereal render
ProductivityLive

Focus Timer

Pomodoro cycles, countdowns and a stopwatch. Notifies when a phase ends.

At a glance

OutputLiveRendered by the engine and streamed over Bluetooth as its data changes (about 5–9 frames a second).
Settings8every one editable live in the studio, or by an agent with update_app_settings
ButtonsStart/Pause · Reset · Skipstudio buttons, or app_action over MCP
Sourcetimer.pysrc/deskdot/apps/timer.py

Settings

Settings
SettingTypeDefaultOptions / range
ModemodechoicePomodoro
PomodoroCountdownStopwatch
Focus (min)focuswhole number251 – 180
Break (min)short_breakwhole number51 – 60
Long break (min)long_breakwhole number151 – 90
Rounds before long breakroundswhole number41 – 12
Countdown (min)countdownwhole number101 – 999
Focus colourfocus_colorcolour#ff1e5aany colour (#rrggbb)
Break colourbreak_colorcolour#00ff8cany colour (#rrggbb)

Try it

render a frame to PNG (no panel needed)
$ uv run deskdot preview timer --settings '{"mode":"countdown"}' --out timer.png
show it on your panel (engine running)
$ curl -X POST http://127.0.0.1:8765/api/apps/timer/activate

Or ask your agent: “Show Focus Timer on my panel”. It calls show_app with "timer". New here? Set up DeskDot first.

More productivity apps