espennilsen/pi · Archived

obsidian-vault

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.

First seen Apr 2, 2026

Installation

$ npx skills add espennilsen/pi --skill obsidian-vault

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from espennilsen/pi · top by installs.

npx skills add espennilsen/pi

Browse all from espennilsen/pi

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 116
License LICENSE
Default branch main
Open issues 2
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,642 B
  • docs SUMMARY.md 188 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

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

  1. Read the vault's own AGENTS.md for full context on structure, plugins, workflows, and conventions
  2. Read the relevant _Index.md file for the section you're working in
  3. 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

# 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"}]}'

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)

# 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"

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"

# 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