Stopwatch
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Stopwatch is a browser extension that displays a floating stopwatch with millisecond precision, lap timing, and state persistence. You can start, pause, and reset the stopwatch with simple buttons, and record lap times that are displayed in a scrollable list. The stopwatch shows elapsed time in hours, minutes, seconds, and milliseconds, updating in real time for accurate timing. The lap list records split times, allowing you to track intervals within a session. The stopwatch state (elapsed time, running status, and lap times) persists across page loads, so your timing continues even if you navigate away or refresh the page. The tool is ideal for productivity tracking, exercise intervals, presentations, cooking, sports timing, and any activity that requires precise elapsed time measurement with split tracking.
WHERE IT RUNS
Stopwatch runs on any webpage, overlaying a floating panel that does not interfere with page content. It operates entirely in your browser as a lightweight userscript, using JavaScript's Date.now() for high-precision timing. It works on any page, whether static or dynamic, with no external dependencies. All stopwatch state is stored locally using GM_setValue—no data is ever sent to any server.
HOW TO USE
After installation, open the floating panel by clicking the extension icon. The stopwatch displays "00:00.000" initially. Click the Start button to begin timing—the display updates in real time showing hours, minutes, seconds, and milliseconds. Click Pause to pause the timing, and Reset to reset the stopwatch to zero. To record a split time, click the Lap button while the stopwatch is running—the current elapsed time is saved to the lap list. The lap list shows each lap number and its split time in order. Click the "Clear Laps" button to remove all recorded laps. The stopwatch state saves automatically, so if you close the page and reopen it, the timer continues from where it left off (including laps).
REAL MECHANISM — WHY THIS WORKS
Most browser-based stopwatches use setInterval or setTimeout with a fixed interval, which can drift due to JavaScript's event loop and tab throttling. Stopwatch uses a different approach: it calculates elapsed time by storing the start timestamp (Date.now()) when the timer starts, then computing elapsed time as the difference between the current timestamp and the start timestamp on each tick. This method is inherently accurate because it relies on the system's high-resolution time rather than counting intervals. The timer updates at approximately 33ms intervals (30fps) to provide smooth millisecond display without excessive CPU usage. When paused, the elapsed time is stored and the start timestamp is reset. For lap timing, the tool simply stores the current elapsed time value at the moment the Lap button is clicked, without affecting the ongoing timing. The persistence mechanism saves the elapsed time, running status, and lap array to GM_setValue on every update and on page unload, and restores these values when the page is reloaded. If the timer was running when the page was closed, the elapsed time is calculated from the stored start timestamp to ensure accuracy. This approach ensures precise, persistent, and fully private stopwatch functionality without requiring any external services or network access.
THE PANEL
The floating panel is fully draggable and remembers its position per site, snapping to the edges of the viewport when dragged near them. You can collapse the panel to a small icon to minimize screen distraction and expand it back with a single click. The panel is resizable from the bottom-right corner, giving you more space to view laps and controls. Press the Escape key to close the panel instantly. The panel remains open across page navigation within the same domain, maintaining your current view state. All preferences—panel position and stopwatch state—are saved globally for a seamless experience.
PLEASE NOTE
Stopwatch requires the free BotGentz extension to be installed and enabled, as it relies on the cross-extension messaging API provided by BotGentz for DOM access permissions. Timer accuracy depends on the browser's JavaScript engine and may be affected by system load or tab throttling. The persistence mechanism ensures that the stopwatch continues from the correct elapsed time when the page is reopened. All stopwatch data is stored locally in your browser using GM_setValue. No timing data, lap times, or usage data are ever sent to any server. The extension does not read, store, or transmit any personal information. It only calculates and displays timing values locally at your request.