---
name: timer
description: "A 5-minute countdown timer web app. Shifts green to red as it expires, then flashes red at 1 Hz and counts negative once time is up. Play/pause, reset, and +/- 10/30/60s adjust buttons. Use when the user wants a visual countdown timer, a meeting/speaking timer, a stand-up timer, or asks to open/serve the timer. Trigger words: timer, countdown, 5 minute timer, start a timer, stopwatch countdown, meeting timer, open the timer."
---

# 5-Minute Timer

A self-contained single-file web app: a 5-minute countdown that is green at the
start, sweeps through yellow to red as it runs down, and once it passes zero it
keeps counting negative while the whole background flashes red at 1 Hz.

## Run it

```bash
timer                 # serves the app on http://localhost:8741/
TIMER_PORT=9000 timer # use a different port
```

Or open `~/.local/share/adom-timer/index.html` directly in any browser — there
is no server requirement; it is pure HTML/CSS/JS.

## Controls

- **Start / Pause** — toggle the countdown (keyboard: Space).
- **Reset** — back to 5:00 (keyboard: R).
- **−60s / −30s / −10s / +10s / +30s / +60s** — adjust the remaining time on
  the fly, whether running or paused. You can add time after it's gone negative
  to bring it back into the green.

## Behavior

- Color sweeps green (5:00) → yellow → red (0:00) following the remaining time.
- Past zero it shows `-0:01`, `-0:02`, … with the page background strobing red
  at 1 Hz **while running**; pausing stops the strobe (digits stay red).
- Timing is wall-clock accurate (uses `performance.now()`), so it stays correct
  even if the browser tab is backgrounded.
