| name | obsidian-vault |
| description | Read, create, and update notes in Espen's Obsidian vault (PARA method). Use when asked about notes, tasks, projects, dashboards, daily logs, or anything in the vault. |
Obsidian Vault Management
Vault Location
/Users/espen/Library/CloudStorage/OneDrive-Espennilsen.net/2-Areas/Digital_Life/Obsidian/e9n
⚠️ Safety
Always confirm with Espen before creating, modifying, or deleting any vault file.
The vault has established automation (Dataview queries, Templater templates, dashboards). Breaking these patterns can cascade.
Before Making Changes
- Read the vault's own
AGENTS.md for full context on structure, plugins, workflows, and conventions
- Read the relevant
_Index.md file for the section you're working in
- Check the
🏷️ Tag Taxonomy.md for correct tag usage
Structure (PARA)
1. Projects/ — Active initiatives with deadlines
2. Areas/ — Ongoing responsibilities (Education, Finance, Health, Personal Dev, Romance)
3. Resources/ — Reference materials (AI, Books, Career, Homelab, Languages, Programming)
4. Archive/ — Completed or inactive items
Notes/ — Daily/Weekly/Monthly notes with habit tracking
Tasks/ — TaskNotes (one task per note)
Templates/ — 23+ Templater templates
Weekly Reviews/ — Periodic reflections
Conventions
- Frontmatter is required on all notes:
created, modified, type, tags at minimum
- Tags follow the taxonomy:
#project/active, #type/note, #status/active, #priority/high, #area/professional
- File naming: Use descriptive names. TaskNotes use format:
Project - Task Description.md
- Templates: Always use existing templates rather than creating notes from scratch. Check
Templates/ first.
- Links: Use
[[wiki-links]] for internal references
- Dataview: Many notes contain Dataview queries. Don't break the query syntax when editing.
Obsidian Local REST API
The vault has the Local REST API plugin (v3.4.3) running. Prefer this over direct filesystem access — it respects Obsidian's internal state, caches, and metadata.
Base URL: http://localhost:27223
API Key: d4fc944e64f535df05b34c2e8596c4e3eaffc6dfd5b5ee15e76789a4ab96698a
Auth: Authorization: Bearer <key>
Common Operations
List files in a directory
curl -s "http://localhost:27223/vault/" -H "Authorization: Bearer $OBSIDIAN_API_KEY"
curl -s "http://localhost:27223/vault/1.%20Projects/" -H "Authorization: Bearer $OBSIDIAN_API_KEY"
Read a note (markdown)
curl -s "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
Read a note (JSON with metadata, tags, frontmatter)
curl -s "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: application/vnd.olrapi.note+json"
Simple text search (⚠️ POST, not GET)
curl -s -X POST "http://localhost:27223/search/simple/?query=TERM&contextLength=100" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY"
Returns: [{ filename, score, matches: [{ match: {start, end}, context }] }]
Dataview DQL search (POST)
curl -s -X POST "http://localhost:27223/search/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Content-Type: application/vnd.olrapi.dataview.dql+txt" \
-d 'TABLE file.ctime AS "Created" FROM "1. Projects" WHERE status = "active" LIMIT 10'
JsonLogic search (POST) — find by frontmatter/tags
curl -s -X POST "http://localhost:27223/search/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Content-Type: application/vnd.olrapi.jsonlogic+json" \
-d '{"in": ["project/active", {"var": "tags"}]}'
Create or update a note (PUT)
curl -s -X PUT "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Content-Type: text/markdown" \
-d '---
created: 2026-02-09
type: note
tags: [type/note]
---
# Title
Content here'
Append to a note (POST)
curl -s -X POST "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Content-Type: text/markdown" \
-d 'Content to append'
Patch a note (PATCH) — insert relative to heading/block/frontmatter
curl -s -X PATCH "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Content-Type: text/markdown" \
-H "Operation: append" \
-H "Target-Type: heading" \
-H "Target: Heading 1::Subheading" \
-d 'New content under this heading'
Delete a note
curl -s -X DELETE "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY"
Get periodic notes (daily/weekly/monthly)
curl -s "http://localhost:27223/periodic/daily/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
curl -s "http://localhost:27223/periodic/daily/2026/2/9/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
Filesystem Fallback
If the REST API is down, fall back to direct file access:
VAULT="/Users/espen/Library/CloudStorage/OneDrive-Espennilsen.net/2-Areas/Digital_Life/Obsidian/e9n"
cat "$VAULT/PATH.md"
find "$VAULT" -name "*.md" | grep -i "search term"
grep -rl "search term" "$VAULT" --include="*.md"
ls -lt "$VAULT/Notes/Daily/" | head -10