README file from
GithubDaily Checkbox Focus
Daily Checkbox Focus is a small Obsidian plugin that moves the editor cursor to the first empty checkbox in the top capture area when you open a daily note.
It is intended for daily notes where the first empty top checkbox is the next place you want to type.
What it does
- Detects daily notes by filename:
YYYY-MM-DD.md. - Works no matter which folder contains the daily note, for example
Alfa/WRK/2026-05-19.md. - On open, jumps once to the first truly empty checkbox line in the top capture area:
- [ ]* [ ]+ [ ]
- Inserts one missing empty checkbox in the top capture area when that setting is enabled.
- Places the cursor after the checkbox marker and at least one following space.
- Provides manual commands for the active Markdown file:
Jump to first empty checkboxDebug first empty checkbox
Top capture area
The top capture area starts at the beginning of the file, after optional YAML frontmatter, and ends before the first Markdown heading:
---
date: 2026-05-20
---
- [ ]
# Work
The plugin only searches this area. It never focuses empty checkboxes below the first heading, so sections such as # Work, ## Todo.Family, # Life, or # Hobbies are left alone.
How it works
When a Markdown file opens, the plugin checks whether the filename matches YYYY-MM-DD.md. If it does, the plugin briefly retries while Obsidian finishes loading the editor, then moves the cursor to the first empty checkbox line it can safely use in the top capture area.
If there is no truly empty checkbox before the first heading and Create missing top checkbox is enabled, the plugin inserts one empty checkbox immediately before the first heading and keeps one blank line before that heading. If the note has YAML frontmatter and no content before the first heading, the checkbox is inserted after the frontmatter.
The automatic jump runs at most once for each file-open session. If you start typing after opening the note, pending automatic jumps are cancelled so your editing is not interrupted.
The plugin ignores empty checkboxes inside fenced code blocks, including tasks code blocks, and ignores callout or blockquote lines that start with >.
Settings
Create missing top checkbox: enabled by default. When enabled, the plugin inserts one empty checkbox in the top capture area if none exists. When disabled, the plugin only focuses an existing empty checkbox.Focus on open: enabled by default. When disabled, automatic focus on daily-note open is turned off, but the manual command still works.
Installation
- Open Obsidian settings.
- Go to
Community plugins. - Choose
Browse. - Search for
Daily Checkbox Focus. - Install and enable the plugin.
Manual installation
You can also install a release manually:
- Download
main.jsandmanifest.jsonfrom the GitHub release. - In your vault, create
.obsidian/plugins/daily-checkbox-focus/. - Put
main.jsandmanifest.jsonin that folder. - Restart Obsidian or reload plugins.
- Enable
Daily Checkbox FocusinCommunity plugins.
Troubleshooting
- Confirm your daily note filename is exactly
YYYY-MM-DD.md, such as2026-05-19.md. - Confirm the target checkbox is before the first Markdown heading and has no text after it.
- [ ]works;- [ ] somethingis intentionally skipped. - Confirm the checkbox is not inside a fenced code block and is not in a callout or blockquote line.
- Check
Create missing top checkboxif you expect the plugin to insert a missing top checkbox. - Run
Debug first empty checkboxfrom the command palette to see the current file path, daily-note match status, top capture range, session state, detected target, and nearby top-capture lines containing[ ]. - Open the developer console if you need the structured debug log.
Privacy and safety
Daily Checkbox Focus does not send data anywhere. It does not use network requests, Node.js APIs, or Electron APIs. It only reads the currently open editor content enough to find or insert a top capture checkbox and move the editor cursor.
Limitations
- Automatic focus only runs for files named
YYYY-MM-DD.md. - The daily note may be in any folder, but the filename must match that date format.
- The plugin may insert one empty checkbox in the top capture area when
Create missing top checkboxis enabled. - The plugin does not change Tasks plugin settings or depend on the Tasks plugin.
Compatibility
- Minimum Obsidian version:
1.0.0. - Desktop-only: no. The plugin does not use Node.js or Electron APIs, so
isDesktopOnlyisfalse.
Releases
Release tags should match the plugin version exactly. For version 1.1.1, create and push the tag 1.1.1.