agentleFS
kv0906kv0906/pm-kit/.claude/skills/obsidian-cli/SKILL.md

obsidian-cli

Skill138 starsChanged 7 months agoMITView on GitHub

Control Obsidian from the terminal using the `obsidian` CLI. Use when the agent needs to open notes, search the vault inside Obsidian, append/prepend content to the active file, create notes from templates, manage properties, check backlinks/orphans, query Bases, or interact with the running Obsidian app. Requires Obsidian 1.12+ running.

Files
SKILL.md

Obsidian CLI Skill

Control the running Obsidian app from the terminal. Supplementary tool alongside Read/Write/Edit, Glob, Grep, QMD, and Neo4j.

Prerequisites

  • Obsidian 1.12+ running (early access, Catalyst license)
  • CLI registered: Settings > General > Command line interface
  • Templates plugin: Settings > Core Plugins > Templates > Template folder → _templates
  • PATH: /Applications/Obsidian.app/Contents/MacOS (in ~/.zprofile)

Important: Noisy Output

The CLI outputs Loading updated app package... to stdout on every invocation. Always filter with grep -v:

obsidian orphans total 2>/dev/null | grep -v "Loading updated"    # correct — clean output
obsidian orphans total                                             # noisy output in agent context

Shorthand for all examples below: 2>/dev/null | grep -v "Loading updated" is abbreviated as 2>/dev/null for readability, but always include the full filter in practice.

When to Use CLI vs File Tools

ScenarioUse CLIUse File Tools
Open a note in Obsidian UIobsidian openNo equivalent
Read/write file contentEither worksPrefer Read/Write/Edit
Search vault contentobsidian searchPrefer Grep/QMD
Open today's daily note in Obsidianobsidian dailyNo equivalent
Append task to daily noteobsidian daily:appendEither
Create note from templateobsidian create template=XManual template apply
Check backlinks/orphans/unresolvedobsidian backlinks/orphansManual grep
Set/read properties (frontmatter)obsidian property:setEdit tool
Query a Base viewobsidian base:queryNo equivalent
Execute Obsidian commandsobsidian commandNo equivalent

Rule of thumb: CLI for Obsidian-app-specific actions (open files, trigger commands, query Bases, graph relationships). File tools for direct file manipulation.

Agent Integration Patterns

Keeper — Supplementary Health Checks

# Quick vault health stats (supplement Python/Neo4j checks)
obsidian unresolved verbose 2>/dev/null | grep -v "Loading updated"
obsidian orphans total 2>/dev/null | grep -v "Loading updated"
obsidian deadends total 2>/dev/null | grep -v "Loading updated"

Scribe — Quick Capture

# Fast append to daily note (no file path needed)
obsidian daily:append content="- [ ] Review TPM progress" silent 2>/dev/null

# Atomic frontmatter update
obsidian property:set name=status value=shipped path="prd/xmarket/checkout.md" 2>/dev/null

# Template-based note creation
obsidian create name="New PRD" template=prd silent 2>/dev/null

# Surface created note in Obsidian
obsidian open path="decisions/xmarket/2026-02-11-payment-provider.md" newtab 2>/dev/null

Scout — Fallback Search

# Backlinks via Obsidian's graph (alternative to Neo4j)
obsidian backlinks file=Note 2>/dev/null

# Quick text search (alternative to QMD)
obsidian search query="payment provider" 2>/dev/null

Today — Workflow Touchpoints

# Phase 0: Ensure daily note visible in Obsidian
obsidian daily silent 2>/dev/null

# Phase 3: Quick health stats
obsidian unresolved total 2>/dev/null
obsidian orphans total 2>/dev/null

# Phase 5: Surface daily note
obsidian open path="daily/2026-02-11.md" 2>/dev/null

Command Reference

Vault & File Targeting

# Auto-detects vault from CWD
obsidian daily 2>/dev/null

# Target specific vault
obsidian vault=Notes daily 2>/dev/null

# By name (wikilink resolution)
obsidian read file=Recipe 2>/dev/null

# By exact path
obsidian read path="prd/xmarket/checkout.md" 2>/dev/null

Daily Notes

obsidian daily 2>/dev/null                              # Open today's daily note
obsidian daily:read 2>/dev/null                         # Read daily note contents
obsidian daily:append content="- [ ] Task" 2>/dev/null  # Append to daily note
obsidian daily:prepend content="## Morning" 2>/dev/null # Prepend after frontmatter
obsidian daily:append content="text" silent 2>/dev/null # Append without opening

Files & Folders

obsidian files 2>/dev/null                        # List all files
obsidian files folder=prd 2>/dev/null             # List files in folder
obsidian files ext=md total 2>/dev/null           # Count .md files
obsidian open file=Note 2>/dev/null               # Open a file
obsidian open file=Note newtab 2>/dev/null        # Open in new tab
obsidian create name="New Note" 2>/dev/null       # Create file
obsidian create name=Note template=prd 2>/dev/null  # Create from template
obsidian create name=Note content="text" silent overwrite 2>/dev/null
obsidian read file=Note 2>/dev/null               # Read file contents
obsidian append file=Note content="new line" 2>/dev/null
obsidian prepend file=Note content="top line" 2>/dev/null
obsidian move file=Note to="archive/" 2>/dev/null
obsidian delete file=Note 2>/dev/null             # Trash (recoverable)

Search

obsidian search query="meeting notes" 2>/dev/null          # Search vault
obsidian search query="TODO" path=daily 2>/dev/null        # Search in folder
obsidian search query="bug" total 2>/dev/null              # Count matches
obsidian search query="fix" matches 2>/dev/null            # Show match context
obsidian search query="test" format=json 2>/dev/null       # JSON output

Links & Graph

obsidian backlinks file=Note 2>/dev/null           # Backlinks to a file
obsidian backlinks file=Note counts 2>/dev/null    # With link counts
obsidian links file=Note 2>/dev/null               # Outgoing links from a file
obsidian unresolved 2>/dev/null                    # Broken/unresolved links
obsidian unresolved verbose 2>/dev/null            # Include source files
obsidian orphans 2>/dev/null                       # Files with no incoming links
obsidian orphans total 2>/dev/null                 # Count orphans
obsidian deadends 2>/dev/null                      # Files with no outgoing links

Properties (Frontmatter)

obsidian properties file=Note 2>/dev/null                  # List properties
obsidian properties all counts 2>/dev/null                 # All vault properties
obsidian property:read name=status file=Note 2>/dev/null   # Read a property
obsidian property:set name=status value=done file=Note 2>/dev/null  # Set a property
obsidian property:set name=tags value="[a,b]" type=list file=Note 2>/dev/null
obsidian property:remove name=old_prop file=Note 2>/dev/null

Tags

obsidian tags all counts 2>/dev/null              # All tags with counts
obsidian tags file=Note 2>/dev/null               # Tags in a file
obsidian tag name=project verbose 2>/dev/null     # Tag info with file list

Tasks

obsidian tasks 2>/dev/null                         # Tasks in active file
obsidian tasks daily 2>/dev/null                   # Tasks from daily note
obsidian tasks daily todo 2>/dev/null              # Incomplete daily tasks
obsidian tasks all todo 2>/dev/null                # All incomplete tasks
obsidian task daily line=3 toggle 2>/dev/null      # Toggle a daily task

Bases

obsidian bases 2>/dev/null                         # List all .base files
obsidian base:query file=MyBase format=json 2>/dev/null     # Query base
obsidian base:query file=MyBase view=TableView format=csv 2>/dev/null

Templates

obsidian templates 2>/dev/null                     # List templates
obsidian template:read name=prd 2>/dev/null        # Read template
obsidian template:insert name=prd 2>/dev/null      # Insert into active file

Workspace & Tabs

obsidian tabs 2>/dev/null                          # List open tabs
obsidian workspace 2>/dev/null                     # Show workspace tree
obsidian workspace:load name=Writing 2>/dev/null   # Load workspace

Commands

obsidian commands 2>/dev/null                      # List all command IDs
obsidian command id=editor:toggle-bold 2>/dev/null # Execute a command

Common Patterns for This Vault

Quick daily task capture

obsidian daily:append content="- [ ] Review TPM progress" silent 2>/dev/null

Check vault health via CLI

obsidian orphans total 2>/dev/null
obsidian unresolved verbose 2>/dev/null
obsidian deadends total 2>/dev/null

Open a PRD in Obsidian

obsidian open path="prd/tpm/private-market-mvp-phases.md" 2>/dev/null

Find all notes tagged with a project

obsidian tag name=xmarket verbose 2>/dev/null

Query a Base for structured data

obsidian base:query file=Projects format=json 2>/dev/null

Download now (ZIP)

  • Other versions84 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 84

    1. kepano/obsidian-skills★ 49ksame name
    2. breferrari/obsidian-mind★ 5.4ksame name
    3. Atmosphere/atmosphere★ 3.8ksame name
    4. pedronauck/skills★ 641same name
    5. allenhutchison/obsidian-gemini★ 529same name
    6. sd0xdev/sd0x-dev-flow★ 192same name
    7. sd0xdev/sd0x-harness★ 192same name
    8. edrickleong/obsidian-calendar-bases★ 186same name
    9. benoror/obsidianos_work★ 166same name
    10. songzhuozhu/obsidian-llm-wiki★ 121same name

    74 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use defuddle, knap and 6 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • HK-hubSkill

      defuddle

      Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.

      Also in 34 projects that use this

    • lucasmaher-hashSkill

      knap

      Render Markdown from templates and structured data using Knap CLI. Use when the user asks to apply a Knap template, turn JSON or CSV data into notes, batch-generate Markdown files, or format Defuddle output into a note.

      Also in 4 projects that use this

    • 0xHoneyJarSkill

      qmd

      Local markdown search engine for knowledge bases, notes, and documentation. Combines BM25 full-text search, vector semantic search, and LLM re-ranking. Use when searching through markdown notes, retrieving documents, or managing knowledge collections.

      Also in 5 projects that use this

    • MicrosoftSkill

      wiki-ingest

      Use when an operation issue asks you to ingest a captured source from `raw/` into the LLM Wiki, or when the user explicitly says "ingest <slug>". The issue body will name a file under `raw/` (e.g. `raw/karpathy-llm-wiki.md`) and ask for durable wiki pages. Do not invoke this skill for Paperclip activity bundles — those use `paperclip-distill` instead.

      Also in 4 projects that use this

    • huangqianqian120Skill

      firecrawl

      网页数据抓取工具,用于 AI 应用。将网页转换为 Markdown 或结构化 JSON 数据。支持抓取、爬取、搜索等功能。适用于需要获取网页内容的 AI Agent 场景。

      Also in 3 projects that use this

    • Lazily01Skill

      agent-reach

      给 AI Agent "眼睛",让它能看到整个互联网。支持搜索、读网页、提取字幕、读 RSS 等。

      Also in 3 projects that use this

  • In this repository41 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.