v0.3.0

Flex Timer.
A focus timer with a randomized duration, so you can't clock-watch.

A tiny focus timer that runs for a random length within your own min/max window. A soft chirp marks the halfway tick, and a two-hoot chimp tells you time's up. No screen-watching required.

Install
Run locally
$git clone https://github.com/nimahejazi/flex-timer.git
$cd flex-timer
$npm install && npm run dev
or browse the repo
bash - flex-timer
$npm run dev
> flex-timer@0.3.0 dev
> vite
VITE v5.4.11 ready in 212 ms
➜ Local: http://localhost:5173/
➜ press h + enter to show help
$_

Try it live

Loading Flex Timer…

Engineered for Focus

Randomized duration

Each timer is a random length within your min/max window (default 11–15 min). You can't clock-watch, so you just work until the chimp hoots.

Your window, your rules

Set min/max duration, tick interval, and whether the tick chirps at all. Settings persist in your browser via localStorage.

Sound cues, no files

A periodic tick chirp during the countdown and a two-hoot chimp at zero, synthesized live with the Web Audio API. No audio downloads.

Keyboard first

Space to start or pause, S to start when stopped, C to cancel, R to restart. Hands stay on the keys.

Try it live

Nothing to install. Scroll up and press Start.

Open the timer