Note Status Checkbox

unlisted

by Vincenzo Petrucci

Show configurable, colored icons next to internal links based on frontmatter properties.

1 starsUpdated 1mo agoMIT
View on GitHub

Note Status Checkbox logo

Note Status Checkbox

Turn frontmatter properties into clear, glanceable icons beside your internal links.

Reading view · Live Preview · Rule-based matching · No network access

Note Status Checkbox adds configurable Lucide icons to links that point to notes whose frontmatter matches your rules. Your Markdown stays untouched and every link remains a normal Obsidian link.


Features

  • Shows icons in both Reading view and Live Preview.
  • Matches any frontmatter property, not only status.
  • Supports exact values, case-sensitive or case-insensitive matching, arrays, and wildcard rules.
  • Lets you choose any Lucide icon available in Obsidian, its color, and the global stroke width.
  • Applies the first matching rule, so priorities remain explicit and reorderable.
  • Refreshes open notes when frontmatter or plugin settings change.
  • Leaves embeds and links inside real Markdown tasks unchanged.
  • Reads note metadata without modifying notes or frontmatter.

How it works

Create one or more rules in Settings → Community plugins → Note Status Checkbox. Each rule contains:

FieldMeaning
PropertyFrontmatter property to inspect, such as status or priority
ValueValue to match; leave empty to match any non-empty value
CI / CSCase-insensitive or case-sensitive comparison
IconLucide icon displayed beside matching links
ColorIcon color

Rules are evaluated from top to bottom. The first match wins.

For example, given this note:

---
status: Completed
priority: High
---

You could configure these rules:

PropertyValueMatchIconResult
statusCompletedCIcircle-checkGreen completion icon
statusIn ProgressCIclockAmber progress icon
priorityHighCItriangle-alertRed priority icon

Every [[internal link]] pointing to the note receives the icon from the first matching rule. The icon is decorative and does not turn the link into a Markdown task.

Matching behavior

  • Property names are always matched case-insensitively.
  • Values are trimmed before comparison.
  • CI ignores letter case; CS requires the same letter case.
  • If a property contains a YAML list, the rule matches when at least one item matches.
  • An empty rule value acts as a wildcard for any non-empty property value.
  • Notes without a matching rule keep their normal links.

Installation

Community plugins

Once the plugin is accepted into the Obsidian community directory:

  1. Open Settings → Community plugins.
  2. Select Browse and search for Note Status Checkbox.
  3. Select Install, then Enable.

Manual installation

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Create <vault>/.obsidian/plugins/note-status-checkbox/.
  3. Copy the three downloaded files into that directory.
  4. Reload Obsidian and enable Note Status Checkbox under Community plugins.

Compatibility

  • Requires Obsidian 1.4.0 or newer.
  • Declared compatible with desktop and mobile installations.
  • Uses only APIs and icon assets provided by Obsidian at runtime.

Privacy and security

Note Status Checkbox works entirely offline. It makes no network requests, collects no telemetry, accesses no files outside the vault, and never edits your notes. Plugin preferences are stored through Obsidian's standard plugin data API.

Development

The plugin intentionally uses readable, dependency-free CommonJS with no build step. main.js is both the source and the release entry point.

Clone the repository and link it into a development vault:

git clone https://github.com/nahime0/obsidian-note-status-plugin.git
ln -s "/path/to/obsidian-note-status-plugin" "/path/to/vault/.obsidian/plugins/note-status-checkbox"

Run the matching tests with Node.js:

node --test test/matching.test.js

After changing the plugin, reload Obsidian or disable and re-enable it.

Releases

Run the interactive deploy command from a clean and up-to-date main branch:

make deploy

The command suggests the next minor version and lets you accept it by pressing Enter or type another x.y.z version. For non-interactive use, pass the version explicitly:

make deploy VERSION=0.1.1

The deploy script updates manifest.json and versions.json, runs the checks, creates the release commit and annotated tag, pushes both atomically, waits for GitHub Actions, and verifies the published assets. The workflow generates artifact attestations for main.js and styles.css and publishes main.js, manifest.json, and styles.css. Existing tags can still be processed through the workflow's manual dispatch action.

License

Released under the MIT License.

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.