skills/obsidian-vault/SKILL.md
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.
npx skillsauth add espennilsen/pi obsidian-vaultInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/Users/espen/Library/CloudStorage/OneDrive-Espennilsen.net/2-Areas/Digital_Life/Obsidian/e9n
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.
AGENTS.md for full context on structure, plugins, workflows, and conventions_Index.md file for the section you're working in🏷️ Tag Taxonomy.md for correct tag usage1. 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
created, modified, type, tags at minimum#project/active, #type/note, #status/active, #priority/high, #area/professionalProject - Task Description.mdTemplates/ first.[[wiki-links]] for internal referencesThe 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>
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"
curl -s "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
curl -s "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: application/vnd.olrapi.note+json"
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 }] }]
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'
# Find notes with a specific tag
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"}]}'
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'
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'
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'
curl -s -X DELETE "http://localhost:27223/vault/PATH.md" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY"
# Current daily note
curl -s "http://localhost:27223/periodic/daily/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
# Specific date
curl -s "http://localhost:27223/periodic/daily/2026/2/9/" \
-H "Authorization: Bearer $OBSIDIAN_API_KEY" \
-H "Accept: text/markdown"
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"
# Read a note
cat "$VAULT/PATH.md"
# Find by name
find "$VAULT" -name "*.md" | grep -i "search term"
# Find by content
grep -rl "search term" "$VAULT" --include="*.md"
# Recent daily notes
ls -lt "$VAULT/Notes/Daily/" | head -10
tools
# pi-a2a Long-Running Tasks Skill ## Overview The pi-a2a extension supports **long-running tasks** that can execute for hours or days without timeouts. This is essential for: - Data processing pipelines - Batch operations - Research and aggregation tasks - External API jobs with unpredictable duration - Any A2A task that exceeds the standard timeout ## When to Use **Use long-running tasks when:** - Task execution time is unpredictable or known to exceed 10 minutes - The remote agent is proc
development
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
testing
Review UI designs and implementations for accessibility, consistency, usability, and visual quality. Use when asked to review a design, audit accessibility, check UI consistency, compare implementation against mockups, or evaluate a user interface.
tools
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".