README file from
GithubGentle Pomodoro
A visually soothing, task-integrated Pomodoro timer for your daily focus work. Ambient day→night gradient instead of a ticking clock, task linking with the Tasks plugin, and Dataview-friendly daily logs.
Features
🍅 Gentle visual timer
- Ambient shape that transitions Day → Dusk → Night as the timer runs.
- Configurable focus / short break / long break durations. Classic Pomodoro: long break every 4 focus sessions (configurable).
- Overtime tracking — the timer counts up with a subtle glow after the session ends.
- Optional audio cues (war drum on start, bell/ding on finish) with a volume slider.
✅ Task integration
- Pick tasks straight from your vault. Compatible with the Tasks format:
- [ ] Task ⏳ 2025-12-23 🆔 abc123. - Smart filtering: Overdue, Today, Tomorrow, upcoming (next 3 days).
- One-click Unlink current task.
- Opt-in: increment
🍅 Non the task line each time you finish a focus session for it. Lifetime count per task; legacy🍅 N (date)markers from earlier builds are read correctly and migrate on next write.
📊 Daily focus goal
- Set a daily focus target (default 2h, set to 0 to disable).
- Status bar shows progress:
Today 1h 12m / 2h. Turns green when the goal is met. - One-time "goal hit" notice each day. Resets automatically at local midnight.
📝 Dataview-friendly daily logs
- One markdown file per day:
<folder>/YYYY-MM-DD-gentle-pomodoro-log.md. - One inline-field line per session (start, end, pauses, duration, status, type).
- Rename-safe when tasks carry
🆔— past log lines update on rename, or via theRefresh log task names by IDcommand.
🧭 Status bar
- Compact mode/time indicator with today's total focus.
- Click the dot to open the timer; click the label to toggle the time-left display.
Install
BRAT (recommended while beta)
- Install BRAT from Community Plugins.
- BRAT → Add beta plugin → paste
https://github.com/JamieStudio-lab/obsidian-gentlepomodoro. - Enable Gentle Pomodoro in Community Plugins.
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Drop them into
<vault>/.obsidian/plugins/gentle-pomo/. - Reload and enable in Community Plugins.
Configure
Settings tab (Settings → Gentle Pomodoro):
- Tasks folder path, log folder path.
- Auto-open on startup, show status bar, day/night indicator.
- Long break: duration (default 15m) and frequency (every N focus sessions, default 4).
- Daily focus goal: minutes (default 120, 0 disables) and goal-hit notice toggle.
- Task integration: increment-task-pomodoro-count-on-finish (opt-in).
In-view panel (gear icon on the timer):
- Focus / break duration.
- Sound toggle and volume slider.
- Auto-start break / auto-start focus.
Log format
Each session appends one line to the day's log file:
- 🍅 Focus | Task:: [[Projects/Docs.md|Write docs]] | ID:: abcd12 | Start:: 2025-12-23 10:00:00 | End:: 2025-12-23 10:25:00 | Scheduled:: 1500 | Pauses:: [] | Total:: 1500 | Status:: finished | Type:: focus
- ☕ Rest | Start:: 2025-12-23 10:25:00 | End:: 2025-12-23 10:30:00 | Scheduled:: 300 | Total:: 300 | Type:: short-break
- ☕ Rest | Start:: 2025-12-23 11:00:00 | End:: 2025-12-23 11:15:00 | Scheduled:: 900 | Total:: 900 | Type:: long-break
Type:: is focus | short-break | long-break. Field order is stable — safe to pin Dataview queries against it.
Commands
Open viewStart/Pause/Finish & next/Skip to nextRefresh log task names by IDShow status bar/Hide status bar
Compatible plugins
- Tasks — the task picker reads its emoji-marker format.
- Dataview — daily log lines use inline fields, ready to query.
Development
npm install
npm run dev # rollup --watch (rebuilds main.js)
npm run build # one-shot production build
npm test # vitest
npm run lint
npm run format # prettier --write .
CI on every push runs lint, format-check, tests, and build. Release tags push a GitHub Release with main.js, manifest.json, and styles.css attached.
Credits
- Ding sound — Universfield via Pixabay.
- Bell sounds — freesound_community via Pixabay.
AI disclaimer
Parts of this plugin were developed with AI assistance (Codex, Gemini, Claude). All code reviewed and tested by the maintainer before release.