MD Butler

unlisted

by PPeter

Automatically manages YAML frontmatter fields for all notes. A reliable alternative to Templater formulas for consistent metadata.

Updated 24d agoMIT
View on GitHub

MD Butler

Obsidian Plugin GitHub releaseLicense

Automatically manage YAML frontmatter fields for all your notes.
An event-driven, configurable alternative to Templater formulas.

Features

  • 5 field types: text, select, boolean, number, multi
  • Event-driven: reacts to open, modify, rename, bulk – configurable per field
  • Template engine: {{title}}, {{filePath}}, {{date:…}}, {{lookup:path,field}}, {{frontmatter:key}}, pipes (| upper, | lower, | replace:a,b, …)
  • Nested YAML Groups: dot-notation yamlKeys (note.NoteID) → hierarchical frontmatter with group dropdown per field
  • Standardizer: normalize field values vault-wide with preview modal and per-issue selection
  • Bulk YAML Key Rename: rename keys across all files with migration tracking and settings sync
  • Cross-file lookup: read frontmatter values from any vault file
  • Dataview integration: generate select/multi options via DataviewJS queries
  • 3 option sources: manual list, external .md file, or DataviewJS
  • Conditional fields: only set fields when a condition matches (frontmatter, path, filename, folder)
  • YAML key migration: automatic when renaming keys in settings
  • Orphaned key cleanup: remove obsolete YAML keys across the vault
  • Protected keys: "Do Not Touch" list – never overwrite other plugins' keys
  • NoteID: auto-generated UUID v4
  • Processing modes: newOnly (skip existing) or allFiles
  • Folder filters: include/exclude with recursive subfolder matching
  • Force-apply: overwrite all existing metadata
  • Consistency check: scan the vault for missing fields and value issues
  • Full repair: force-apply → cleanup → consistency check (one command)

Installation

  1. Install from Obsidian Community Plugins (or manually copy main.js, manifest.json, styles.css to <vault>/.obsidian/plugins/md-butler/)
  2. Enable the plugin in Obsidian settings
  3. Configure your fields in the plugin settings
  4. Run "Apply Metadata to all Notes" from the command palette (Ctrl+P)

Quick Start

# Example: after configuration, every new note automatically gets:
note:
  NoteID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
  FileName: My Note
dates:
  DateCreated: 2026-07-08 ddd 14:30:00

Documentation

LanguageFile
EnglishUser Guide · ReadMe
GermanBenutzerhandbuch · ReadMe
TechnicalArchitecture · Future Extensions

Requirements

  • Obsidian v1.8.0+
  • Dataview plugin (optional, for optionsDataview and DataviewJS features)

Build from source

git clone <repo>
cd md-butler
npm install
npm run build    # outputs main.js + manifest.json + styles.css

License

MIT

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.