Advanced Pomodoro Timer for Obsidian Dataview
A beautiful, feature-rich Pomodoro timer built entirely with Dataview JS that transforms your Obsidian workspace into a productivity powerhouse. Track your focus sessions, customize themes, and stay motivated with visual progress trackingโall without leaving your notes.
Overview
This Pomodoro timer brings the popular time management technique directly into Obsidian with a sleek, modern interface. Unlike basic timers, this implementation offers:
Seven Beautiful Themes - From minimalist to vibrant
Customizable Sound Notifications - Four distinct alert styles
Comprehensive Statistics - Track daily and total progress
Smart Auto-start - Seamless workflow automation
Flexible Storage - Choose between frontmatter or browser storage
Visual Progress Tracking - See your daily goals at a glance
Fully Responsive - Works on desktop, tablet, and mobile
Features
Core Features
| Feature | Description |
|---|---|
| Work/Break Modes | Three distinct modes: Pomodoro (25min), Short Break (5min), Long Break (15min) |
| Timer Controls | Start, Pause, Reset with intuitive controls |
| Session Tracking | Automatic logging of all completed sessions |
| Daily Statistics | Real-time tracking of todayโs pomodoros and total work time |
| Progress Visualization | Circular timer display with animated progress bar |
| Completion Alerts | Browser notifications + in-app notices |
Advanced Features
| Feature | Description |
|---|---|
| Auto-start Sessions | Automatically begin breaks after work or work after breaks |
| Long Break Interval | Configurable long break scheduling (default: every 4 pomodoros) |
| Daily Goal Tracking | Set and visualize daily pomodoro targets |
| Web Audio API Sounds | Four customizable notification sounds with volume control |
| Theme System | Seven pre-built color schemes with instant switching |
| Dual Storage Options | Save data in frontmatter (file-specific) or localStorage (global) |
| Browser Tab Updates | See remaining time in your browser tab title |
| Data Migration | Seamlessly switch between storage methods |
UI/UX Features
| Feature | Description |
|---|---|
| Animated Transitions | Smooth animations for mode switches and completions |
| Responsive Design | Mobile-optimized layout (320px+) |
| Dark Mode Support | Automatic theme adaptation |
| Accessibility | Keyboard navigation and screen reader support |
| Visual Feedback | Pulsing animations during active sessions |
| Celebration Effects | Fun animations on session completion |
| Icon Support | Integration with Obsidian Icon Folder plugin (optional) |
Installation
Prerequisites
- Dataview Plugin installed and JavaScript queries enabled
- Iconize (optional, to display Lucide icons instead of Emojis)
Step-by-Step Installation
Install Required Plugins
Settings โ Community Plugins โ Browse
Search for and install:
Dataview
Iconize (optional)
Add the Code
In your vault, add a new folder called pomodoro inside your Dataview userscripts folder (e.g. Scripts/Dataview/pomodoro) and 2 new files:
๐Vault
โโโโ๐.obsidian
โโโโ๐Scripts
โโโโ๐Dataview
โโโโ๐pomodoro
โโโโ๐view.css
โโโโ๐view.js
Create the Timer Note
- Create a new note (e.g.,
Pomodoro Timer.md) - Add the following DataviewJS Codeblock
```dataviewjs
await dv.view('pomodoro')
```
Initial Setup (Optional)
Add frontmatter to customize initial settings:
---
pomodoroData:
settings:
workDuration: 25
shortBreakDuration: 5
longBreakDuration: 15
theme: "default"
soundType: "bell"
soundVolume: 50
---
Launch
Open the note in Reading View or Live Preview to see your timer! ![]()
Basic Usage
Quick Start Guide
- Select Mode: Click โPomodoroโ for work time
- Start Timer: Hit the
Start button - Focus: Work until the timer completes
- Take a Break: Timer auto-switches to Short Break
- Repeat: Continue your productive cycle!
Mode Selection
| Mode | Duration | Purpose | Color |
|---|---|---|---|
| 25 minutes | Focused work session | Red gradient | |
| 5 minutes | Quick rest between pomodoros | Blue gradient | |
| 15 minutes | Extended rest after 4 pomodoros | Purple gradient |
Configuration Options
Timer Settings
| Setting | Default | Description |
|---|---|---|
| Work Duration | 25 min | Length of work sessions |
| Short Break | 5 min | Length of short breaks |
| Long Break | 15 min | Length of long breaks |
| Long Break Interval | 4 | Pomodoros before long break |
| Daily Goal | 8 | Target pomodoros per day |
Auto-start Options
| Setting | Default | Description |
|---|---|---|
| Auto-start Breaks | Off | Automatically begin breaks after work sessions |
| Auto-start Work | Off | Automatically begin work after break sessions |
Tip: Enable auto-start for a truly hands-off Pomodoro experience. The timer will give you a 3-second heads-up before starting.
Sound Notifications
| Sound Type | Character | Best For |
|---|---|---|
| Gentle, melodic | Quiet environments | |
| Musical, uplifting | General use | |
| Quick, attention-grabbing | Busy workspaces | |
| Sharp, modern | Tech enthusiasts |
Volume Range: 0-100% (adjustable in 1% increments)
Theme Gallery
| Theme | Vibe | Work Color | Break Colors | Best For |
|---|---|---|---|---|
| Default | Classic | Red | Blue/Purple | General productivity |
| Forest |
Natural | Green | Teal/Blue | Calm focus |
| Sunset |
Warm | Red-Orange | Orange/Purple | Creative work |
| Ocean |
Cool | Blue | Teal/Dark Blue | Deep concentration |
| Pastel |
Soft | Coral | Mint/Lavender | Gentle on eyes |
| Space |
Dark | Deep Purple | Purple/Cyan | Night owls |
| Minimal |
Simple | Charcoal | Blue/Pink | Distraction-free |
Storage Options
| Storage Type | Pros | Cons | Use Case |
|---|---|---|---|
| Frontmatter | โข File-specific data โข Version control friendly โข Syncs with vault |
โข Separate data per file โข Requires file write permissions |
Project-specific tracking |
| Browser Storage | โข Global across all files โข No file modifications โข Faster access |
โข Not synced โข Browser-dependent โข Can be cleared |
Personal desktop use |
Theme Showcase
Visual Comparison
Each theme transforms the entire timer interface:
How to Change Themes
- Click the
Settings button - Scroll to โ
Themeโ section - Click any color preview box
- Theme applies instantly!
- Hit โSaveโ to keep your choice
Best Practices
Doโs
| Practice | Benefit |
|---|---|
| Start with 6-8 pomodoros, adjust based on your rhythm and workload | |
| Stand, stretch, hydrateโbreaks are for recovery | |
| Never miss a session completion | |
| Track patterns in your productivity | |
| Your eyes will thank you after hours of work | |
| Frontmatter for project work, localStorage for personal tracking |
Donโts
| Pitfall | Solution |
|---|---|
| Breaks are essential for sustained focusโhonor them! | |
| Close distractions, use breaks for quick checks | |
| 25 minutes is scientifically optimal for focus | |
| Quality > Quantity. 8 focused pomodoros beats 15 distracted ones | |
| You might work through breaks without audio/visual cues | |
| Pick one and stick with it for consistent tracking |
Advanced Usage
Custom Workflows
The Deep Work Setup
Settings:
- Work Duration: 50 minutes
- Short Break: 10 minutes
- Long Break: 30 minutes
- Auto-start Breaks: ON
- Auto-start Work: OFF (manual restart for intentionality)
The Sprint Method
Settings:
- Work Duration: 15 minutes
- Short Break: 3 minutes
- Long Break: 15 minutes
- Long Break Interval: 3
- Auto-start Everything: ON (maximum momentum)
The Flexible Schedule
Settings:
- Work Duration: 25 minutes (standard)
- Short Break: 5 minutes
- Long Break: 20 minutes
- Storage: Frontmatter (track per project)
Understanding Statistics
Stats Dashboard Explained
| Stat | Calculation | Updates |
|---|---|---|
| Today | Completed work pomodoros since midnight | After each work session |
| Total | All-time completed work pomodoros | Cumulative, never resets |
| Time | Total work hours (work sessions only) | Excludes break time |
Progress Indicators
Daily Dots 

- Filled dots: Completed pomodoros today
- Empty dots: Remaining to reach daily goal
- Updates automatically after each work session
Session Progress Bar

- Shows current session progress
- Animates smoothly as time passes
- Resets at the start of each new session
Interface Gallery
Main Timer View
The timer features a large, easy-to-read circular display with the current mode clearly indicated:

The circle color changes with each mode. These are the colors for the default theme:
Red during work
Blue during short breaks
Purple during long breaks
Settings Modal
The settings panel is organized into clear sections:

Data Privacy & Security
What Gets Stored
Frontmatter Storage
pomodoroData:
sessions:
- mode: "work"
duration: 25
completed: true
date: "2025-11-04T10:30:00.000Z"
stats:
completedPomodoros: 145
totalWorkTime: 3625
settings: { ... }
Browser Storage (localStorage)
Same structure, stored as JSON in pomodoroTimerData key
Privacy Notes
Completely Local: All data stays on your device
No Analytics: Zero tracking or external connections
No Account Required: Works entirely offline
Credits & Acknowledgments
Built with:
- Obsidian: The extensible knowledge base
- Dataview: Powering the JavaScript functionality
- Web Audio API: For notification sounds
The Pomodoro Techniqueยฎ is a time management method developed by Francesco Cirillo in the late 1980s. This timer is an independent implementation and is not affiliated with or endorsed by Francesco Cirillo or Cirillo Consulting GmbH.
License
This code is provided as-is for personal use in Obsidian. Feel free to:
Use in your personal vault
Modify for your needs
Share with attribution
Questions? Feedback? Share your thoughts and feedback below! ![]()






