Skip to content

PPeapps/MD-Butler

Repository files navigation

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

Language File
English User Guide · ReadMe
German Benutzerhandbuch · ReadMe
Technical Architecture · 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

About

Obsidian Plugin to manages YAML frontmatter fields for all notes automatically . A reliable alternative to Templater formulas for consistent metadata. - Still in BETA, not an official Obsidian Plugin - use BRAT for installation into Obsidian

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors