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

Nested Properties

Michael NaumovMichael Naumov5k downloads

Allows to view/edit nested frontmatter properties.

Add to Obsidian
Nested Properties screenshot
  • Overview
  • Scorecard
  • Updates24

This is a plugin for Obsidian that allows to view/edit nested frontmatter properties.

Inspired by the Feature request.

---
level1simple: simple1
level1Nested:
  level2simple: simple2
  level2Nested:
    level3simple: simple3
    level3Nested:
      level4simple: simple4
      level4Nested:
        level5simple: simple5
---

Nested Properties Screenshot

Features

  • Render nested YAML objects and arrays as a collapsible tree inside the Properties editor
  • Collapse/expand individual properties or all at once
  • Context menu (Cut, Copy, Paste, Remove) on nested properties
  • Set and persist the type of any nested property — text, number, checkbox, date, list, object, and even Tags (which Obsidian's UI won't let you assign). The choice is saved to the vault's types.json under the property's dotted path (e.g. foo.bar.property), so it survives reload and applies across notes (see Nested property types)
  • Add new properties at any nesting level
  • Horizontal scrolling for deeply nested structures
  • Toggle full display of nested property keys (see Commands)
  • Find notes by nested property in Obsidian's own search — type a dotted key such as [book.author: value] right in the search bar (see Nested property search)

Commands

The plugin adds the following commands to the command palette (they can be bound to a hotkey):

  • Toggle full key display — An on/off toggle that switches nested property keys between the default view (long keys truncated with a trailing ellipsis) and the full key text. Deeply nested keys scroll horizontally.
  • Rename a nested property in all notes — Pick a nested property path (shown with the number of notes that use it), then enter the new dotted path. The key is renamed in every note that contains it. Notes where the target path already exists are skipped so nothing is overwritten. This complements Obsidian's built-in Properties view: Show all properties, which only exposes top-level property names.
  • Delete a nested property from all notes — Pick a nested property path and confirm; the key is removed from every note that contains it.

The same on/off toggle is also available as a button in the Properties header (next to the collapse/expand-all button), so you can flip it directly from the frontmatter without opening the command palette. The button is highlighted while full key display is on.

Nested property search

Obsidian's built-in search understands top-level property operators like [author] or [status: done], but out of the box it cannot reach into nested frontmatter such as book.author. This plugin extends Obsidian's own search so a nested path written as a dotted key works directly in the search bar — no separate command, and results appear in the normal search pane:

  • [book.author] — notes that have the nested book.author property.
  • [book.author: Ursula K. Le Guin] — notes whose nested book.author equals that value.
  • [book.genres: fantasy] — a query value matches any member of a nested list.

Because this is real Obsidian search, a nested-property operator composes with every other search feature — content terms, path:, OR, - negation — and works inside embedded ```query blocks. Top-level property operators keep working exactly as before; this only adds the nested paths Obsidian could not previously reach.

The chosen state is remembered and restored the next time Obsidian starts.

Nested property types

Right-click any nested key (or click its type icon) and open the Property type submenu to convert a value to another type — text, number, checkbox, date, list, or object. Converting a rich value to a simpler one can lose data, so a confirmation dialog appears first.

Unlike Obsidian's built-in property types, the submenu also offers reserved types such as Tags, which Obsidian's own UI won't let you assign. This is handy when you want, for example, a nested tags list to behave exactly like the top-level one.

The chosen type is persisted to the vault's .obsidian/types.json under the property's dotted path, so it survives reloads and is shared across notes:

foo:
  bar:
    property: "Value"
{
  "types": {
    "foo.bar.property": "text"
  }
}

For arrays of objects, a field's type is stored once for the whole array (the item index is collapsed), so it applies to every item:

versions:
  - version: "1.0.0"
    released: 2026-03-06
  - version: "1.1.0"
    released: 2026-03-21
{
  "types": {
    "versions.version": "text",
    "versions.released": "date"
  }
}

The context menu offers two scopes for a field inside an array item: Property type (all items) writes the shared per-field key (versions.released), while Property type (this item only) writes a per-index override (versions.0.released) that wins for just that item. When a chosen type matches what the plugin would infer from the value anyway, the entry is removed from types.json to keep it tidy.

Demo vault

A ready-made demo vault ships with the plugin. Run the Open demo vault command to download the current release's vault and open it in a new window. Each note's frontmatter showcases one feature (nested objects, arrays, mixed lists, deeply nested structures, type changes, and the full-key-display toggle) — open a note and look at the Properties panel.

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

By default, debug messages for this plugin are hidden.

To show them, run the following command in the DevTools Console:

window.DEBUG.enable('nested-properties');

For more details, refer to the documentation.

Support

My other Obsidian resources

See my other Obsidian resources.

License

© Michael Naumov

HealthExcellent
ReviewRisks
About
View and edit nested YAML frontmatter as a collapsible tree inside the Properties editor. Collapse or expand branches, use context menu actions (cut, copy, paste, remove), add properties at any nesting level, and scroll horizontally for deep structures.
PropertiesEditing
Details
Current version
1.4.2
Last updated
2 days ago
Created
5 months ago
Updates
24 releases
Downloads
5k
Compatible with
Obsidian 1.13.4+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Michael NaumovMichael Naumovmnaoumov
mnaoumov.dev/
GitHubmnaoumov
Xmnaoumov
  1. Community
  2. Plugins
  3. Properties
  4. Nested Properties

Related plugins

Meta Bind

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

MetaEdit

Manage your metadata.

Fold Properties By Default

Always have editor/metadata properties folded by default

Advanced Tables

Improved table navigation, formatting, and manipulation.

Advanced Canvas

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

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Outliner

Work with your lists like in Workflowy or Roam Research.

Update modified date

Automatically update a frontmatter modified date field when the file is modified.

Creases

Tools for effectively folding Markdown sections.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.