Auto Properties
Automatically add configured frontmatter properties to new notes. Define global properties once and apply them to all new notes. (even after applying templates).
Auto Properties
Automatically add configured frontmatter properties to new notes in Obsidian. Define global properties once and apply them to all new notes, with flexible exclusion rules.
Demo
https://github.com/user-attachments/assets/37e5c6fc-c61a-476a-9440-7e41e13ea5c1
Features
- ✨ Automatic property addition - Properties are added when creating or renaming notes
- 🎯 Flexible exclusion rules - Exclude notes by tags or frontmatter properties
- 🔧 Multiple property types - Support for text, multitext, number, checkbox, date, datetime, tags, and aliases
- 🎨 Easy management - Quick settings modal and full settings tab
- ⚡ Smart merging - Merge arrays for compatible property types without duplicates
- 🚀 Manual application - Apply properties on-demand via command palette
- 💾 Configurable delay - Adjust timing for template compatibility
Installation
From Obsidian Community Plugins
This plugin is not yet available in the Obsidian community plugins.
Installing using BRAT
Installing the plugin using Obsidian42-BRAT
- Install Obsidian42-BRAT from Settings → Community plugins.
- Copy the plugin repository URL: https://github.com/Frank-C0/obsidian-auto-properties
- Open the command palette and run BRAT: Add a beta plugin for testing.
- Paste the URL into the modal and click Add Plugin. Wait for confirmation.
- Go to Settings → Community plugins, refresh the list, and enable Auto Properties.
Update: Use the command Check for updates to all beta plugins or enable automatic updates in the Obsidian42-BRAT tab in Settings.
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder named
auto-propertiesin your vault's.obsidian/plugins/directory - Copy the downloaded files into this folder
- Reload Obsidian
- Enable the plugin in Settings → Community plugins
Examples
Example 1: Basic Note Metadata
Configure these properties:
status: draft (text)
author: Your Name (text)
Every new note will automatically have:
---
status: draft
author: Your Name
---
Example 2: Tags and Organization
Configure:
tags: note, unprocessed (tags)
tags: project_1 tags)
tags: subproject_1 (tags)
topics: topic_A (multitext)
topics: topic_B (multitext)
type: standard (text)
priority: 3 (number)
Result:
---
tags:
- note
- unprocessed
- project_1
- subproject_1
topics:
- topic_A
- topic_B
type: standard
priority: 3
---
Use Cases
- Project Management: Add status, priority, and project tags (even after a template is applied)
- Zettelkasten: Add creation date, ID, and knowledge type
- Content Creation: Add author, status, and publication metadata
- Templates: Works seamlessly with template plugins (adjust delay if needed)
Usage
Quick Start
- Click the ribbon icon or use the command palette to open Auto Properties Settings
- Click + Add Property to create your first global property
- Configure:
- Name: Property key (e.g.,
status,created,tags) - Type: Property type (text, number, date, etc.)
- Value: Default value to apply
- Enabled: Toggle to enable/disable
- Overwrite: Whether to replace existing values
- Name: Property key (e.g.,
- Properties are automatically applied when creating new notes. They can also be applied manually with the "Apply global properties to current note" command.
Property Types
| Type | Description | Example Value |
|---|---|---|
| text | Single line text | "draft" |
| multitext | Multiple text values | "value1, value2" |
| number | Numeric value | 42 |
| checkbox | Boolean value | true or false |
| date | Date in YYYY-MM-DD format | 2024-01-15 or "today" |
| datetime | Date with time | 2024-01-15 or "now" |
| tags | List of tags | "tag1, tag2" |
| aliases | List of aliases | "alias1, alias2" |
Exclusion Rules
Prevent auto-properties from being applied to specific notes:
By folder
Add an exclusion rule with a route of a Folder:
templates- Excludes notes in thetemplatesfolderdaily- Excludes notes in thedailyfolder
By Tag
Add an exclusion rule with type Tag and value:
#templateortemplate- Excludes notes with this tag
By Property
Add an exclusion rule with type Property and value:
status:archived- Excludes notes wherestatusequalsarchivedtemplate- Excludes notes that have atemplateproperty (any value)
Commands
- Open settings modal - Quick access to property management
- Apply global properties to current note - Manually apply properties to active note
- Toggle Auto Properties - Enable/disable automatic application
Tips
- Template Compatibility: If properties aren't applying after template insertion, increase the delay in settings (try 300-1000ms)
- Array Merging: For compatible types (text, multitext, tags, aliases), values are merged without duplicates
- Overwrite Option: Enable to replace existing property values instead of merging
- Quick Toggle: Disable a property temporarily without deleting it
- Manual Application: Use the command to apply properties to existing notes
Compatibility
- Obsidian: Requires v0.15.0 or higher
- Mobile: Supported on iOS and Android
- Templates: Compatible with core templates and community template plugins
- Other Plugins: Works alongside other property/frontmatter plugins. Note that plugins monitoring frontmatter at creation may cause redundant update triggers or multiple notifications, but internal collision management ensures the final data remains consistent.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Attributions
This plugin was developed by studying and adapting code from several excellent open-source projects:
- Obsidian Auto Note Mover by farux: Inspired the plugin structure, event handling, and exclusion logic.
- Obsidian Multi Properties by technohiker: Provided the core property manipulation and merging logic.
- Obsidian Quick Tagger by Gorkycreator: Contributed the tag cleaning logic.
For more details, see ATTRIBUTIONS.md.
License
MIT License - See LICENSE for details.
How to Install
- Download the template file from GitHub
- Move it anywhere in your vault
- Open it in Obsidian — done!
Stats
Stars
3
Forks
0
License
MIT
Last updated 1mo ago
Categories