Write Note
vault_write_noteWrite or overwrite a markdown note with full body replacement and optional property merging. Use for creating new notes or replacing existing content entirely.
Instructions
Create or update a markdown note. Body replaces the entire note content — this is a full overwrite, not a partial edit. Properties are passed separately and merged with any existing properties (new keys added, matching keys overwritten, keys set to null removed, unmentioned keys preserved).
Example: vault_write_note({ path: "Projects/notes.md", body: "# Notes\n\nProject notes here.", properties: { tags: ["project"], type: "project" } })
When to use: Creating a new note or fully replacing an existing note's body. Prefer vault_update_properties for property-only edits (no body round-trip). Prefer vault_update_memory for appending dated entries to About Me/ memory files.
Limitation: Overwrites the entire body. Do not use for surgical edits to large files — existing content will be lost unless you include it in the body parameter.
Errors:
"concurrent write in progress" — another write to this note is in flight; re-read the note and retry
Obsidian syntax: Body is Obsidian Flavored Markdown (no escaping applied). Watch for: #word = tag (escape with #), [[ = wikilink, %% = comment block. In properties: quote wikilink values ("[[Note]]"), use YAML lists for tags, keep property types consistent (string/number/list mismatches cause silent query failures).
Returns: Confirmation message.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Markdown body content — do not include frontmatter fences (---); use the properties parameter instead. | |
| path | Yes | Vault-relative path including the ".md" extension (e.g. "Projects/notes.md"). Parent folders are created as needed. | |
| properties | No | Optional properties to merge. New keys are added; existing keys with matching names are overwritten; a null value deletes that key; unmentioned keys are preserved from the existing file. |