Rafael Mehdiyev34 downloadsTrack time spent on notes. Timer keeps running even when Obsidian is running on background.
Tracks how long you spend working on each note. The timer keeps running when you switch to another app.
![]()
Most time trackers pause the moment you leave the app. The second you flip to a browser tab to look something up, or switch to a terminal, the clock stops. That's not how working on a note actually goes.
This plugin ties time to the note you have open, not to whether Obsidian is the active window. Open a note, work on it from wherever, come back — the time accumulates. Switch to a different note and tracking moves there.
.md) and Canvas files (.canvas). Both are tracked the same way.canvas badge to distinguish them from same-named notes.(deleted) label.![]()
![]()
![]()
Search "Vault Time Tracker" in Settings → Community Plugins → Browse, install, and enable.
main.js, manifest.json, and styles.css from the latest release.<your vault>/.obsidian/plugins/vault-time-tracker/ if it doesn't exist.Sidebar — click the clock icon in the ribbon or run Open Time Tracker. The panel has three tabs: Daily, Weekly, Monthly. Each shows the notes you've worked on during that period and how long you spent on each.
Dashboard — click the table icon in the ribbon or run Open Time Tracker Dashboard. This opens as a full-width tab in the editor area. Click any column header to sort by folder, note name, or time. The Folder column and full-path tooltip on hover make it easier to distinguish notes when you have several with similar names.
Clicking any note name in either view opens that note.
![]()
Deleted notes stay in the record. Their names appear with a strikethrough and a (deleted) label so you know the note is gone but the time isn't.
![]()
| Setting | Default | What it does |
|---|---|---|
| Count time while non-note views are active | On | Keep timing the last note when you open Settings, Graph, or other non-note views. Turn off if you want the timer to stop the moment you leave an editor tab. |
| Excluded folders | — | Pick folders from a dropdown. Notes inside excluded folders are never tracked. |
| Idle detection mode | Auto | What counts as being away. Auto pauses only when your whole computer is idle, so switching to another app keeps the timer running. "Obsidian only" pauses whenever you switch to any other app. "Off" never pauses automatically. |
| Idle threshold (minutes) | 0 (off) | How many minutes of inactivity before the timer pauses. 0 means never pause. |
| Auto-save interval (seconds) | 30 | How often to write time data to disk. Lower = safer against crashes, slightly more disk I/O. |
| Week starts on | Monday | Changes the day order in the Weekly tab. |
At the bottom of the settings tab: Export JSON saves a full copy of your data to the vault root, and Clear all data wipes everything after a confirmation prompt.
All data is stored in .obsidian/plugins/vault-time-tracker/data.json inside your vault. Nothing is sent anywhere.
The file contains three things: dailyTotals (per-day, per-note totals in milliseconds — kept forever), sessions (detailed session records with start/end times, pruned after 7 days by default), and renames (a short rename log, also pruned).
powerMonitor.getSystemIdleTime() isn't available in your Obsidian build, idle detection falls back to watching activity inside Obsidian's window. Time spent in other apps will still count as active in that case.npm install
npm run dev # watch mode, rebuilds on change
npm run build # production build → main.js
npm test # unit tests
Copy main.js, manifest.json, and styles.css into your test vault's plugin folder and reload the plugin.
MIT