Skip to content
cccskills
FreePublished on GitHub

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.

The English summary is being prepared. Showing the original description.

Works withObsidian
See how to install

Files included (1)

  • SKILL.md5.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold AGENTS.md for new projects, update stale ones, or run a cross-project audit.

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

Draft, edit, and publish blog posts for e9n.dev. Use when creating new posts, editing drafts, or refining existing content. Handles Eleventy frontmatter, Tailwind formatting, and Espen's authentic voice.

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

Generate a full operational status report for the Aivena bot. Checks all subsystems: extensions, webserver, Telegram, chat bridge, heartbeat, cron, database, memory, CRM, calendar, task management, jobs/telemetry, and storage. **Triggers — use this skill when:** - User asks for "status", "bot status", "system status", "operational status" - User asks "is everything running?", "how's Aivena doing?" - User says "health check", "diagnostics", "systems check" - User asks "what's the state of the bot?"

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates. **Triggers — use this skill when:** - User asks to "generate", "create", "update", or "write" a changelog - User mentions "CHANGELOG", "changelog", "release notes" - User says "document changes", "what changed since last release" - User wants to "prepare a release" and needs a changelog entry - User asks to "clean up" or "reformat" an existing changelog **Covers:** Any git-based project. Handles Conventional Commits (feat/fix/chore), Angular convention, basic prefixes (Add/Fix/Remove), and freeform commit messages. Outputs Keep a Changelog format with optional Common Changelog enhancements.

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

cmux

Free

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.

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

Review code for quality, security, performance, and maintainability. Use when reviewing PRs, auditing a codebase, or refactoring. Covers TypeScript, Node.js, infrastructure-as-code, and full-stack web apps.

The English summary is being prepared. Showing the original description.

espennilsen/pi122Updated Oct 12, 2026

See all skills by espennilsen

Report a problem with this skill