Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Text Block Timer

wth461694678wth4616946785k downloads

Add a timer to text block to track task time consumption.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates10

English | 中文

Text Block Timer Plugin

A text block timing tool designed for Obsidian, allowing you to add a count-up stopwatch function to any text line in your notes.

Latest Change (V1.0.9)

  1. Code Encapsulation: Timer is now encapsulated and no longer exposes internal HTML code.

  2. Fixed Undo History Pollution: Timer updates no longer affect undo/redo(Thanks to mosmash for providing the solution and submitting a Pull Request!)

  3. Timer Style Optimization: Redesigned timer appearance with cleaner display and option to hide hours digit.

  4. New Feature: Time Adjustment: Added iPhone-style scroll wheel time picker UI for adjusting durations.

Closed Issues in this release:

  • #12 [Bug Report] Text Block Timer: Ctrl+Z — from p0nczek
  • #11 [Feedback/Suggestion] Hiding HTML in Callouts & Custom Time Formatting — from p0nczek
  • #7 Hope to add the function of ending the timer — from kyle-one

🙏 I sincerely apologize for the long hiatus — due to a busy schedule with work and life, updates were paused for a while. Thank you for your patience and continued support!

Features

  • Add timers to any text line, supporting multiple timers running simultaneously (stopwatch function).
  • ▶️/⏸️ Start, pause, and resume timing for tasks.
  • ⏳ Real-time display of cumulative time cost.
  • 💾 Persistent storage of timing data.
  • 🔄 Users can optionally choose whether to continue timing when files or Obsidian is closed (by default, closing a file will not cause failure of the real-time stopwatch).
  • By modifying the task status, you can automatically trigger the start and update of the timer

How to use

1. Command Palette + Shortcut (Recommended⭐️)

  1. Configure a shortcut for the command "Text Block Timer: Toggle timer" for quick access.
  2. When the cursor is on a text block, press the shortcut key to start, pause, resume, or delete the timer.
  3. The timer will be displayed in the format 【⏳00:00:00 】 at the beginning of the text line.

Command Shortcut

2. Mouse Operations (Not Recommended)

  1. Right-click on a text line.
  2. Select "Start Timer", "Pause Timer", "Resume Timer", or "Delete Timer".

Right Click

3. Control Timer by Task Status Automatically (Recommended⭐️)

  1. For For Common Users, you can directly change the task status [ ] to trigger the start and update of the timer (Suits for everyone, however not convenient enough, especially for Windows users.)
  2. ⭐️For Task Plugin Users, you can trigger the start and update of timers by simply clicking the checkbox (Convenient but needs pre-settings)

controlbycheckbox

Custom Settings

Users can customize the following options in the plugin Settings:

1. Whether to continue timing after the file or Obsidian closed

Users can freely choose whether to continue the timing after closing the file or disabling Obsidian.

1.1 never stops unless the user stops manually

After a user closes a file or exits Obsidian, the timer will still "time in the background". When the file is opened next time, the time spent during the closure period will be counted as the timer time and the timing will automatically resume.

settings_never

1.2 auto-stop only when exiting Obsidian. Background timing continues when closing files (recommended, default option)

After the user closes a file, the timer will still "time in the background". When the file is opened next time, the time spent during the closing period will be counted as the timer time and the timing will automatically resume. However, once the user exits Obsidian, all timers will stop immediately to prevent significant data errors caused by the user forgetting to manually close the timers.

settings_quit

1.3 auto-stop immediately when closing a file

After the user closes a file, all timers will stop immediately. However, if a file is closed by mistake, it may cause the timer to pause.

settings_close

2. Timer insert position

Users can choose to insert a timer label either before or after the text block. insert_position

3. Control Timer by Task Status Automatically - Path Control

In the default settings, path control is disabled. When you only want to use the timer in specific folders, you can use a whitelist or blacklist to control it, which will only take effect in one of the two ways.

  • Disable path control:this feature can always take place pathControl_no
  • Whitelist:only folders in the whitelist will work pathControl_white
  • Blacklist:folders in the blacklist will not work pathControl_black

Version Log:

  • V1.0.9
    1. ==Critical Bug Fix==: Fixed the undo history pollution issue — timer real-time updates no longer pollute the editor's undo/redo stack. (Thanks to mosmash for providing the solution and submitting a Pull Request!)
    2. Timer Style Optimization: Redesigned the timer rendering style; added option to hide hours digit for shorter durations.
    3. ==New Feature==: Added Time Adjustment function with an iPhone-style scroll wheel time picker UI, accessible via right-click menu and command palette, fully compatible with mobile.
    4. ==Code Encapsulation==: Timer is now encapsulated and no longer exposes internal HTML code.
    5. Closed issues: #12, #11, #7
  • V1.0.8
    1. Appearance optimization: Added a timer emoji customization function. Now you can use your favorite ICONS to represent the running and paused states respectively.
  • V1.0.7
    1. ==Major Optimization==: Resolved the potential stuck issue when Obsidian switches back to the foreground, improved the timer performance.
  • V1.0.6
    1. BUG Fix: Resolved the issue of startup failure caused by incorrect language configuration code
  • V1.0.5
    1. ==Major Feature==: This plugin now supports usage on the Mobile end!
    2. ==Major Optimization==: Added support for read-only mode, now the timer can be updated in real time and data can be persisted even in read-only mode.
    3. ==Major Feature==: Added a timer deletion function, which can be accessed through the command line or right-click menu.
    4. Slimming Plan for Timer Blocks: The length of Timer blocks has been significantly reduced by 60% in version V1.0.5.
    5. Bug Fix: Fixed the issue where time display was incorrect after exceeding 24 hours.
  • V1.0.4
    1. ==Major Feature==: Now you can control the timer switch by the checkbox in the task front.
    2. Improve the function of creating timers, now it will not directly expose the span's source code
  • V1.0.3
    1. ==Major Optimization==: Closing a file no longer causes the timer to fail. Users can freely choose whether to continue timing when the or Obsidian is closed (see custom settings).
    2. Added custom settings: Users can now choose the position to insert the timer (before or after texts).
    3. Improve compatibility with markdown, adding support for ordered checkboxes and headings.
  • V1.0.2
    1. Added language support for Chinese, English, Japanese, and Korean.
  • V1.0.1
    1. Improved display effects by adding a space before the time label.
    2. Fixed the issue where adding a timer to a task list caused the task checkbox to fail.
  • V1.0.0
    1. Plugin release

Development Information

  • Developer: frankthwang
  • Version: 1.0.9
87%
HealthExcellent
ReviewSatisfactory
About
Add a count-up stopwatch to any text line and run multiple timers simultaneously with start, pause, resume, and delete controls. Store timing data persistently, show real-time cumulative time, adjust durations with an iPhone-style scroll picker, and keep timer changes out of undo history.
TasksCommandsData
Details
Current version
1.0.9
Last updated
3 months ago
Created
Last year
Updates
10 releases
Downloads
5k
Compatible with
Obsidian 1.8.0+
License
MIT
Report bugRequest featureReport plugin
Author
wth461694678wth461694678
GitHubwth461694678
  1. Community
  2. Plugins
  3. Tasks
  4. Text Block Timer

Related plugins

Task Collector (TC)

Change task status and collect tasks within a document using hotkeys and context menus.

Completed Task Display

Controls for displaying or hiding completed tasks.

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.

Day Planner

Day planning from a task list in a Markdown note with enhanced time block functionality.

Commander

Customize your workspace by adding commands everywhere, create macros and supercharge your mobile toolbar.

Tracker

Track occurrences and numbers in your notes.

Datacore

An even faster reactive query engine for the data obsessed.

Reminder

Manage Markdown TODOs with reminder.

Day Planner (OG)

Day planning from a simple task list in a Markdown note (bare bones, preserves the features and behavior of the original plugin).

Checklist

Consolidate checklists across all files into a single view.