Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Note Schemas

aguilaaaaguilaaa46 downloads

Typed schemas for note kinds: frontmatter validation, autocomplete, and autofix.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

Give your note kinds a type. Note Schemas lets you declare, in one file, what frontmatter each kind of note should carry — required fields, their types, allowed enum values — and then validates your vault against those rules, autocompletes frontmatter while you type, and safely autofixes the easy mistakes.

Features

  • Typed schemas for note kinds, defined in a single JSON (or YAML) file.
  • Validation of every note's frontmatter: missing required fields, wrong types, disallowed enum values and list members (errors), and unknown fields (warnings).
  • A side panel listing all violations, grouped by note and clickable.
  • A live status-bar indicator for the active note (✓ valid / ✗ invalid), refreshed on save.
  • Frontmatter autocomplete: field names for the note's type, and enum values for enum fields — only inside the --- block.
  • Safe autofix: insert missing required fields that declare a default, and coerce obvious type mistakes (numeric strings → numbers, "true"/"false" → booleans, a lone scalar → a one-item list).

How to use

The schema file

By default the plugin reads note-schemas.json from your vault's config directory (usually .obsidian/note-schemas.json); the path is configurable in settings. It is a map of type name → definition:

{
  "book": {
    "match": { "folder": "Books", "tagged": "book", "frontmatterType": "book" },
    "fields": {
      "title":  { "type": "string", "required": true },
      "author": { "type": "string" },
      "status": { "type": "enum", "values": ["to-read", "reading", "done"], "default": "to-read", "required": true },
      "rating": { "type": "number" },
      "tags":   { "type": "list" },
      "finished": { "type": "date" }
    }
  },
  "meeting": {
    "match": { "folder": "Meetings" },
    "fields": {
      "date":       { "type": "date", "required": true },
      "attendees":  { "type": "list", "required": true },
      "type":       { "type": "string" }
    }
  }
}

YAML is also supported — point the setting at a .yaml/.yml file instead.

How a note's type is resolved

For each note the plugin picks the first matching type:

  1. If frontmatter type equals a declared type name, that type is used.
  2. Otherwise each type's match rule is tried in declaration order:
    • frontmatterType — frontmatter type equals this value,
    • folder — the note lives in (or under) this folder,
    • tagged — the note carries this tag (frontmatter or inline, # optional).

Notes that match no type are simply ignored ("untyped").

Field types

string, number, boolean, date (YYYY-MM-DD), enum (requires values), list. Each field may set required: true, and any field may declare a default used by autofix. A list field may also declare values; its members are then validated against that allow-list.

Commands

  • Validate vault against schemas — validates every typed note and opens the violations panel. Also available from the ribbon (checklist icon).
  • Open schema violations panel — reveal the side panel.
  • Fix all safe issues in this note — apply every safe fix to the active note.

Settings

  • Schema file path — vault-relative path to the schema file.
  • Validate on save — re-validate the active note on change and drive the status-bar indicator.
  • Reload schema — re-read the schema file after editing it. Schema files kept inside the vault also reload automatically on save; the default path lives under the config directory, which Obsidian does not watch, so use this button (or re-open settings) to reload after editing the default file.

Limitations

  • Validation reads Obsidian's parsed frontmatter cache, so it only covers notes with a YAML frontmatter block; body content is not inspected.
  • date accepts YYYY-MM-DD-style strings (and real dates) but does not check calendar validity (e.g. 2026-02-31 passes).
  • Autofix is intentionally conservative: it never deletes unknown fields, never invents values for required fields without a default, and only performs loss-free coercions.
  • Enum and list-value matching is case-sensitive.
  • Nested/object frontmatter fields are treated as their top-level value only.

Installation

This plugin is not yet in the community store. To install it manually:

  1. Build: from the repo root run the workspace build so main.js is produced next to manifest.json.
  2. Copy manifest.json, main.js, and styles.css into <your-vault>/.obsidian/plugins/note-schemas/.
  3. Enable Note Schemas in Settings → Community plugins.
  4. Create note-schemas.json in your vault's config directory with a schema like the example above.
  5. Add matching notes, then run Validate vault against schemas. Edit a typed note's frontmatter to see autocomplete and the status-bar indicator, and try Fix all safe issues in this note.

Support

If this plugin is useful to you, you can support its development at Buy Me a Coffee.

HealthExcellent
ReviewSatisfactory
About
Define typed schemas for note kinds in one JSON/YAML file to declare required frontmatter fields, types, and enum values. Validate frontmatter across your vault and show violations in a clickable side panel with a live status-bar indicator. Autocomplete field names and enum values as you type and safely autofix simple mistakes.
PropertiesAutocompleteSidebar
Details
Current version
0.1.1
Last updated
3 weeks ago
Created
3 weeks ago
Updates
2 releases
Downloads
46
Compatible with
Obsidian 1.7.2+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
aguilaaaaguilaaa
GitHubaguila1989
  1. Community
  2. Plugins
  3. Properties
  4. Note Schemas

Related plugins

Tags Overview

An extended tags panel where tagged files can be easily viewed, filtered, and accessed.

Wikilink Types

Type @ inside wikilink aliases to add relationship types, auto-synced to YAML frontmatter.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Vertical Tabs

Offer an alternative view that displays open tabs vertically, allowing users to group and organize tabs for a better navigation experience.

Recent Files

Display a list of recently opened files.

Numerals

Turn any code block into an advanced calculator. Evaluate math expressions on each line of a code block, including units, currency, and optional TeX rendering.

Longform

Helps you write and edit novels, screenplays, and other long projects.