Pomodoro Session
{{ remainingDisplay }}
{{ phase }} · Round {{ roundIndex }} · {{ playing ? 'Running' : (paused ? 'Paused' : 'Idle') }} · Ends ~ {{ current_finish_time_local }}
Focus {{ focus_min }} min Short {{ short_min }} min Long {{ long_min }} min Long every {{ long_every }} Goal {{ completed_pomos }}/{{ goal_pomos }} Live Goal ETA ~ {{ goal_eta_local }}
min
min
min
focus
rounds
s
Metric Value Copy
Phase {{ phase }}
Round {{ roundIndex }}
Completed focus {{ completed_pomos }}
Elapsed (phase) {{ elapsedDisplay }}
Remaining (phase) {{ remainingDisplay }}
Ends (local) {{ current_finish_time_local || '—' }}
Next phase {{ nextPhaseLabel }}
Goal progress {{ completed_pomos }} / {{ goal_pomos }}
Goal ETA {{ goal_eta_local }}
# Phase Start Duration (min) Copy
{{ r.idx }} {{ r.phase }} {{ r.startLocal }} {{ r.durationMin }}
No upcoming phases.

                
Shortcuts: Space = Start/Pause · N = Next · S = Stop · F = Fullscreen

Introduction:

Outline clock showing a short hand and a long hand.

Pomodoro sessions are structured cycles of focused work and short breaks that support attention and recovery. They help you plan a sequence you can actually keep so your energy does not fade early.

Results show the current phase, the time remaining, the next phase, and a rolling estimate of when you will finish. You can choose durations that match your task and your day so progress feels steady rather than rushed.

A typical pattern uses twenty five minutes for focus, three to five minutes for a short break, and a longer pause after several rounds. You can set a target number of rounds and see an expected finish time that updates as you move.

For best results start with consistent lengths, keep notifications gentle, and adjust only between phases so your plan stays comparable across days. If your device sleeps the timer may pause, so enable the wake lock when you need it.

Technical Details:

The timer tracks phase time in seconds and derives readable minutes and seconds for display. It reports a simple session progress percentage for the current phase and builds a forward schedule that alternates focus and break periods based on your settings. The estimate to a goal counts remaining focus rounds and inserts the correct breaks between them.

The phase progress percentage is the fraction of elapsed seconds over the phase length, limited between zero and one and shown as a percentage with two decimals. Focus length, short break, and long break are provided in minutes and converted to seconds for timing. A long break occurs after every N completed focus rounds.

p = clamp ( selapsed stotal ,0,1) × 100 %
sfocus = focus_min×60 sshort = short_min×60 slong = long_min×60 Tcycle = N×sfocus+(N-1)×sshort+slong
Symbols and units
Symbol Meaning Unit/Datatype Source
selapsedElapsed time in the current phasesDerived
stotalTotal seconds in the current phasesInput → Derived
pPhase progress percentage%Derived
focus_minFocus lengthminInput
short_minShort break lengthminInput
long_minLong break lengthminInput
NLong break every N focus roundscountInput
TcycleTotal time for one long cyclesDerived

Worked example:

focus_min=25 short_min=5 long_min=15 N=4 Tcycle= (4×25+3×5+15)×60 =7800 s =130 min p= clamp(7501500,0,1)×100% =50%

A full long cycle totals one hundred thirty minutes; halfway through a focus phase the progress reads fifty percent.

  1. Convert minutes to seconds for phase durations.
  2. Start phase and record a high resolution timestamp.
  3. On each animation frame, compute elapsed seconds.
  4. If elapsed reaches duration, complete the phase.
  5. Choose the next phase: long break every Nth focus, else short break.
  6. For goal time, sum remaining of current phase then alternate breaks and focus until the target count is met.
Validation and bounds extracted from the UI
Field Type Min Max Step/Pattern Notes
Focus lengthnumber1step 1minutes
Short breaknumber1step 1minutes
Long breaknumber1step 1minutes
Long break everynumber2step 1focus rounds
Goal (rounds)number0step 10 disables goal
Countdown before startnumber0step 1seconds
Auto start nextbooleanplays through boundaries
Tick soundbooleanone tick each second
Beep volumenumber0100step 1percent
Beep frequencynumber100step 1Hz
Beep durationnumber40step 10milliseconds
Vibrate on changebooleandevice support varies
Prevent screen sleepbooleanrequests a screen wake lock
Desktop notificationbooleanpermission required
I/O formats
Input Accepted Families Output Encoding/Precision Rounding
Durations, toggles, goal Numbers and booleans Metrics Strings and numbers MM:SS display uses floor seconds
Schedule Start time in local format Durations rounded to two decimals (minutes)
CSV Comma separated As above
JSON Structured keys for inputs, state, schedule Exact values

Units, precision, and rounding: times are computed in seconds with integer arithmetic, phase progress shows two decimals, minutes in schedules show two decimals, and the decimal separator follows your locale for rendered times. Percentages use base ten arithmetic.

Networking and storage: processing occurs on your device. Optional features may use a notification permission, a screen wake lock, vibration, audio beeps, clipboard access, and local file downloads. No data is transmitted or stored server side.

Performance: time updates run once per animation frame; schedule generation scales linearly with the number of rows requested.

Security considerations: untrusted text is not accepted as code, and all outputs are plain text files. Clipboard and notification actions follow platform security prompts. Audio is generated locally.

Assumptions & limitations

  • Long breaks occur every Nth completed focus round; N is at least two.
  • Background tabs may throttle timers; visual updates can appear less frequent.
  • Wake lock availability varies by device and operating system.
  • Vibration is ignored on unsupported hardware.
  • Notification delivery depends on permission settings and platform policies.
  • Audio may be blocked until a user gesture enables sound.
  • Local times use your system locale and time zone.
  • Heads‑up Pausing at zero may restart the same phase if resumed immediately.
  • Changing durations mid session affects future phases, not elapsed time.
  • Copy and download actions can be blocked by restrictive browser settings.

Common edge cases

  • Non numeric input is treated as zero before clamping.
  • Negative values are clamped to zero.
  • Setting goal to zero disables goal calculations.
  • Setting volume to zero silences ticks and boundary beeps.
  • Very short beeps under forty milliseconds are lengthened to the minimum.
  • Beep frequency below one hundred hertz is raised to the minimum.
  • Hidden or minimized windows may slow the animation loop.
  • System clock changes affect displayed end times but not elapsed seconds.
  • Clipboard writes can fail without user interaction.
  • Notification permission set to denied silences future notifications.

Step‑by‑Step Guide

Pomodoro timing measures focused work and recovery breaks to plan a realistic session.

  1. Set Focus length, Short break, and Long break.
  2. Choose Long break every N focus rounds.
  3. Optionally set a Goal and a short countdown.
  4. Press Start; use Pause, Stop, or Next between phases as needed.
  5. Open Metrics, Schedule, Mix, or JSON to review and share results.
  6. Note Enable notifications or wake lock only when helpful.

Example: focus 25, short 5, long 15, long every 4, goal 4 rounds. The schedule totals about two hours with breaks.

  • Use a short three second countdown to settle in before a round begins.

FAQ

Is my data stored?

No. Timing, notifications, and exports run on your device. Nothing is sent to a server.

Clipboard and notifications require standard user permissions.
How accurate is the timer?

It uses second resolution with high resolution time for calculations. Background tabs and battery saver modes can slow visual updates on some devices.

What units are supported?

Durations are entered in minutes, countdown in seconds, and times display in your local format.

Can I use it offline?

Yes after the page loads. All timing and exports work without a connection.

Does it cost anything?

No sign up or account is required. Use is unrestricted; any site level licensing applies separately.

How do I schedule a long break?

Set “Long break every” to the number of focus rounds between long breaks. A value of four is a common starting point.

What does Goal ETA mean?

It is the estimated local time when your target number of focus rounds would conclude, including the breaks that fall between them.

Why do notifications or beeps not appear?

Check permission prompts, raise the volume above zero, and confirm sound or notifications are not muted by system settings.

Are keyboard shortcuts available?

Yes. Space to start or pause, N for Next, S for Stop, and F to toggle fullscreen.

Troubleshooting

  • Start is disabled: ensure focus length is at least one minute.
  • No sound: set volume above zero and allow audio on this site.
  • No notification: grant permission and keep the tab open.
  • No vibration: your device may not support it.
  • Copy fails: allow clipboard writes or use Download instead.
  • Clock drifts in background: enable wake lock or keep the screen active.

Advanced Tips

  • Tip Match round length to task complexity; shorter rounds help with heavy context switching.
  • Tip Use auto start for momentum on batchable tasks, pause for creative work.
  • Tip Keep beeps brief and moderate to avoid alarm fatigue.
  • Tip Set a goal that fits a fixed window such as a morning block.
  • Tip Review the schedule tab to plan a meeting around your next break.
  • Tip Adjust the long break every three or four rounds to suit workload intensity.

Glossary

Focus round
A stretch of uninterrupted work.
Short break
A brief recovery between focus rounds.
Long break
An extended recovery after several rounds.
Phase
The current state: countdown, focus, or break.
Cycle
A sequence ending with a long break.
Goal ETA
Estimated local time when the target ends.