Obsidian Cli

Automate and integrate Obsidian CLI for efficient command-line knowledge base management

Obsidian CLI is a community skill for interacting with Obsidian vaults using command-line tools, covering note creation, search, property management, task operations, and plugin development workflows for vault automation.

What Is This?

Overview

Obsidian CLI provides patterns for managing Obsidian vaults through command-line interfaces. It covers note creation and editing with frontmatter property injection from terminal commands, vault search using full-text and property-based queries for finding notes programmatically, task management with commands for listing, completing, and filtering tasks across vault notes, property batch operations for updating frontmatter fields across multiple notes simultaneously, and plugin development utilities including hot reload, JavaScript execution, and screenshot capture. The skill enables developers and power users to automate vault operations, build scripts for bulk note processing, and integrate Obsidian data into external workflows.

Who Should Use This

This skill serves Obsidian power users who prefer terminal workflows for note management, developers building automation scripts that interact with vault contents, and plugin developers testing and debugging Obsidian plugins from the command line.

Why Use It?

Problems It Solves

Managing vault notes through the GUI is slow for bulk operations like renaming, tagging, or property updates. Searching across large vaults for specific content patterns needs programmatic access beyond the built-in search. Automating daily note creation with pre-filled templates requires scripting capabilities. Plugin development iterations need quick reload and test cycles.

Core Highlights

Note manager creates, reads, and updates vault notes with frontmatter handling. Search engine queries vault content with regex patterns and property filters. Task tracker lists and modifies task checkboxes across vault notes. Plugin tools reload plugins, execute JavaScript, and capture vault screenshots.

How to Use It?

Basic Usage

obsidian-cli create \
  --vault ~/MyVault \
  --path "Projects/new-feature.md" \
  --property status=active \
  --property priority=high \
  --content "## Overview\n\n"
"Project description here."

obsidian-cli search \
  --vault ~/MyVault \
  --query "API integration" \
  --format json

obsidian-cli tasks list \
  --vault ~/MyVault \
  --status incomplete \
  --sort due

obsidian-cli property set \
  --vault ~/MyVault \
  --path "Projects/*.md" \
  --key reviewed \
  --value true

obsidian-cli read \
  --vault ~/MyVault \
  --path "Daily/2025-03-06.md"

Real-World Examples

#!/bin/bash
DATE=$(date +%Y-%m-%d)
DAY=$(date +%A)
VAULT="$HOME/MyVault"

obsidian-cli create \
  --vault "$VAULT" \
  --path "Daily/${DATE}.md" \
  --property date="${DATE}" \
  --property day="${DAY}" \
  --property type=daily \
  --template "Templates/daily.md"

YESTERDAY=$(date -d yesterday \
  +%Y-%m-%d)
TASKS=$(obsidian-cli tasks list \
  --vault "$VAULT" \
  --path "Daily/${YESTERDAY}.md" \
  --status incomplete \
  --format text)

if [ -n "$TASKS" ]; then
  obsidian-cli append \
    --vault "$VAULT" \
    --path "Daily/${DATE}.md" \
    --content \
    "\n## Carried Over\n${TASKS}"
fi

obsidian-cli search \
  --vault "$VAULT" \
  --path "Daily/*.md" \
  --property "date>=2025-03-01" \
  --property "date<=2025-03-07" \
  --format summary

Advanced Tips

Create shell aliases for frequently used vault operations to speed up daily workflows. Pipe CLI output to jq for JSON processing when building vault analytics scripts. Schedule daily note creation using cron jobs that run the CLI with template flags for consistent note structure.

When to Use It?

Use Cases

Build an automated daily note system that creates templated notes and carries over incomplete tasks. Create a bulk tagging script that updates properties across hundreds of notes matching a pattern. Implement a vault backup pipeline that exports specific note collections to external formats.

Related Topics

Obsidian vault management, command-line productivity, note automation, shell scripting, and personal knowledge management.

Important Notes

Requirements

Obsidian CLI tool installed and configured with vault paths. Obsidian desktop application for plugin development features. Shell environment with bash or zsh for scripting.

Usage Recommendations

Do: use the format flag to control output between human readable text and machine parseable JSON. Back up vaults before running bulk property update operations. Test commands with a dry-run flag when available before modifying vault contents.

Don't: run destructive bulk operations without first testing on a small subset of notes. Modify vault files directly with sed or awk when the CLI handles frontmatter parsing correctly. Schedule automated scripts without logging to track what changes were made.

Limitations

CLI operations require the vault to be accessible on the local file system. Some Obsidian features like canvas and graph view are not accessible through CLI commands. Concurrent CLI and GUI access may cause sync conflicts on notes being edited simultaneously.