Integrates OpenClaw agents with an Obsidian vault for shared knowledge management. Supports structured reading of task lists, milestones, team info, and safe writes back to vault files.
Set the vault path via environment variable OBSIDIAN_VAULT_PATH. If not set, uses the default path noted in AGENTS.md.
Environment variables used:
OBSIDIAN_VAULT_PATH — Path to the Obsidian vault directory (optional, defaults to agent's configured path)bash
python scripts/vault-read.py <vault-path> --file open-questions.md --format json
Returns JSON array of tasks parsed from checkbox items, with priority (critical/important/nice), status (todo/done), owner, and title.
bash
python scripts/vault-write.py <vault-path> --file open-questions.md --action add-task --title "New task" --priority important --owner Dave
bash
python scripts/vault-write.py <vault-path> --file open-questions.md --action mark-done --task-id 3
Files are discovered by their frontmatter type: field as the primary method. If a file is moved to a subfolder, it's still found by metadata.
yaml
---
type: open-questions
status: active
---
Fallback chain:
type: field (most reliable — survives moves)*open-questions*)See references/file-formats.md for parsing rules per file type.
CodeMeaningRecoveryERR_VAULT_NOT_FOUNDVault path doesn't existCheck OBSIDIAN_VAULT_PATH or AGENTS.mdERR_FILE_NOT_FOUNDRequested file not foundRun discovery to find by metadataERR_PARSE_FAILEDMalformed markdownReturn partial data with warningERR_CONFLICTFile changed since last readRe-read, resolve manually
<vault>/.vault-audit.log (timestamp, agent, file, action)Solo mode (default): No config needed. All agents have full read/write access.
Team mode (v2, not yet implemented): Optional permissions block in SKILL.md for folder-level access control per agent.
vault-read.py — Read and parse vault files into structured JSONvault-write.py — Write updates back to vault files with safety checksreferences/file-formats.md — Parsing rules for each file type