Europe/Istanbul
All Projects

Obsidian Vault Generator — AI-Structured Knowledge Bases

Give a short topic brief and get a full Obsidian vault: folders, MOCs, note stubs with YAML front matter, backlinks, and templates — ready to learn from.
August 8, 2025
Python
Markdown
YAML
Jinja2
LLM
Knowledge Management
Obsidian
Starting a new topic is slow: you spend hours designing folders, maps of content, note headers, and cross-links before you can actually learn.
Obsidian Vault Generator (OVG) takes a one-paragraph brief and produces a consistent, cross-linked vault you can use immediately.

  • Folder tree with index.md in each folder (acts as a MOC).
  • Note stubs with front matter: title, tags, aliases, and breadcrumbs fields.
  • Backlinks & cross-links between sibling/parent topics.
  • A Template set (Jinja2) for pages like Concepts, How-To, Reference, Lab.
  • Optional Reading plan and Checklist notes to drive practice.
  • Export in plain Markdown — Obsidian-ready, Git-friendly.

Brief (topic.yaml)
   ↓
Outline builder (LLM or rule-based) → Taxonomy (areas, subareas, depth)
   ↓
Renderer (Jinja2 templates + YAML defaults)
   ↓
Linker (backlinks, MOCs, breadcrumbs) → Post-processor (slugs, tags)
   ↓
Filesystem writer (safe, idempotent)
  • LLM optional: you can use a local model or skip it and pass a custom outline.
  • Determinism: seedable prompts + rule-based post-processing keep results stable.
  • Re-runs: idempotent writes (won’t clobber edited files unless --force).

ovg init "Computer Vision for Robotics" \
  --depth 3 \
  --tags "cv, robotics" \
  --provider local            # or openai/any api provider
  --out ./vaults/cv-robotics
Minimal brief (topic.yaml):
topic: Computer Vision for Robotics
goals:
  - Build intuition + runnable labs
  - Focus on perception stacks for UGV/UAV
facets:
  - Linear algebra & geometry
  - Cameras & calibration
  - Feature detection & SLAM
  - Segmentation & tracking
  - Deployment on Jetson
depth: 3

A concept note template (Jinja2), compatible with Obsidian and Breadcrumbs:
---
title: "{{ note.title }}"
aliases: ["{{ note.alias }}"]
tags: {{ note.tags | tojson }}
bc-parent: "{{ note.parent }}"     # Breadcrumbs plugin field
bc-children: {{ note.children | tojson }}
summary: "{{ note.summary }}"
---

# {{ note.title }}

## TL;DR
{{ note.tldr }}

## Core ideas
- {{ note.core[0] }}
- {{ note.core[1] }}
- {{ note.core[2] }}

## Links
- ↑ [[{{ note.parent }}]]
{% for child in note.children -%}
- ↓ [[{{ child }}]]
{% endfor %}

cv-robotics/
├─ 00_Index/
│  └─ index.md                # global MOC
├─ 01_Fundamentals/
│  ├─ index.md
│  ├─ Linear_Algebra.md
│  └─ Projective_Geometry.md
├─ 02_Sensing/
│  ├─ index.md
│  ├─ Cameras_and_Optics.md
│  └─ Calibration.md
├─ 03_Perception/
│  ├─ index.md
│  ├─ Features_and_SLAM.md
│  ├─ Segmentation.md
│  └─ Tracking.md
├─ 04_Labs/
│  ├─ index.md
│  ├─ Calibrate_Camera.md
│  └─ HSV_Mask_Tuner.md       # hooks to your HSV Color Selector
└─ 99_References/
   ├─ index.md
   └─ Papers_To_Read.md

  • Builds up/down links (bc-parent, bc-children) for Breadcrumbs compatibility.
  • Adds inline sibling links where relevant (shared tags).
  • Generates MOCs that auto-collect children via wikilinks.

  • Provider is configured via YAML (provider: local|api, model name, max tokens).
  • Outline prompt is topic-first with constraints (depth, #notes per level, style).
  • Token budget guard + chunking keep costs predictable.

  • Each folder’s index.md holds a short syllabus + checkboxes.
  • “Labs” include runnable tasks and datasets links.
  • “Reading plan” schedules papers/chapters across weeks.

from ovg import Generator, Brief, Writer

brief = Brief.from_yaml("topic.yaml")
gen = Generator(provider="local", seed=42)
outline = gen.build_outline(brief)
notes = gen.render(outline, template_dir="./templates")
Writer("./vaults/cv-robotics").write(notes)

  • Add your own Jinja2 templates (e.g., “Incident”, “API Spec”, “Design Doc”).
  • Plug a custom taxonomy (your company’s domains, team practices).
  • Post-hooks: run formatters, add front-matter fields, push to Git.

  • CLI + Python package, Jinja2 template system, YAML schemas.
  • Outline builder with deterministic seed + provider abstraction.
  • Linker for MOCs, breadcrumbs, and backlinks.
  • Safety features: dry-run, diff viewer, idempotent writes.
Skills demonstrated: Python packaging, prompt-to-structure generation, templating, filesystem automation, knowledge architecture, and Obsidian/Breadcrumbs workflows.