Pull from Vengeance into Obsidian
Bring repo blog posts into your vault so you can edit them in Obsidian.
Setup first
Before pull works, copy the example config and point it at your vault:
powershell1copy .vengeance\config.example.json .vengeance\config.json
Then edit .vengeance/config.json:
vaultPath— absolute path to your Obsidian vaultobsidianBlogRoot— folder where pulled posts go (default:Blogs)mappings— needed if you push edits back from Obsidian
Example:
json1{2 "vaultPath": "C:/Users/you/Documents/MyVault",3 "obsidianBlogRoot": "Blogs",4 "mappings": [5 {6 "obsidianFolder": "Blogs/Drafts",7 "blogCategory": "frontend",8 "direction": "bidirectional"9 }10 ]11}
This file is gitignored — it stays on your machine only.
→
![]()
How pull works
Rendering diagram...
The Blogs/ prefix comes from obsidianBlogRoot in your config.
Example
Repo has:
txt1content/blog/frontend/how-browsers-work.md
You run:
powershell1npx tsx scripts/sync-obsidian.ts pull "frontend/how-browsers-work.md"
Obsidian gets Blogs/frontend/how-browsers-work.md — with [[how-browsers-work]] wikilinks for the Obsidian graph. The blog repo keeps markdown links like [How Browsers Work](/frontend/how-browsers-work) for the website.
Edited something? Push it back:
powershell1npx tsx scripts/sync-obsidian.ts push "Blogs/frontend/how-browsers-work.md"
Pull everything
powershell1npm run sync:pull
Mirrors all of content/blog/ → Blogs/<category>/. Safe to re-run.
Push vs pull
| Pull | Push | |
|---|---|---|
| Direction | repo → Obsidian | Obsidian → repo |
| One file | tsx ... pull "frontend/post.md" | tsx ... push "Blogs/Drafts/post.md" |
| All files | npm run sync:pull | npx tsx scripts/sync-obsidian.ts push |
Tip: New drafts → Blogs/Drafts/. Pulled posts → Blogs/frontend/, Blogs/about/, etc. For push workflow details, see Push from Obsidian to Vengeance.
Check counts
powershell1npm run sync:status