plugins/obsidian-wiki-engine/skills/obsidian-init/SKILL.md
Initialize and onboard a new project repository as an Obsidian Vault. Covers prerequisite installation, vault configuration, exclusion filters, and validation. Use when setting up Obsidian for the first time in a project.
npx skillsauth add richfrem/agent-plugins-skills obsidian-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill requires Python 3.8+ and standard library only. No external packages needed.
To install this skill's dependencies:
pip-compile ./requirements.in
pip install -r ./requirements.txt
See ./requirements.txt for the dependency lockfile (currently empty — standard library only).
Status: Active Author: Richard Fremmerlid Domain: Obsidian Integration
This skill is the entry point for any project adopting Obsidian. It handles:
The Obsidian desktop app must be installed on the host machine. It is the visual interface for browsing, editing, and viewing the Graph and Canvas.
macOS (Homebrew):
brew install --cask obsidian
Manual Download:
Verify:
ls /Applications/Obsidian.app
The official CLI communicates with a running Obsidian instance via IPC singleton lock. It enables programmatic vault operations (read, search, backlinks, properties).
npm (global install):
npm install -g obsidian-cli
Verify:
obsidian --version
Note: The CLI requires an active Obsidian Desktop instance to communicate with. It operates in "silent" mode by default. For headless/CI environments where Obsidian is not running, our
vault_ops.py(fromobsidian-vault-crud) handles direct filesystem operations without requiring the CLI.
Lossless YAML frontmatter handling requires ruamel.yaml:
pip install ruamel.yaml
For advanced vault features, install these from within the Obsidian app:
| Plugin | Purpose | Required For |
|:-------|:--------|:-------------|
| Dataview | Database-style queries over frontmatter | Structured metadata queries |
| Canvas (built-in) | Visual boards with JSON Canvas spec | obsidian-canvas-architect skill |
| Bases | Table/grid/card views from YAML | obsidian-bases-manager skill |
python ./init_vault.py --vault-root <path>
python ./init_vault.py \
--vault-root <path> \
--exclude "custom_dir/" "*.tmp"
python ./init_vault.py --vault-root <path> --validate-only
.md files.obsidian/ configuration directory (if not present)app.json with sensible exclusion filters for developer repos.gitignore to exclude .obsidian/ (user-specific config)| Pattern | Reason |
|:--------|:-------|
| node_modules/ | NPM dependencies |
| .worktrees/ | Git worktree isolation |
| .vector_data/ | ChromaDB binary data |
| .git/ | Git internals |
| venv/ | Python virtual environments |
| __pycache__/ | Python bytecode cache |
| *.json | Data/config files (not knowledge) |
| *.jsonl | Export payloads |
| learning_package_snapshot.md | Machine-generated bundle |
| bootstrap_packet.md | Machine-generated bundle |
| learning_debrief.md | Machine-generated bundle |
| *_packet.md | Audit/review bundles |
| *_digest.md | Context digests |
| dataset_package/ | Export artifacts |
These are giant concatenated snapshots produced by bundler/distiller scripts. Indexing them in Obsidian would pollute the graph with thousands of false backlinks pointing into machine-generated text, not human-authored knowledge.
01_PROTOCOLS/, ADRs/, etc. appear in sidebar[[link]] to confirm navigation worksexport VAULT_PATH=/path/to/vaultAfter the vault is initialized, you can optionally initialize the LLM Wiki
Engine layer. This creates a wiki_sources.json manifest — the multi-source
registry that tells the wiki engine which raw content folders to index.
This is the wiki equivalent of
rlm_profiles.jsonin the RLM system. Each named entry inwiki_sources.jsonis a raw content directory that will be parsed into Karpathy-style wiki nodes. No files are moved.
The sub-agent interviews you interactively to register your raw content directories:
/wiki-init
Or directly:
python ./scripts/raw_manifest.py --init --wiki-root /path/to/wiki-root
For each source folder you want to index, it asks:
| Question | Example Answer |
|:---------|:---------------|
| Wiki root path? | /path/to/vault/wiki-root |
| Source folder path? | /path/to/vault/notes |
| Label for this source? | daily-notes |
| File extensions? | .md (default) |
| Subdirectories to exclude? | _archive, *.tmp |
| Add another source? | yes/no |
rlm_wiki_raw_sources_manifest.jsonUses the same flat schema as rlm-factory and vector-db for consistency:
{
"description": "Source raw content for Obsidian Wiki",
"include": [
"plugins/",
"plugin-research/"
],
"exclude": [
".git/",
"node_modules/",
".venv/",
"__pycache__/"
],
"recursive": true
}
Saved to: .agent/learning/rlm_wiki_raw_sources_manifest.json
/wiki-ingest <- parse all registered sources, build wiki nodes
/wiki-distill <- generate RLM summaries (cheapest available LLM CLI)
/wiki-query <- start querying the wiki
This skill is project-agnostic. It works on any Git repository with markdown files. The exclusion filters are sensible defaults for developer projects. When reusing this plugin in other projects, simply run the init script with the new project's root path.
# 1. Install prerequisites
brew install --cask obsidian # Desktop app
npm install -g obsidian-cli # CLI tools
pip install ruamel.yaml # Lossless YAML
# 2. Initialize vault
python ./init_vault.py \
--vault-root /path/to/your/project
# 3. Set environment variable
export VAULT_PATH=/path/to/your/project
# 4. Open in Obsidian app
open /Applications/Obsidian.app
data-ai
Task management agent. Auto-invoked for task creation, status tracking, and kanban board operations using Markdown files across lane directories. V2 enforces Kanban Sovereignty constraints preventing manual task file edits.
development
Create, audit, repair, and document cross-platform symlinks that work correctly on both Windows and macOS/Linux. Use this skill whenever the user mentions symlinks, symbolic links, junction points, .gitconfig symlinks, broken links after git pull, cross-platform path issues, or needs help with ln -s equivalents on Windows. Also trigger when the user reports that files are missing or wrong after switching between Mac and Windows machines using Git. This skill solves the common problem where symlinks committed on macOS show up as plain text files on Windows (and vice versa) because of Git's core.symlinks setting or missing Developer Mode / elevated permissions. **IMPORTANT FOR WINDOWS USERS:** Developer Mode must be enabled before creating symlinks. Without it, Git will check out symlinks as plain-text files or hardlinks, breaking cross-platform workflows.
development
Interactively prepares a targeted Red Team Review package. It conducts a brief discovery interview to determine the threat model, generates a strict security auditor prompt, compiles a manifest of relevant project files, and bundles them into a single Markdown artifact or ZIP archive ready for an external LLM (like Grok, ChatGPT, or Gemini) or a human reviewer.
tools
Reduces AI agent context bloat across three dimensions: (1) duplicate skill deduplication — clears stale agent directory copies since the IDE already reads from plugins/ directly; (2) instruction file optimization — rewrites CLAUDE.md, GEMINI.md, or .github/copilot-instructions.md to under ~80 lines, keeping only rules that directly change agent behaviour; (3) session token efficiency — guidance on cheap subagent delegation, context compounding across turns, and session hygiene. Trigger with "optimize context", "reduce context bloat", "deduplicate skills", "trim CLAUDE.md", "trim GEMINI.md", "fix my context usage", "why are my skills loading twice", "how do I reduce token usage", or "clean up agent directories".