Thinkers

approvedunreviewed

by Depthinker

A focus timer in the right sidebar: Pomodoro and stopwatch, a week chart and a month calendar of your focus, and a focus/rest ring for any day you pick

★ 1 stars↓ 43 downloadsUpdated 7d agoMIT

Thinkers

A focus timer for Obsidian's right sidebar, with a statistics panel beside it. Two modes — Pomodoro and stopwatch — and one thing to press. Every session is written to a plain markdown note in your vault, so the record outlives the plugin.

What it looks like

A circle with the time in the middle, and the mode written small underneath:

  • press the time to start a session, press it again to end one
  • the ring fills as the session runs
  • the mode word under the circle swaps Pomodoro for stopwatch, while nothing runs

Nothing on the panel moves when a session starts: the circle, the digits and the mode line are the same size in both states, so pressing start never shifts what you were reading.

There is no pause and no reset. A session is either running or finished and saved.

Modes

ModeBehaviour
PomodoroCounts down from the focus length, then a short break, and a long break every N rounds. Rounds can chain automatically.
StopwatchCounts up until you press the time again.

After a session

When a focus session is saved, a prompt asks what you were working on — a tag and an optional note. The session is already written to the vault when the prompt opens, so closing it without answering loses nothing. The prompt can be switched off in the settings, and both fields can be edited later from the day's record list.

Focus statistics

The panel beside the timer (ribbon icon, command, or its own tab in the sidebar) shows:

  • the current week as a bar chart, with the week's total, session count and daily average. The week starts on whichever day the settings say, the same as the calendar below it
  • the current month as a calendar, each day shaded by how much you focused
  • focus and rest totals for this week and for this month, plus today, the week, the month and your streak
  • a ring showing how one day split between focus and rest, with the ratio written under it. It describes the day selected in the calendar, which starts as today and moves every time a day is clicked

Click any day to see its sessions — start, end, duration, mode and tag — and to edit, delete or add records. Each day also has a button that opens that date's daily note, creating it from your Daily notes template if it does not exist yet.

Where your sessions go

Each session becomes a record inside one note per day:

FocusLog/2026/2026-10-02.md

The note starts with frontmatter summarising the day (focus-minutes, session-count, rest-minutes, rest-count) followed by a JSON block with the full records. Both are plain text, so you keep your data even if you uninstall the plugin. Breaks between two sessions are filled in as rest records automatically.

Deleting a rest record marks it deleted rather than dropping it from the note ("deleted": true), and it is left out of every total and list. That flag is what stops the next automatic pass from filling the same gap straight back in; delete it and the break stays deleted.

Sessions shorter than the minimum length are not saved at all.

Interrupted sessions

If Obsidian closes while the timer runs, the next start shows a recovery banner offering to continue the session, save what was counted, or discard it. Nothing is lost silently.

Commands

CommandWhat it does
Open the timerShows the timer panel in the right sidebar
Start / EndSame as pressing the time in the circle
Open focus statisticsShows the statistics panel
Open today's diaryOpens (or creates) today's daily note
Add a record manuallyBackfills a session you forgot to time

Obsidian's status bar shows the running countdown or count-up while a session is active.

Settings

GroupOptions
TimerFocus length, short break, long break, long-break interval, minimum session length, daily goal, chain rounds automatically, ask what you focused on, default mode
NotificationsSound, vibration, notices
StorageFolder for the log notes, which day the calendar week starts on, open the panel on startup
DiaryDaily note folder and date format — leave both empty to follow the core Daily notes settings

Install

Copy main.js, styles.css and manifest.json into <your vault>/.obsidian/plugins/thinkers/, then enable Thinkers in Settings → Community plugins.

Build from source

npm install
npm run build      # bundled main.js + styles.css
npm run typecheck  # tsc --noEmit

Releases

Releases are built from source by GitHub Actions, not by hand. Pushing a tag that matches the version in manifest.json runs .github/workflows/release.yml, which installs from the committed lockfile with npm ci, typechecks, builds, and attaches main.js, manifest.json and styles.css to the release. The released main.js is therefore byte-for-byte what npm ci && npm run build produces for the tagged commit.

Desktop only

The plugin is marked isDesktopOnly. It has no mobile layout.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.