Obsidian plugin that validates vault frontmatter against schemas defined in the vault itself. No external config — schema lives as YAML frontmatter in entity/property files.
- Entity-centric schema: entities declare fields, properties define validation rules
- Entity inheritance via
extends(with circular dependency detection) - Three-level validation: structure, Zod types, link constraints + custom JS
- Reactive status bar with per-file validation
- Settings UI with 3 tabs: Settings, Entities, Properties
- Entity/Property CRUD with auto-save
- Link constraints: validate what linked notes must satisfy
- Folder-based grouping
git clone <repo-url> && cd property-validator
npm install && npm run buildCopy main.js, manifest.json, styles.css to .obsidian/plugins/property-validator/ in your vault.
Also works as a standalone CLI:
npm run build:cli && bun link
obsi-validate --vault-dir /path/to/vault- About — overview and key features
- Getting started — installation and quick start tutorial
- Configuration — plugin settings and schema management UI
- Schema reference — entity/property file format, types, validation logic
- CLI — command-line usage
- Architecture — data flow, modules, security
- Improve entity inheritance (inherit allow_extra, multi-level UI display, abstract entities)
- Inline decorations: red underline on invalid frontmatter values, hover tooltips
- Quick-fix suggestions for enum values (fuzzy match "Did you mean...?")
- Autofix suggestions:
"true"totrue, array to string, string to array, type coercion
TypeScript, esbuild, Zod, gray-matter, Obsidian API