Obsidian - read, search, write and edit direct to obsidian vault.

v1.0.0

Work with Obsidian vaults as a knowledge base. Features: fuzzy/phonetic search across all notes, auto-folder detection for new notes, create/read/edit notes with frontmatter, manage tags and wikilinks. Use when: querying knowledge base, saving notes/documents, editing existing notes by user instructions.

6· 6.5k·70 current·72 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description match the included Python scripts: both implement searching, reading, creating and editing Markdown notes in an Obsidian vault. That functionality is coherent with the stated purpose.
Instruction Scope
SKILL.md and the scripts operate only on a local vault folder (search, read, write). However the instructions reference hardcoded, user-specific filesystem paths (/home/ruslan/...) and instruct cd into a specific scripts path. This is an operational mismatch (the paths may not exist for other users) and should be updated to use relative paths or a configurable vault.
Install Mechanism
There is no install spec (instruction-only), which minimizes supply-chain risk. The included scripts rely on Python and optionally ripgrep/grep; those binaries are not declared in the skill metadata, creating a practical mismatch (the skill will fail or behave differently if rg/grep/yaml are missing).
!
Credentials
Metadata declares no required env vars, yet SKILL.md and scripts use OBSIDIAN_VAULT and the code falls back to a hardcoded DEFAULT_VAULT pointing to /home/ruslan/webdav/data/ruslain. This is a privacy/operational concern: the skill will read/write whatever path is configured (or that hardcoded path if present). No credentials are requested, but the default path leak suggests the package was packaged from a specific user's environment and may inadvertently expose that location.
Persistence & Privilege
always is false and the skill does not request elevated privileges or modify other skills. It does perform file writes to the user's vault (create/edit notes) which is expected for its purpose.
What to consider before installing
This skill is functionally aligned with managing an Obsidian vault, but it contains a hardcoded default vault path and references a developer-specific scripts location. Before installing: (1) verify or set OBSIDIAN_VAULT to your intended vault (do not rely on the packaged default); (2) back up your vault — the skill will create and edit files; (3) ensure Python, and optionally ripgrep (rg) and a YAML library (PyYAML), are available; (4) inspect the two included scripts yourself to confirm there are no unwanted behaviors (they operate locally and do not make network calls, but will read/write all .md files under the vault); (5) consider asking the author to remove hardcoded paths and declare required binaries/envs in metadata. These inconsistencies look like sloppy packaging rather than deliberate malice, but verify before granting filesystem access.

Like a lobster shell, security has layers — review code before you run it.

latestvk979pmems3dc6d3cwe1d42n1z580krbt
6.5kdownloads
6stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

Obsidian Knowledge Base

Obsidian vault = folder with Markdown files + .obsidian/ config.

Configuration

  • Vault Path: /home/ruslan/webdav/data/ruslain
  • Env: OBSIDIAN_VAULT=/home/ruslan/webdav/data/ruslain

CLI Usage

Scripts location: /home/ruslan/.openclaw/workspace/skills/obsidian/scripts

Note: Global flags (--vault, --json) must come BEFORE the command.

export OBSIDIAN_VAULT=/home/ruslan/webdav/data/ruslain
cd /home/ruslan/.openclaw/workspace/skills/obsidian/scripts

# Search (fuzzy/phonetic) - uses ripgrep for speed
python3 obsidian_search.py "$OBSIDIAN_VAULT" "query" --limit 10 --json

# List notes
python3 obsidian_cli.py --json list                    # all notes
python3 obsidian_cli.py --json list "Projects"         # in folder

# List folders
python3 obsidian_cli.py --json folders

# Read note
python3 obsidian_cli.py --json read "Note Name"

# Create note
python3 obsidian_cli.py --json create "Title" -c "Content" -f "Folder" -t tag1 tag2
python3 obsidian_cli.py --json create "Title" -c "Content" --auto-folder  # auto-detect folder

# Edit note
python3 obsidian_cli.py --json edit "Note" append -c "Text to append"
python3 obsidian_cli.py --json edit "Note" prepend -c "Text at start"
python3 obsidian_cli.py --json edit "Note" replace -c "New full content"
python3 obsidian_cli.py --json edit "Note" replace-section -s "Summary" -c "New section text"

# Tags
python3 obsidian_cli.py --json tags

# Links (incoming/outgoing)
python3 obsidian_cli.py --json links "Note Name"

# Suggest folder for content
python3 obsidian_cli.py --json suggest-folder "content text" --title "Note Title"

Workflow: Query Knowledge Base

  1. Run obsidian_search.py with user query
  2. Read top results if needed for context
  3. Formulate answer based on found content
  4. Cite sources: [[Note Name]]

Workflow: Save Note

  1. If no folder specified → run suggest-folder or use --auto-folder
  2. Create note with create command
  3. Add appropriate tags based on content
  4. Report created path to user

Workflow: Edit Note by Prompt

User prompts like:

  • "Добавь резюме в конец заметки X" → edit X append -c "..."
  • "Перепиши заметку Y более кратко" → read note, rewrite, edit Y replace -c "..."
  • "Добавь секцию 'Выводы' в заметку Z" → edit Z replace-section -s "Выводы" -c "..."

Note Format

---
created: 2024-01-15T10:30:00
modified: 2024-01-15T12:00:00
tags:
  - project
  - work
---

# Title

Content with [[wikilinks]] and #inline-tags.

Wikilinks

  • [[Note Name]] — link to note
  • [[Note Name|Display Text]] — link with alias
  • [[Note Name#Section]] — link to section

Frontmatter Fields

Standard fields:

  • created — creation timestamp
  • modified — last edit timestamp
  • tags — list of tags
  • aliases — alternative names for linking

Search Behavior

obsidian_search.py uses:

  • ripgrep for fast initial filtering
  • Title matching (highest weight)
  • Tag matching
  • Fuzzy content search with phonetic transliteration (RU↔EN)
  • Returns: path, title, score, matched context

Comments

Loading comments...