A floating, always-on-top countdown timer perfect for live streaming, events, presentations, and Pomodoro technique productivity sessions.
- Always on top - Stays visible above all other windows
- Draggable - Move it anywhere on your screen
- Transparent background - Clean text with drop shadow for visibility
- Customizable duration - Set any timer length from 1-120 minutes
- Overtime mode - Option to continue counting past 0:00 (displays in red)
- Customizable keyboard shortcuts - Configure your own hotkeys or disable them entirely
- Portable - Single .exe file, no installation required
- Self-contained - All settings stored internally, no external config files
Keep track of stream segments, break timers, or Q&A sessions with a visible countdown that won't interfere with your content.
Display time remaining for speakers, workshops, or event segments in a professional, non-intrusive way.
Perfect for productivity sessions. Set 25-minute work intervals or 5-minute breaks to maintain focus and productivity.
Any situation where you need a visible countdown - cooking, workouts, meetings, study sessions, and more.
- ▶/⏸ (Play/Pause) - Toggle timer start/pause (button changes icon based on state)
- ↺ (Reset) - Reset timer to initial duration
- ⚙ (Settings) - Open settings panel
Keyboard shortcuts are disabled by default to avoid conflicts with other applications. Enable them in Settings.
Space- Start/Pause timer (default)R- Reset timer (default)Esc- Close application (default)
Note: Keyboard shortcuts can be customized in Settings.
- Click and drag the timer display to move the window
Click the ⚙ (Settings) button to configure:
Set the default timer length in minutes (1-120 minutes).
- Default: 20 minutes
- Common presets:
- 5 min (short break)
- 15 min (quick session)
- 20 min (default)
- 25 min (Pomodoro work session)
- 45-60 min (long work session)
Controls what happens when the timer reaches 0:00.
- Enabled (checked): Timer continues past 0:00, displaying negative time in red. Useful for knowing how far over time you've gone.
- Disabled (unchecked): Timer stops at exactly 0:00 and automatically pauses. Useful for strict time limits.
Keyboard shortcuts are disabled by default to avoid conflicts with other applications. Enable and customize them here.
- Enable Keyboard Shortcuts: Toggle to enable or disable all hotkeys (default: disabled)
- Start/Pause Key: Customize the key to start/pause the timer (default: Space)
- Reset Key: Customize the key to reset the timer (default: r)
- Close App Key: Customize the key to close the application (default: Escape)
Examples of custom keys: Enter, Tab, F1-F12, a-z, 0-9, ArrowUp, ArrowDown, etc.
Note: Settings are saved automatically and persist between sessions.
- Node.js (v16 or later)
- npm
npm installnpm startnpm run buildThis creates a portable .exe file in the dist folder:
- Location:
dist/StayOnTime-Portable.exe - Size: ~150-200 MB (includes Electron runtime)
- Portable: Single file, runs on any Windows PC without installation
- No dependencies: Everything is bundled in the .exe
- Framework: Electron
- Languages: HTML, CSS, JavaScript
- Platform: Windows (64-bit)
- Settings Storage: localStorage (internal to the app)
- Window: Frameless, transparent, always-on-top
MIT License - Feel free to use, modify, and distribute.
- Position the timer in a corner or edge of your screen where it won't obstruct content
- For streaming, use OBS Window Capture to include the timer in your stream
- The red overtime color provides a clear visual indicator when time is up
- Use 25/5 minute intervals for classic Pomodoro technique (25 min work, 5 min break)
