Obsidian Cli logo

Obsidian Cli

Community
jykim
obsidian-cli

Interact with Obsidian using the official CLI to read, search, create, and manage notes, daily notes, tasks, properties, and more. Use when the user wants to query or manipulate vault content via the obsidian command.

Overview

Publisherjykim
Repositoryclaude-obsidian-skills
Skill nameobsidian-cli
Stars
52
Forks
10
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by jykim on GitHub. Read the source before you install it.

Installation

Install the Obsidian Cli AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/jykim/claude-obsidian-skills/tree/main/obsidian-cli
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jykim/claude-obsidian-skills.git /tmp/claude-obsidian-skills
mkdir -p .claude/skills
cp -r /tmp/claude-obsidian-skills/obsidian-cli .claude/skills/obsidian-cli
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Obsidian Cli in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Obsidian Cli on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Obsidian Cli is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Obsidian CLI Skill

The official Obsidian command-line interface allows you to interact with your vault from the terminal — reading notes, searching, managing properties, handling tasks, and more.

Prerequisites

Verify the CLI is installed and running:

bash
obsidian --version
obsidian help

Requirements:

  • Obsidian v1.12+ (released late 2024)
  • Catalyst license or higher (Obsidian Sync, Publish, or community support)
  • Obsidian must be running — the CLI communicates via IPC with a live instance
  • macOS, Windows, or Linux support

If not installed, download the latest Obsidian installer from https://obsidian.md/download

Key Concepts

IPC-Based Communication

The obsidian-cli works by connecting to a running Obsidian instance via inter-process communication (IPC). It does not manipulate files directly; all commands are executed through Obsidian's API, ensuring proper handling of plugins, sync, and vault structure.

File vs Path Parameters

Two ways to target files:

  • file=<name> — Resolves by name like wikilinks. Searches across folders to find the file. More flexible but slower.

    • Example: obsidian read file="My Note" (finds the file regardless of folder)
    • Best for: Quick access when you know the filename
  • path=<path> — Exact path from vault root. No searching, just direct access.

    • Example: obsidian read path="Journal/2026-02-28.md" (exact path required)
    • Best for: Performance-sensitive operations, when you know the exact location

Vault Parameter

By default, commands run against the currently active vault. Override with:

bash
obsidian read file="Note" vault="My Vault"

Quoting & Escaping

  • Spaces in values — Always quote: name="My Note" not name=My Note
  • Newlines — Use \n: content="Line 1\nLine 2"
  • Tabs — Use \t: content="Column1\tColumn2"

Flags vs Parameters

  • Flags — Boolean options, no value needed: --verbose, --overwrite, --inline
  • Parameters — Key=value pairs: file="Name", query="term", limit=10

Syntax Guide

Basic Command Structure

bash
obsidian <command> [parameter=value...] [--flag...]

Examples

bash
# Parameters with simple values
obsidian read file="Journal"

# Parameters with spaces (quoted)
obsidian create name="My Daily Note" content="Hello world"

# Multiple parameters
obsidian search query="TODO" path="Projects" limit=10

# Flags
obsidian files folder="Project" --verbose

# Mixed
obsidian create path="Journal/2026-02-28.md" content="Daily note" --open

File Targeting Patterns

Read a Note by Name

bash
obsidian read file="Meeting Notes"

Searches vault for Meeting Notes.md anywhere.

Read by Exact Path

bash
obsidian read path="Project/2026-02-28.md"

Reads from exact location; faster for known paths.

Create with Template

bash
obsidian create name="New Note" template="Daily Note Template"

List Files in Folder

bash
obsidian files folder="Journal"

Command Reference

Commands are organized by category. Use obsidian help <command> for detailed options.

File Operations

read

Read file contents. Returns full text or structured data.

bash
# Read by name
obsidian read file="My Note"

# Read by path
obsidian read path="Journal/2026-02-28.md"

# Active file (omit file/path params)
obsidian read
create

Create a new file with optional content and template.

bash
# Simple creation
obsidian create name="New Note"

# With content
obsidian create name="Daily Note" content="Today's note"

# With template
obsidian create name="Meeting" template="Meeting Template" --open --newtab

# With exact path
obsidian create path="Journal/2026-02-28.md" content="..." --overwrite
append

Add content to end of file.

bash
obsidian append file="My Note" content="New line"

# Inline (no newline before appended text)
obsidian append file="My Note" content=" continued" --inline
prepend

Add content to beginning of file.

bash
obsidian prepend file="My Note" content="Header\n"

# Inline
obsidian prepend file="My Note" content="[Start] " --inline
delete

Remove a file (sends to trash by default).

bash
obsidian delete file="Old Note"

# Permanent deletion
obsidian delete path="Archive/obsolete.md" --permanent
rename

Change a file's name.

bash
obsidian rename file="Old Name" name="New Name"
move

Move file to different folder.

bash
obsidian move file="Note" to="Archive"

# Move with new name
obsidian move path="Journal/old.md" to="Archive/2025-old.md"
open

Open file in Obsidian editor.

bash
obsidian open file="Note"

# Open in new tab
obsidian open file="Note" --newtab

File Information

file

Show metadata about a file.

bash
obsidian file file="My Note"

Returns: created date, modified date, size, links, backlinks count.

files

List all files in vault (optionally filtered).

bash
# All files
obsidian files

# By folder
obsidian files folder="Journal"

# By extension
obsidian files ext="md"

# With count
obsidian files folder="Project" --total
folder

Show folder information.

bash
obsidian folder path="Journal"

# Specific info
obsidian folder path="Journal" info=files    # Number of files
obsidian folder path="Journal" info=size     # Total size
obsidian folder path="Journal" info=folders  # Number of subfolders
folders

List folders in vault.

bash
obsidian folders

# Subfolders only
obsidian folders folder="Archive"

# With count
obsidian folders folder="Journal" --total
vault

Show vault information.

bash
obsidian vault                        # All info
obsidian vault info=name              # Vault name
obsidian vault info=path              # Vault folder path
obsidian vault info=files             # Total files
obsidian vault info=size              # Total vault size
vaults

List all known vaults.

bash
obsidian vaults

# Verbose (include paths)
obsidian vaults --verbose
wordcount

Count words and characters in file.

bash
obsidian wordcount file="Chapter 1"

# Word count only
obsidian wordcount file="Chapter 1" --words

# Character count only
obsidian wordcount file="Chapter 1" --characters

Searching & Navigation

search

Full-text search vault.

bash
# Basic search
obsidian search query="TODO"

# Limited results
obsidian search query="meeting" limit=5

# In folder
obsidian search query="TODO" path="Projects"

# Case sensitive
obsidian search query="MyClass" --case

# JSON output
obsidian search query="bug" format=json
search:context

Search with matching line context.

bash
# Show surrounding lines
obsidian search:context query="TODO" path="Journal"

# JSON format
obsidian search:context query="error" format=json
search:open

Open search dialog in Obsidian.

bash
obsidian search:open query="TODO"

Links & References

links

List outgoing links from a file.

bash
obsidian links file="My Note"

# Count only
obsidian links file="My Note" --total
backlinks

List files linking to a target (incoming links).

bash
obsidian backlinks file="Project Overview"

# Include link counts
obsidian backlinks file="Project Overview" --counts

# Format output
obsidian backlinks file="Project" format=json
aliases

Show aliases for a file (alternative names).

bash
obsidian aliases file="Meeting"

# Count aliases
obsidian aliases file="Meeting" --total

# Verbose (include paths)
obsidian aliases file="Meeting" --verbose

# Aliases for active file
obsidian aliases --active
unresolved

List broken/unresolved links in vault.

bash
obsidian unresolved

# Count only
obsidian unresolved --total

# Verbose (show source files)
obsidian unresolved --verbose

# JSON format
obsidian unresolved format=json
deadends

List files with no outgoing links.

bash
obsidian deadends

# Count
obsidian deadends --total

# Include non-markdown files
obsidian deadends --all
orphans

List files with no incoming links (not referenced).

bash
obsidian orphans

# Count
obsidian orphans --total

# Include non-markdown
obsidian orphans --all

Tags

tags

List all tags in vault with frequencies.

bash
obsidian tags

# For specific file
obsidian tags file="My Note"

# By path
obsidian tags path="Journal"

# With counts
obsidian tags --counts

# Sort by count
obsidian tags --counts sort=count

# JSON format
obsidian tags format=json

# Tags for active file
obsidian tags --active
tag

Get info about a specific tag.

bash
obsidian tag name=meeting

# Count only
obsidian tag name=meeting --total

# List files with tag
obsidian tag name=work --verbose

Tasks & Checklists

tasks

List all tasks in vault.

bash
obsidian tasks

# Incomplete tasks
obsidian tasks --todo

# Completed tasks
obsidian tasks --done

# By file
obsidian tasks file="My Note"

# By path
obsidian tasks path="Journal"

# By status (e.g., "x" for done, "-" for in progress)
obsidian tasks status="-"

# Verbose (group by file with line numbers)
obsidian tasks --verbose

# JSON format
obsidian tasks format=json

# Tasks from daily note
obsidian tasks --daily
task

Show or update a single task.

bash
# Show task at line 5 in Journal/2026-02-28.md
obsidian task ref="Journal/2026-02-28.md:5"

# Toggle task status
obsidian task ref="Journal/2026-02-28.md:5" --toggle

# Mark as done
obsidian task ref="Journal/2026-02-28.md:5" --done

# Mark as incomplete
obsidian task ref="Journal/2026-02-28.md:5" --todo

# Set custom status (e.g., in progress)
obsidian task file="My Note" line=3 status="-"

Properties & Metadata

properties

List all properties in vault with usage counts.

bash
obsidian properties

# Properties for specific file
obsidian properties file="My Note"

# By path
obsidian properties path="Journal"

# With counts
obsidian properties --counts

# Count specific property
obsidian properties name=category --total

# Sort by count
obsidian properties sort=count

# YAML format
obsidian properties format=yaml

# JSON format
obsidian properties format=json

# Properties for active file
obsidian properties --active
property:set

Set a property on a file.

bash
obsidian property:set name=category value=work file="My Note"

# With type (auto-inferred if not specified)
obsidian property:set name=priority value=high file="Task" type=text

# List type
obsidian property:set name=tags value="work,urgent" file="Note" type=list

# Number type
obsidian property:set name=wordcount value=1500 file="Article" type=number

# Checkbox
obsidian property:set name=reviewed value=true file="Document" type=checkbox

# Date
obsidian property:set name=deadline value=2026-03-01 file="Task" type=date
property:read

Get a property value from a file.

bash
obsidian property:read name=category file="My Note"

# By path
obsidian property:read name=priority path="Tasks/urgent.md"
property:remove

Delete a property from a file.

bash
obsidian property:remove name=draft file="Article"

# By path
obsidian property:remove name=status path="Archive/old.md"

Templates

templates

List all templates in vault.

bash
obsidian templates

# Count
obsidian templates --total
template:read

Read template content (useful for understanding what template will insert).

bash
obsidian template:read name="Daily Note"

# Resolve variables
obsidian template:read name="Daily Note" --resolve title="2026-02-28"
template:insert

Insert template into active file.

bash
obsidian template:insert name="Daily Note"

Bookmarks

bookmarks

List all bookmarks.

bash
obsidian bookmarks

# Count
obsidian bookmarks --total

# Verbose (show types)
obsidian bookmarks --verbose

# JSON format
obsidian bookmarks format=json
bookmark

Add a bookmark.

bash
# Bookmark a file
obsidian bookmark file="Journal/2026-02-28.md"

# Bookmark a section
obsidian bookmark file="Project Overview" subpath="Goals"

# Bookmark a folder
obsidian bookmark folder="Archive"

# Bookmark a search
obsidian bookmark search="TODO"

# Bookmark a URL
obsidian bookmark url="https://example.com" title="My Site"

Bases (Database-like Tables)

bases

List all base files in vault.

bash
obsidian bases
base:views

List views in a base.

bash
obsidian base:views file="Contacts"

# By path
obsidian base:views path="Databases/Projects.md"
base:query

Query a base and return filtered results.

bash
# Query a view
obsidian base:query file="Contacts" view="Active"

# JSON output
obsidian base:query file="Projects" view="2026" format=json

# CSV output
obsidian base:query file="Contacts" view="All" format=csv
base:create

Create a new record in a base.

bash
obsidian base:create file="Contacts" view="All" name="John Doe" email="john@example.com"

# With initial content
obsidian base:create file="Projects" view="Active" name="Project X" content="Details..."

# Open after creating
obsidian base:create file="Tasks" view="Backlog" name="Task 1" --open

Publishing

publish:status

Check what files have unpublished changes.

bash
obsidian publish:status

# New files only
obsidian publish:status --new

# Changed files
obsidian publish:status --changed

# Deleted files
obsidian publish:status --deleted

# Count
obsidian publish:status --total
publish:add

Publish files to Obsidian Publish.

bash
# Publish specific file
obsidian publish:add file="Project Overview"

# Publish all changed
obsidian publish:add --changed
publish:remove

Unpublish a file.

bash
obsidian publish:remove file="Archived Note"

# By path
obsidian publish:remove path="Archive/old.md"
publish:list

List published files.

bash
obsidian publish:list

# Count
obsidian publish:list --total
publish:site

Show Publish site info.

bash
obsidian publish:site
publish:open

Open published file in browser.

bash
obsidian publish:open file="My Article"

Sync & Version History

sync:status

Check sync status.

bash
obsidian sync:status
sync

Pause or resume sync.

bash
obsidian sync off   # Pause sync

obsidian sync on    # Resume sync
sync:history

List version history for a file in sync.

bash
obsidian sync:history file="My Note"

# Count versions
obsidian sync:history file="My Note" --total
sync:read

Read a specific sync version.

bash
obsidian sync:read file="My Note" version=5
sync:restore

Restore a file to a previous sync version.

bash
obsidian sync:restore file="My Note" version=3
sync:deleted

List files deleted in sync.

bash
obsidian sync:deleted

# Count
obsidian sync:deleted --total
sync:open

Open sync history UI.

bash
obsidian sync:open file="My Note"
history

List local file history versions.

bash
obsidian history file="My Note"

# By path
obsidian history path="Journal/2026-02-28.md"
history:read

Read a local history version.

bash
obsidian history:read file="My Note" version=2
history:restore

Restore from local history.

bash
obsidian history:restore file="My Note" version=1
diff

Compare local and sync versions.

bash
obsidian diff file="My Note"

# Diff specific versions
obsidian diff file="My Note" from=1 to=5

# Filter by source
obsidian diff file="My Note" filter=local
obsidian diff file="My Note" filter=sync

Plugins

plugins

List all installed plugins.

bash
obsidian plugins

# Core plugins only
obsidian plugins filter=core

# Community plugins
obsidian plugins filter=community

# Include versions
obsidian plugins --versions

# JSON format
obsidian plugins format=json
plugins:enabled

List enabled plugins.

bash
obsidian plugins:enabled

# By type
obsidian plugins:enabled filter=core
plugin

Get info about a plugin.

bash
obsidian plugin id=dataview
plugin:enable

Enable a plugin.

bash
obsidian plugin:enable id=dataview
plugin:disable

Disable a plugin.

bash
obsidian plugin:disable id=templater
plugin:install

Install a community plugin.

bash
# Install and enable
obsidian plugin:install id=obsidian-git --enable

# Just install
obsidian plugin:install id=dataview
plugin:uninstall

Remove a plugin.

bash
obsidian plugin:uninstall id=templater
plugin:reload

Reload a plugin (development use).

bash
obsidian plugin:reload id=my-plugin
plugins:restrict

Toggle restricted mode.

bash
obsidian plugins:restrict on    # Enable restricted mode

obsidian plugins:restrict off   # Disable restricted mode

Themes

themes

List installed themes.

bash
obsidian themes

# Include versions
obsidian themes --versions
theme

Get current theme or info about a theme.

bash
obsidian theme                  # Show active theme

obsidian theme name=Obsidian    # Info about a theme
theme:set

Set active theme.

bash
obsidian theme:set name=Obsidian

# Back to default
obsidian theme:set name=""
theme:install

Install community theme.

bash
obsidian theme:install name="Minimal" --enable

# Just install
obsidian theme:install name="Things"
theme:uninstall

Remove theme.

bash
obsidian theme:uninstall name="Minimal"

Snippets (CSS)

snippets

List CSS snippets.

bash
obsidian snippets
snippets:enabled

List enabled snippets.

bash
obsidian snippets:enabled
snippet:enable

Enable a CSS snippet.

bash
obsidian snippet:enable name="hide-metadatablock"
snippet:disable

Disable a CSS snippet.

bash
obsidian snippet:disable name="custom-colors"

Commands & Hotkeys

commands

List all available Obsidian command IDs.

bash
obsidian commands

# Filter by prefix
obsidian commands filter=editor
command

Execute an Obsidian command.

bash
obsidian command id=editor:save-file
hotkeys

List hotkeys (keyboard shortcuts).

bash
obsidian hotkeys

# Verbose (show if custom or default)
obsidian hotkeys --verbose

# Include all (even commands without hotkeys)
obsidian hotkeys --all

# Count
obsidian hotkeys --total
hotkey

Get hotkey for a specific command.

bash
obsidian hotkey id=editor:save-file --verbose

Workspaces

workspaces

List saved workspaces.

bash
obsidian workspaces

# Count
obsidian workspaces --total
workspace

Show workspace tree.

bash
obsidian workspace

# Include workspace item IDs
obsidian workspace --ids
workspace:save

Save current layout as a workspace.

bash
obsidian workspace:save name="Writing"

obsidian workspace:save name="Development"
workspace:load

Load a saved workspace.

bash
obsidian workspace:load name="Writing"
workspace:delete

Delete a saved workspace.

bash
obsidian workspace:delete name="Old Workspace"

Tabs & Windows

tabs

List open tabs.

bash
obsidian tabs

# Include tab IDs
obsidian tabs --ids
tab:open

Open a new tab.

bash
obsidian tab:open file="Journal/2026-02-28.md"

# Specific group
obsidian tab:open group=main-group file="Note"

# View type
obsidian tab:open view=search

Utility & Navigation

open

Open a file in editor (same as open in File Operations).

bash
obsidian open file="Note"
random

Open a random note.

bash
obsidian random

# From folder
obsidian random folder="Journal"

# In new tab
obsidian random --newtab
random:read

Read a random note.

bash
obsidian random:read

# From folder
obsidian random:read folder="Ideas"
recents

List recently opened files.

bash
obsidian recents

# Count
obsidian recents --total
outline

Show headings in a file.

bash
obsidian outline file="Project Plan"

# Tree format (default)
obsidian outline file="Project Plan" format=tree

# Markdown format
obsidian outline file="Project Plan" format=md

# JSON format
obsidian outline file="Project Plan" format=json

# Count only
obsidian outline file="Project Plan" --total
reload

Reload the vault.

bash
obsidian reload
restart

Restart Obsidian completely.

bash
obsidian restart
version

Show Obsidian version.

bash
obsidian version

Developer Tools

dev:screenshot

Take a screenshot of Obsidian UI.

bash
obsidian dev:screenshot path=screenshot.png
dev:console

Show captured console messages.

bash
obsidian dev:console

# Filter by level
obsidian dev:console level=error

# Clear buffer
obsidian dev:console --clear

# Limit output
obsidian dev:console limit=20
dev:errors

Show captured errors.

bash
obsidian dev:errors

# Clear
obsidian dev:errors --clear
dev:debug

Attach/detach Chrome DevTools debugger.

bash
obsidian dev:debug on   # Attach

obsidian dev:debug off  # Detach
dev:dom

Query DOM elements.

bash
# Find elements
obsidian dev:dom selector=".cm-editor"

# Get text
obsidian dev:dom selector=".status-bar" --text

# Count matches
obsidian dev:dom selector="button" --total

# Get attribute
obsidian dev:dom selector="a.link" attr=href

# Get CSS property
obsidian dev:dom selector=".title" css=color
dev:css

Inspect CSS with source locations.

bash
obsidian dev:css selector=".heading"

# Filter by property
obsidian dev:css selector=".text" prop=color
dev:cdp

Run Chrome DevTools Protocol command.

bash
obsidian dev:cdp method=Page.printToPDF params='{"path":"output.pdf"}'
dev:mobile

Toggle mobile emulation.

bash
obsidian dev:mobile on   # Enable

obsidian dev:mobile off  # Disable
devtools

Toggle Electron dev tools.

bash
obsidian devtools
eval

Execute JavaScript in Obsidian context.

bash
obsidian eval code='app.vault.getMarkdownFiles().length'

# Get custom object
obsidian eval code='app.workspace.activeEditor?.file?.name'

Opening Files After Creation/Modification

Always open newly created or modified files in a new tab to avoid replacing the user's current view:

bash
obsidian open file="New Note" --newtab
obsidian create name="Meeting" template="Meeting Template" --open --newtab

Common Patterns for GOBI Vault

Reading Daily Notes

bash
# Today's journal
obsidian read file="Journal"

# Specific date
obsidian read path="Journal/2026-02-28.md"

Appending to Journal

bash
obsidian append file="Journal" content="\n## Reflection\n[Your thoughts]"

Finding Todos

bash
# All incomplete tasks
obsidian tasks --todo

# TODOs in projects
obsidian search query="TODO" path="Projects"

Getting File Properties

bash
# Read specific property
obsidian property:read name=tags file="Article"

# All properties on a file
obsidian properties file="My Note"

Searching Your Vault

bash
# Find by keyword
obsidian search query="machine learning" limit=10

# In specific folder
obsidian search query="meeting" path="Work"

# Case-sensitive
obsidian search query="MyClass" --case

Managing Projects

bash
# List all project files
obsidian files folder="Projects"

# Get project outline
obsidian outline file="Project X"

# Search project issues
obsidian search query="BUG:" path="Projects/ProjectX"

Working with Tags

bash
# All tags and their counts
obsidian tags --counts

# Files with tag
obsidian tag name=important --verbose

# Tags in article
obsidian tags file="Article"

Discovering Options

Every command has built-in help. Use obsidian help to learn more:

bash
# List all commands
obsidian help

# Help for specific command
obsidian help read
obsidian help search
obsidian help property:set

# Short help (in command output)
obsidian <command>

Quality Checklist

Before using obsidian CLI commands:

  • Obsidian is running and responding
  • Correct vault targeted (if using vault= parameter)
  • File name or path is correct
    • Use file= for name-based lookup
    • Use path= for exact vault-root paths
  • Parameters quoted if containing spaces
  • Output format appropriate (json/tsv/csv available for most commands)
  • Understand the difference between metadata (properties/tags) and content

Error Handling

Common Issues

"Obsidian is not running"

  • Solution: Start Obsidian before running CLI commands. The CLI requires IPC connection.

"Vault not found"

  • Solution: Use obsidian vaults to list available vaults, then specify vault="Name"

"File not found" (with file= parameter)

  • Solution: Verify file exists with obsidian files. Consider using path= instead for exact match.

"Permission denied"

  • Solution: Ensure you have read/write permissions in Obsidian vault folder and plugins are not interfering.

Debug Commands

bash
# Check vault status
obsidian vault

# List all files
obsidian files --total

# Test search
obsidian search query="test" limit=1

# Check version
obsidian version

Next Steps: Run obsidian help to explore specific commands, or use pattern examples above for GOBI vault operations.

Frequently asked questions

What does the Obsidian Cli AI skill do?

Interact with Obsidian using the official CLI to read, search, create, and manage notes, daily notes, tasks, properties, and more. Use when the user wants to query or manipulate vault content via the obsidian command.

Why use Obsidian Cli on TypingMind?

Because you install it once and use it with any model. Obsidian Cli is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Obsidian Cli in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jykim/claude-obsidian-skills/tree/main/obsidian-cli. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Obsidian Cli?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Obsidian Cli?

As many as you like. As long as a model supports skills, you can use Obsidian Cli with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Obsidian Cli AI skill free?

Yes. It is published on GitHub by jykim under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇