properties

v2026.09.24

Obsidian YAML frontmatter properties and aliases: read, set, remove on notes. Use when user mentions frontmatter, metadata, aliases, status, or dates.

GitHub
Install command
npx skhub add laurigates/properties
Markdown
SKILL.md

Obsidian Properties Management

When to Use This Skill

Use this skill when...Use the alternative instead when...
Reading, setting, or removing a single YAML property on a live note via the running CLIDoing offline bulk frontmatter rewrites across many files — use vault-frontmatter
Updating status:, aliases:, or a date property on a note Obsidian currently has openEditing note body content rather than frontmatter — use vault-files
Auditing which property names exist across the vault, and how oftenListing or counting tags — use search-discovery (tags, tag)
Confirming a property change is reflected in Obsidian's metadata cacheRepairing broken wikilinks after a rename — use vault-wikilinks

Read, set, and remove YAML frontmatter properties on Obsidian notes using the official CLI.

Prerequisites

  • Obsidian desktop 1.12.7+ installer with CLI enabled
  • Obsidian must be running

Command Shape

Property commands are singular (property:set, property:remove, property:read) and address the property by name=, not by a key=value pair. The plural properties command is the vault-wide listing/inspection view.

CommandPurpose
propertiesList property names across the vault, or on one file
property:readRead one property's value
property:setSet one property (optionally typed)
property:removeRemove one property
aliasesList aliases across the vault, or on one file

All four file-scoped commands default to the active file when neither file= nor path= is given.

List / Inspect Properties

# Every property name used in the vault (default format: yaml)
obsidian properties

# With occurrence counts, sorted by frequency
obsidian properties counts sort=count

# Count of distinct property names
obsidian properties total

# Occurrence count for one property name
obsidian properties name=status

# Properties on a specific file, or the active file
obsidian properties file="Project Spec"
obsidian properties path="Projects/Spec.md"
obsidian properties active

# Structured output
obsidian properties file="Project Spec" format=json
obsidian properties format=tsv

Read a Property

obsidian property:read name=status
obsidian property:read name=status file="Project Spec"
obsidian property:read name=due path="Projects/Spec.md"

Set a Property

name= and value= are both required; type= is optional and tells Obsidian how to store the value.

# Text (default type) on the active file
obsidian property:set name=status value=active

# On a specific file
obsidian property:set name=status value=draft file="Post"

# Typed values
obsidian property:set name=due value=2026-03-15 type=date
obsidian property:set name=reviewed value="2026-03-15T09:00" type=datetime
obsidian property:set name=priority value=1 type=number
obsidian property:set name=published value=true type=checkbox
obsidian property:set name=aliases value="JS,ECMAScript" type=list

Setting multiple properties is one invocation per property — there is no multi-property form.

Remove a Property

obsidian property:remove name=draft
obsidian property:remove name=old_field file="Note"

Aliases

# All aliases in the vault
obsidian aliases

# Count, or with the owning file paths
obsidian aliases total
obsidian aliases verbose

# Aliases on the active file, or a specific one
obsidian aliases active
obsidian aliases file="JavaScript"

To add an alias, set the aliases property as a list:

obsidian property:set name=aliases value="JS,js,ECMAScript" type=list file="JavaScript"

Property Types

type=Example valueNotes
textactiveDefault when type= is omitted
list"a,b,c"Comma-separated; use for aliases, tags
number1Numeric
checkboxtrueBoolean
date2026-03-15ISO 8601 date
datetime2026-03-15T09:00ISO 8601 date + time

Common Patterns

Status workflow

obsidian property:set name=status value=draft file="Post"
obsidian property:set name=status value=review file="Post"
obsidian property:set name=status value=published file="Post"
obsidian property:set name=published value=true type=checkbox file="Post"

Audit property usage before a schema change

# Which property names exist, and how heavily used
obsidian properties counts sort=count

# How many notes carry the one you're about to rename
obsidian properties name=status

Confirm a write landed

obsidian property:set name=status value=active file="Note"
obsidian property:read name=status file="Note"

Agentic Optimizations

ContextCommand
Property names + countsobsidian properties counts sort=count
Properties on one file (structured)obsidian properties file=X format=json
Read one propertyobsidian property:read name=K file=X
Set a propertyobsidian property:set name=K value=V file=X
Set a typed propertyobsidian property:set name=K value=V type=date
Remove a propertyobsidian property:remove name=K file=X
Usage count for a nameobsidian properties name=K
List aliases with pathsobsidian aliases verbose

Related Skills

  • vault-files — Read and create notes
  • search-discovery — Search by property values with [key:value] syntax; tag listing (tags, tag)
  • bases — Base views filter on the properties set here
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

obsidian-plugin/skills/properties

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3