Focus Timer
Twenty-five minutes of focus, five of rest, a long break every fourth: work in short stretches, in a tab.
Runs entirely in your browser
Loading the tool…
Settings
Today
Finished focus sessions are listed here. They stay in this browser.
Press Start and work on one thing for 25 minutes. When the chime sounds, take a 5 minute break; after four rounds, a longer one of 15. The point of it is the bargain: a short stretch of full attention is easier to start than an open-ended one, and the break is guaranteed, so you stop before you are worn out rather than after.
The lengths are yours to change, 50 and 10 suits longer tasks, and the next part can start on its own or wait for you. The timer keeps time from the clock rather than by counting ticks, so it stays right in a background tab, and the time left is in the tab's title. Finished sessions are listed for the day, with what you were working on, in this browser and nowhere else.
How to use it
- Write what you are working on, if you like, and press Start.
- Work until the chime, then take the break.
- After four sessions, take the long break. Change the lengths under Settings.
Questions
Why 25 minutes of work and 5 of break?
It is long enough to get into a task and short enough to start without dread. Working in timed stretches with planned breaks, and a longer rest after every few, is a common way to keep attention up through a day of study or work.
Does it keep time if I switch tabs?
Yes. It works from the clock, not from ticks a browser may slow down in the background, so a session ends on time whatever tab you are in, and the chime and an optional notification tell you.
Can I change 25 and 5 minutes?
Yes, under Settings: any length for focus and both breaks, and how many sessions come before the long one. Many people prefer 50 minutes of focus and 10 of break for deep work.
Is anything sent anywhere?
No. The timer runs in this tab; today's list is kept in this browser's storage only.
Your data stays on your device
Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.
This page makes no requests at all, to anywhere. That is not a promise in the copy: it is a Content-Security-Policy header your browser enforces, and connect-src on it is none. Open the network tab and watch nothing happen.