A modern productivity timer with automatic face detection, Telegram notifications, and browser notifications. Track your work and rest time effortlessly.
- Automatic Face Detection: Timer starts when you're at your desk and pauses when you leave
- Work/Rest Modes: Switch between work and rest modes with customizable durations
- Smart Notifications:
- Browser notifications for timer events
- Telegram bot integration for remote notifications
- Work reminders at custom intervals
- Water break reminders
- Accurate Timer Tracking: Precise second-by-second tracking of work and rest time
- Persistent Storage: Your settings and timer data are saved locally
- Modern UI: Clean, minimalist design with dark mode support
- Real-time Status: See your current status at a glance
-
Clone and install:
npm install
-
Download face detection models (if using camera feature):
node scripts/download-models.mjs
-
Start the development server:
npm run dev
-
Open your browser: Navigate to
http://localhost:3000
If you want to use the camera-based face detection feature:
node scripts/download-models.mjsOr manually download from: https://github.com/vladmandic/face-api/tree/master/model
- Create a bot with @BotFather
- Get your bot token
- Get your chat ID from
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - Enter both in the app settings
- Work: Start tracking work time
- Rest: Start tracking rest time
- Pause/Resume: Pause or resume the current timer
- Reset: Reset all timers to zero
- Work/Rest Duration: Get notified when work/rest time is complete - you manually switch when ready (0 = disabled)
- Timer Reminder: Get periodic reminders during work sessions (0 = disabled)
- Water Reminder: Stay hydrated with periodic reminders (0 = disabled)
- Use Camera: Enable automatic face detection tracking
- Manual Mode (Camera OFF): Click Work/Rest to start tracking
- Automatic Mode (Camera ON): Timer starts when your face is detected and pauses when you leave
W- Switch to Work modeR- Switch to Rest modePorSpace- Pause/Resume timerShift + R- Reset all timers
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS v4 - Styling
- Zustand - State management
- face-api.js - Face detection
- shadcn/ui - UI components
The app may request:
- Camera: For face detection (only if enabled)
- Notifications: For browser notifications
Deploy to Vercel with one click:
npm run buildOr use the Vercel CLI:
vercel- All data is stored locally in your browser
- Camera feed is processed locally and never uploaded
- Telegram notifications only sent if you configure them
- Make sure you've downloaded the models:
node scripts/download-models.mjs - Check browser console for errors
- Ensure camera permissions are granted
- Check browser notification permissions
- For Telegram: Verify bot token and chat ID are correct
- Check browser console for errors
- Make sure JavaScript is enabled
- Try refreshing the page
MIT