obsidian-properties
Work with Obsidian note properties (frontmatter). Activate this skill when users want to add, modify, or organize properties, understand property types, format YAML frontmatter, or use properties with templates, search, or Bases.
Best use case
obsidian-properties is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Work with Obsidian note properties (frontmatter). Activate this skill when users want to add, modify, or organize properties, understand property types, format YAML frontmatter, or use properties with templates, search, or Bases.
Teams using obsidian-properties should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/obsidian-properties/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How obsidian-properties Compares
| Feature / Agent | obsidian-properties | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Work with Obsidian note properties (frontmatter). Activate this skill when users want to add, modify, or organize properties, understand property types, format YAML frontmatter, or use properties with templates, search, or Bases.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Obsidian Properties
Properties are structured metadata stored as YAML frontmatter at the top of notes. They enable organization, search, filtering, and integration with features like Bases, Templates, and Search.
**Always use the `update_frontmatter` tool for property changes** — it handles YAML formatting safely via Obsidian's API.
## Property Format
Properties are YAML between `---` delimiters at the very start of a file:
```yaml
---
title: My Note
tags:
- journal
- personal
date: 2024-08-21
---
```
- Each property name must be unique within a note
- Names are separated from values by a colon followed by a space
- Order of properties doesn't matter
## Property Types
Once a type is assigned to a property name, all notes in the vault share that type.
### Text
Single line of text. No markdown rendering. Hashtags do NOT create tags.
Internal links must be quoted:
```yaml
title: A New Hope
link: '[[Episode IV]]'
url: https://www.example.com
```
### List
Multiple values, each on its own line with `- `:
```yaml
cast:
- Mark Hamill
- Harrison Ford
- Carrie Fisher
links:
- '[[Link]]'
- '[[Link2]]'
```
Internal links in lists must also be quoted.
### Number
Literal integers or decimals only — no expressions or operators:
```yaml
year: 1977
pie: 3.14
```
### Checkbox
Boolean `true` or `false`. Renders as a checkbox in Live Preview:
```yaml
favorite: true
reply: false
```
### Date
Format: `YYYY-MM-DD`
```yaml
date: 2024-08-21
```
With the Daily Notes plugin enabled, date properties function as internal links to daily notes.
### Date & Time
Format: `YYYY-MM-DDTHH:mm:ss`
```yaml
time: 2024-08-21T10:30:00
```
### Tags
Special type used exclusively by the `tags` property. Cannot be assigned to other property names. Formatted as a list:
```yaml
tags:
- journal
- personal
- draft
```
## Default Properties
| Property | Type | Description |
| ------------ | ---- | -------------------------------------------------------- |
| `tags` | List | Note tags (also recognized inline with `#tag`) |
| `aliases` | List | Alternative names for the note (used in link resolution) |
| `cssclasses` | List | Apply CSS snippets to style individual notes |
### Obsidian Publish Properties
| Property | Description |
| ----------------- | --------------------------- |
| `publish` | Whether to publish the note |
| `permalink` | Custom URL path |
| `description` | Page description |
| `image` / `cover` | Page image |
### Deprecated Properties (removed in Obsidian 1.9)
Use the modern equivalents instead:
- `tag` → use `tags`
- `alias` → use `aliases`
- `cssclass` → use `cssclasses`
## JSON Format
Properties can also be defined as JSON (will be converted to YAML on save):
```yaml
---
{ 'tags': ['journal'], 'publish': false }
---
```
## Best Practices
### When Modifying Properties
- **Always use `update_frontmatter`** — never manually edit YAML via `write_file`
- Use canonical names: `tags` not `tag`, `aliases` not `alias`, `cssclasses` not `cssclass`
- Quote internal links: `"[[Note Name]]"` in both text and list properties
- Use proper date format: `YYYY-MM-DD` for dates, `YYYY-MM-DDTHH:mm:ss` for datetimes
- Numbers must be literals — no expressions like `1+1`
### When Writing File Content
- Never place content above or inside the frontmatter block
- "Top of the note" means after the closing `---`, not the first line of the file
- Preserve existing frontmatter exactly when using `write_file`
### Property Design Patterns
- Use `tags` for broad categorization (searchable, filterable in Bases)
- Use custom properties for structured data (status, priority, due dates)
- Use `aliases` so notes can be found by alternative names
- Use `cssclasses` to visually distinguish note types (e.g., `dashboard`, `daily-note`)
- Keep property names consistent across your vault — Obsidian enforces type consistency per name
### Integration with Bases
Properties are the foundation of Bases views. Note properties are accessed as `note.property_name` or just `property_name` in Base filters and formulas. Design your property schema with Bases queries in mind.
## Limitations
- **No nested properties** — use Source mode to view nested YAML if needed
- **No bulk editing** — use external tools or community plugins for mass property changes
- **No markdown in properties** — properties are meant for small, atomic, machine-readable data
- **No duplicate names** — each property name can only appear once per noteRelated Skills
obsidian-bases
Create and configure Obsidian Bases — database-like views of notes. Activate this skill when users want to create bases, write filters, formulas, or set up table/cards/list/map views.
obsidian-plugin-development
Build, modify, and debug Obsidian plugins using the TypeScript API. Use this skill when working with Obsidian plugin source code, the obsidian npm package, plugin UI (views, modals, settings, commands, ribbons), vault file operations, editor manipulation, workspace management, metadata cache, events, markdown rendering, or the Obsidian CLI. Covers plugin lifecycle, best practices, common patterns, and the full TypeScript API surface.
obsidian-cli
Use the Obsidian CLI to debug, inspect, and test Obsidian plugins during development. Covers plugin reloading, console inspection, runtime evaluation, and common debugging recipes for the gemini-scribe plugin.
vault-semantic-search
Search vault notes by meaning using semantic search (RAG). Activate this skill when users want to find notes by concept or topic rather than exact keywords, or when keyword search tools return poor results.
recall-sessions
Search past agent conversations to recall prior discussions, decisions, and context. Activate this skill when users ask about previous conversations, want to resume past work, or reference earlier decisions.
image-generation
Generate images from text descriptions and save them to the vault. Activate this skill when users want to create illustrations, diagrams, visual content, or any AI-generated images.
gemini-scribe-help
Answer questions about Gemini Scribe plugin features, settings, and usage. Activate this skill when users ask how to use the plugin, configure settings, or troubleshoot issues.
deep-research
Conduct comprehensive, multi-source research and generate cited reports. Activate this skill when users want in-depth research on a topic, need synthesis across web and vault sources, or want a structured research report saved to their vault.
audio-transcription
Transcribe audio and video files into structured notes. Activate this skill when users want to transcribe recordings, meetings, podcasts, voice memos, or any audio/video content in their vault.
ui-ux-guidelines
UI/UX best practices for obsidian-gemini plugin development. Covers modal sizing, text overflow, message formatting, collapsible UI, animations, icons, file chips, session state, CSS containment, and theme compatibility. Use this skill when building or modifying UI components.
release-process
Full release workflow for obsidian-gemini: update release notes, run checks, bump version with npm, create a GitHub release, and verify. Use this skill when preparing a new plugin release.
gemini-api-dev
Use this skill when building applications with Gemini models, Gemini API, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage (google-genai for Python, @google/genai for JavaScript/TypeScript, com.google.genai:google-genai for Java, google.golang.org/genai for Go), model selection, and API capabilities.