Checklist Timer

by Anand
5
4
3
2
1
Score: 50/100

Description

is an extension on a obsidian checklist plugin to time how long each statement takes

Reviews

No reviews yet.

Stats

0
stars
67
downloads
0
forks
25
days
3
days
10
days
25
total PRs
1
open PRs
1
closed PRs
23
merged PRs
0
total issues
0
open issues
0
closed issues
38
commits

Latest Version

10 days ago

Changelog

Checklist Timer 1.3.0

New

  • Reading-view bar chart is now on by default (#22). The output note renders a small bar next to each timed item, sized relative to the slowest one, so the bottleneck step is visible at a glance instead of by comparing HH:MM:SS values by eye. Reading view only — it does not appear in Live Preview or Source mode.
    • Existing users: there is deliberately no migration for this default flip. If you have ever changed a plugin setting, showReadingViewBarChart stays false in your vault — enable it once under Settings → Checklist Timer to get the chart. Fresh installs and never-configured vaults get it on automatically.
  • Pause / resume a running session (#20). Two new commands let you step away mid-run without that gap being charged to the in-progress item. Pause freezes the status-bar timer (⏱ → ⏸); resume folds the paused span back out. Checking off the next item while still paused counts as an implicit resume, so forgetting to resume costs nothing. Pause state is in-memory only.
  • Output-note frontmatter properties (#19). The output note now carries start, end, total, and longest as YAML properties — a first step toward Dataview-friendly output. start is written when the note is created; end / total / longest are filled in when the session finishes (and stay blank on an abandoned run, so it reads as incomplete rather than broken).
  • Slowest-first list moved to the top of the output note (#21). The note now reads header → ## Slowest first → Total → ## In order, so the bottleneck ranking is the first thing you see on opening the note, without scrolling past the raw chronological run.

Fixed

  • Editing a checklist item mid-run no longer records phantom timings (#23). Inserting, deleting, or renaming an item above the current checkbox used to be misread as a check-off — appending a bogus HH:MM:SS - <item> line to the output note and resetting the in-progress item's clock. Check-off detection now compares item text at each position and skips detection for any editor event that shifted the list, with a notice that the edit was not recorded and timing continues. Pure tail add/remove is unaffected.

Dependencies

  • Bump fast-uri 3.1.2 → 3.1.6 (#2), js-yaml 4.1.1 → 4.3.1 (#3), brace-expansion 1.1.14 → 1.1.18 (#5).

Full changelog: https://github.com/AnandSie/obsidian_plugin_checklist_timer/compare/1.2.0...1.3.0

README file from

Github

Checklist Timer

Times how long each item in a checklist takes, so you can see which steps in a recurring process — a weekly review, a deploy checklist, any process you run more than once — are actually eating the time.

It's not a Pomodoro timer, and it's not an invoicing/billable-hours tool. It's a process-insight tool for repeatable checklists.

How it works

Mark a checklist as timed with a tag on its own line directly above the list (default #Timed, configurable in settings — matched case-insensitively, so #timed works too):

#Timed
- [ ] Start week plan
- [ ] Review calendar
- [ ] Draft priorities
- [ ] Send updates

Checking off the first item starts the clock. Each time you check off the next item, the time since the previous check-off is recorded against it, and timing continues automatically through the rest of the list.

Want a different item to be the starting point instead of the first one? Tag it with #Start (also configurable) anywhere in the list — items before it are simply not timed:

#Timed
- [ ] Gather notes (not timed)
- [ ] #Start Kickoff
- [ ] Next step

A session ends when the last item is checked off, or you stop it manually via the ribbon icon or the "Stop active timer" command. The timing note is written incrementally as you go, so even an abandoned checklist keeps whatever was already timed. When a session ends, a summary sorted by duration (slowest first) is appended so the bottleneck is easy to spot.

If you need to step away mid-run, the "Pause active timer" and "Resume active timer" commands freeze the clock for the current item — time spent paused isn't counted against it. Checking off the next item resumes automatically.

Only one checklist can be timed at a time. If you start a second one while another is running, by default the first is stopped automatically (saving what it had timed) and the second starts — this is configurable.

Settings

  • Timed checklist tag — marks a checklist as timed (default #Timed, matched case-insensitively).
  • Start item tag — marks the start item within a timed checklist (default #Start, matched case-insensitively).
  • Auto-switch between checklists — automatically stop-and-switch when a second timed checklist is started while one is running, instead of blocking it (default on).
  • Output folder — where timing notes are saved (default: vault root).
  • Filename template — supports {{date}} and {{title}} placeholders.

Example output

# Checklist timing — Week Plan

- Review calendar: 00:02:14
- Draft priorities: 00:08:41
- Send updates: 00:01:03

Total: 00:11:58

## Sorted by duration (slowest first)

- Draft priorities: 00:08:41
- Review calendar: 00:02:14
- Send updates: 00:01:03

Scope

Desktop only. Nested/indented checklist items aren't rolled up into their parent's time yet. There's no session persistence — if Obsidian closes or crashes mid-session, the in-progress timer is lost, but anything already timed and written to the note is safe.

Installation

Available from Obsidian's Community Plugins:

  1. Settings → Community plugins → Browse.
  2. Search for "Checklist Timer".
  3. Install, then enable it.

To manually install a specific release instead (e.g. to try a version before it's landed in Community Plugins):

  1. Download main.js and manifest.json from the desired release at https://github.com/AnandSie/obsidian_plugin_checklist_timer/releases
  2. Create a folder named checklist-timer inside <YourVault>/.obsidian/plugins/.
  3. Copy both files into that folder.
  4. Reload Obsidian and enable Checklist Timer under Settings → Community plugins.

Development

npm install
npm run dev    # rebuilds on change
npm test       # unit tests
npm run build  # production build