Pomodoro timer
Focus for twenty-five minutes, break for five, and let the timer keep the count. It stays accurate while the tab is in the background, tells you the clock time each phase ends at, and keeps today's blocks here rather than behind an account.
Pick an interval, press start, and take the break when it rings.
25:00
Focus
Press Start and the finish time appears here.
Nothing on the list. The timer works without one, and a named task just puts the blocks you spend against it.
Settings
| Key | What it does |
|---|---|
| Space | Start, or pause |
| R | Reset the phase you are in |
| S | Skip to the next phase |
| 123 | Focus, short break, long break |
| F | Full screen |
| Esc | Leave full screen |
The timer, the task list and today's count are held in this browser and nowhere else. Nothing is sent anywhere, there is no account, and closing the tab is the only delete button any of it needs.
How to use a pomodoro timer
Pick an interval
The chips carry 25/5, 50/10, 52/17, 90/20 and 15/3. Or type your own focus, break and long-break lengths in the settings.
Press Start, or the space bar
The ring empties from the top and the line under it names the clock time this phase ends at.
Take the break when it rings
The block goes on the board, the next phase is loaded, and the day count moves. Nothing advances by itself unless you asked it to.
Using the pomodoro timer
Every control on the panel, what it changes, and the four things the timer will not do. The page opens on a twenty-five minute focus block with nothing running, so one press is the only step between you and a started timer.
The dial and the four buttons under it
The ring is the phase you are in, emptying from twelve o'clock. The digits inside it are the time left. The line below names the clock time this phase ends at, which is the one number a countdown never tells you and the one you actually need.
| Control | What it does |
|---|---|
| Focus / Short break / Long break | Loads that phase at its full length and stops the clock. Use it to jump straight to a break, or back, without waiting one out. |
| Start | Runs the phase. The label becomes Pause while it is running and Resume once it has been stopped part way. |
| Reset | Puts the phase you are in back to its full length. It stays running if it was running, so this is a restart rather than a stop. |
| Skip | Moves to the next phase without finishing this one. A skipped focus block advances the dots but is not added to today's count, because a block you did not sit through is not a block. |
| Full screen | Moves the panel into focus mode, where the dial is large enough to read from across a desk. Escape or Done brings it back. |
The dots, and when the long break lands
Under the buttons is a row of dots, one for each focus block before a long break, and a line naming which one you are on. It fills as you finish them and empties when the long break is taken. Set how many with Long break after in the settings.
The interval presets: 25/5, 50/10, 52/17, 90/20 and 15/3
The chips beside the dial set all four numbers at once. They are the five schedules people actually ask about, and picking one is the fastest way to try a longer block without doing arithmetic. Editing any duration by hand releases the chip, so a pressed chip always means the timer really is running that schedule.
| Preset | Focus / short / long / after | Who it suits |
|---|---|---|
| 25 / 5 | 25, 5, 15, every 4 | The original, and the right default. Short enough that starting is easy. |
| 50 / 10 | 50, 10, 30, every 2 | Work that costs something to put down. Two blocks joined, one break skipped. |
| 52 / 17 | 52, 17, 30, every 2 | The figure from DeskTime's own usage data. A longer break than most people take. |
| 90 / 20 | 90, 20, 30, every 2 | One ultradian cycle. Only workable if nothing interrupts you for an hour and a half. |
| 15 / 3 | 15, 3, 12, every 4 | Starting when starting is the hard part, and the shape most often suggested for ADHD. |
Which one is right is a longer answer than a tool page should give, and it is the guide beside this page.
Setting your own lengths
Open Settings and the four numbers are typed directly. Focus takes anything from 1 to 180 minutes, the short break up to 60, the long break up to 120, and the long-break interval from 2 to 12 blocks. Change the length of the phase you are in while it is running and the deadline moves with it, so lengthening a block mid-flow does not restart it.
Just want a 25 minute timer?
Then you are already done. Press Start and ignore everything else on the panel. With both auto-start toggles off, nothing advances on its own: it counts twenty-five minutes, rings, and waits. Type a different number into Focus and it is a timer for that instead.
Starting the next phase without touching anything
Two toggles, and they are separate on purpose. Most people want a break to begin on its own and want to decide themselves when the next block of work starts.
| Toggle | What it changes |
|---|---|
| Start breaks automatically | A finished focus block rolls straight into its break. Off by default, because a break that starts while you finish a sentence is a break you spend three minutes of. |
| Start the next focus automatically | A finished break rolls straight back into work. Useful for a long stretch. It means a break you overrun eats into the next block rather than waiting for you. |
| Countdown in the tab title | Puts the remaining time and the phase in the browser tab, so a pinned tab is a readable timer. On by default. Off restores the page title. |
The alarm, and why it is not an audio file
The five tones are generated in your browser rather than downloaded, so the page opens no connection to play a ding and works with the network off. Test plays the current one at the current volume, which is the only sane way to pick between them.
| Setting | What it does |
|---|---|
| Alarm | Chime, Bell, Beep, Wood block or Silent. Silent leaves the tab title, the dial and the notification doing the work. |
| Volume | Nought to a hundred per cent of your system volume. At 0 nothing is scheduled at all. |
| Enable notifications | Asks your browser for permission once, then posts a desktop notification when a phase ends. The button then reads Notifications on and disables itself. Sound plays either way. |
Keyboard shortcuts
All of them work anywhere on the page. All of them stand down while you are typing in the task box, so adding a task called "reset the staging server" does not reset the timer.
| Key | What it does |
|---|---|
| Space | Start, or pause |
| R | Reset the phase you are in |
| S | Skip to the next phase |
| 1 2 3 | Focus, short break, long break |
| F | Full screen |
| Esc | Leave full screen |
Putting blocks against a task
The list is optional and the timer never waits for it. Type a task, set how many focus blocks you think it will take, and press Add. Click a task's name to make it the one being worked on, and every focus block you finish is counted against it.
| Control | What it does |
|---|---|
| The task name | Click it to select or deselect. The selected one is highlighted and receives the blocks. Only one at a time, because you were only doing one of them. |
| The number beside it | Blocks done against blocks estimated. It crosses the task off on its own once the estimate is met. |
| The tick | Marks it finished, or reopens it. A finished task keeps its count. |
| Clear done | Removes every finished task and leaves the rest. |
What Today counts, and what it refuses to
Three numbers, held in this browser and reset at your own midnight rather than at UTC. They count only focus blocks you actually completed with the timer running.
- Focus blocks is completed focus phases. A skipped one does not count.
- Focus minutes is those blocks at the length they were set to.
- Day streak is consecutive days with at least one block. Miss a day and it goes back to zero.
The streak is the one number here that could be gamed by leaving a tab open, so it is worth saying what it is not: a measure of anything. It is a nudge, and Clear wipes all three whenever it stops being a useful one.
Why the clock is right when you come back
Browsers throttle a hidden tab's JavaScript timers to about one call a minute to save battery. A countdown that subtracts a second per tick therefore loses the time you were away and comes back reading a number that never happened. This timer stores the instant the phase ends and subtracts the current time on every paint, so nothing it displays depends on how often it was allowed to run.
The same deadline is written to your browser's storage, which is the part that actually saves a block. On 30 August 2026 we reloaded six running timers fifteen minutes into a twenty-five minute block. This one carried on at the right second. Four of the five rivals tested went back to 25:00 and lost the block. The full run is in the guide.
The alarm is handled separately, and queued on the audio clock the moment you press Start. That clock is not throttled by visibility, so on a desktop browser the sound lands on the second even with the tab hidden behind a full-screen window.
How it compares to the timers already ranking
Every one of these was opened and run on 30 August 2026. The row where this page loses is in the table too.
| Timer | Ads or promos on the timer | History without an account | Interval presets | Keyboard shortcuts |
|---|---|---|---|---|
| floi | None | Yes, kept in the browser | Five | Yes, listed in the panel |
| pomofocus.io | None | No, the report needs a sign-in | None, the numbers are typed | None documented |
| studywithme.io | An upsell panel on load, plus a Discord badge | No | None | None documented |
| pomodorotimer.online | A Discord panel over the artwork | Yes, a daily streak | None | None documented |
| tomatotimers.com | A YouTube promo bar pinned to the top | No | None | None documented |
| tomato-timer.com | An acquisition banner | Yes, a session log | None | Yes, listed on the page |
Two of them beat this page at something. pomofocus.io has Todoist and webhook integrations that this tool has no way to offer, because an integration means a server and there is not one. pomodorotimer.online has a picture-in-picture window that floats the countdown over every other app, which is genuinely useful and is on the list.
What this timer will not do
Four of them, and all four are refusals rather than gaps waiting to be filled.
- Follow you to another device. The list and the count are in this browser's storage. Syncing needs an account and a server, and this site has neither.
- Ring while your phone is locked. Both mobile browsers suspend a backgrounded page, so the sound waits for you. That is a platform limit, not a setting.
- Play music, or sit on a photograph. No lofi player and no background images. If an aesthetic timer is what you came for, studywithme.io does that well and this page will not pretend to.
- Install anything. No extension, no app. It is a static page that keeps working with the network off, so there is nothing an install would add.
Where the count goes
Nowhere. The page is a static file, the clock runs in your own tab, and there is no endpoint to send anything to. Which is also why it keeps working once the network does not.
Settings, the task list, the day's count and the running phase are written to this browser's local storage so a refresh does not lose your place. Clearing your browser data clears all of it, and the panel has its own Clear buttons.
Frequently asked questions
Does the timer keep correct time if I switch to another tab?
Yes, and it cannot do otherwise. A hidden tab has its JavaScript timers throttled to roughly one call a minute, so a countdown built by subtracting a second on every tick loses whatever the throttle swallowed. This one never subtracts. It records the wall-clock instant the phase ends and reads the difference on every paint, so the number is right the moment you come back however long you were away. Measured with the tab hidden for the first fourteen minutes of a block, it was 0 seconds out.
Will the alarm actually sound while I am in another tab?
On a desktop browser, yes. The tone is queued on the audio clock the moment you press Start, and that clock runs on the audio thread, which page visibility does not throttle. So it fires at the second the phase ends rather than at the next tick a background tab is granted. Two things break it: closing the tab, and iOS Safari, which suspends audio outright when you leave the page or lock the phone. On an iPhone leave the tab in front, or rely on the notification.
What happens if I close the tab and come back later?
You pick up where you were. The phase, the time still to run, the lengths, the list and the day's count are all written to this browser's local storage, and the clock is stored as the instant the phase ends rather than as a number of seconds, so the time that passed while the page was shut is counted properly. If the phase ran out while it was shut, the timer stops at the start of the next one and tells you how long ago the last one ended. It does not quietly roll through four sessions you were not there for, which is the only honest thing a log can do.
Can I use it as a plain 25 minute timer with no breaks?
Yes. Leave both auto-start toggles off and ignore the break tabs. Press Start, and when it rings the timer stops and waits. Nothing advances on its own unless you asked it to. If you want a length that is not on the chips, type it into Focus in the settings and it becomes the timer for anything between one minute and three hours.
Where does the task list go?
Into local storage in this browser, and nowhere else. There is no account to make and no server to sync with, so the list does not follow you to another device or another browser on the same machine. That is the trade: no sign-up, and no sync. Clearing your browser data clears it, and so does the Clear done button.
Can I leave it running on a phone and walk away?
Not reliably, and no browser timer can promise otherwise. The panel itself works fine on a phone, and the countdown is still right when you come back. What a phone will not do is ring: lock the screen or switch apps and both Safari and Chrome suspend the page, so the alarm waits for you instead of sounding. If you are going to leave the room, your phone's own clock app is the right tool for the alarm, and this page will not pretend to replace it.
Is there an extension or an app to install?
No, and there is not going to be. The page is a static file that works with the network off once it has loaded, so an extension would add an install, a permission prompt and an update channel to something that already runs. Add it to your home screen or bookmark bar and it opens as fast as anything installed would.