PUBLISHED 2026-04-27 · ESSAY · 4 MIN READ

A vault that ingests itself

ObsidianKnowledge ManagementAgentsn8n

Voice notes. Bookmarks. Tweets. YouTube transcripts. All captured automatically, filed as plain markdown, queryable from anywhere.

This is how the pieces fit together.

The architecture

                    ┌── Telegram bots ──────────────┐
                    │  URL bot      ← bookmarks,    │
                    │                 articles,     │
                    │                 YouTube       │
                    │  Voice bot    ← voice memos   │
                    │  Agent bot    ← queries       │
                    └───────────────┬───────────────┘

                          ┌──────── n8n ────────┐
                          │  Bookmark Summary   │
                          │  Voice Notes → Vault│   ← nervous system
                          │  Vault Writer       │
                          │  Weekly Promote     │
                          └──────────┬──────────┘

                          ┌─── Vault on VPS ────┐
                          │  wiki/sources/      │   ← source of truth
                          │  wiki/entities/     │      plain markdown
                          │  wiki/concepts/     │
                          │  wiki/learnings/    │
                          └──────────┬──────────┘
                                     ↕  Syncthing (~10s)
                          ┌──────────┴──────────┐
                          │  Mac vault          │   ← Obsidian opens here
                          └──────────┬──────────┘

                          ┌──────────┴──────────┐
                          │  Agent (read-only)  │   ← answers
                          │  vault-aware │ writer│      via Telegram
                          └─────────────────────┘

What it does

  • Capture is automated. Three Telegram bots cover all input. Share-sheet a URL, hold-to-record a voice memo, ask the agent a question — the right workflow handles it.
  • The vault lives on a VPS. Plain markdown on disk. Source of truth is the server, so write workflows don’t depend on the laptop being open.
  • Sync is real-time. Syncthing mirrors VPS ↔ Mac in about ten seconds. Open Obsidian on the Mac, see what got captured five minutes ago.
  • The agent reads the whole thing. From the same phone that captures notes, you can query them. The agent is read-only by default; drafts go to a separate inbox folder for manual review.
  • The wiki grows itself. A Sunday cron job reads the week’s captures, extracts entities and concepts and learnings, and writes new wiki pages with [[wikilinks]] back to sources.

The vault schema

vault/
├── wiki/
│   ├── index.md          ← topic-led entry point
│   ├── log.md            ← every wiki op
│   ├── decisions.md      ← dated decision log
│   ├── roadmap.md        ← open work
│   ├── sources/
│   │   ├── bookmarks/    ← URL bot writes here
│   │   └── voice-notes/  ← voice bot writes here
│   ├── entities/         ← people, companies, products
│   ├── concepts/         ← ideas, frameworks
│   ├── learnings/        ← takeaways
│   └── lists/            ← /todos /projects /other
└── raw/                  ← immutable source dumps

One home per fact. No duplicates.

The components

LayerToolWhat it does
Capture (URLs)Telegram bottweet · article · YouTube → markdown
Capture (voice)Telegram botvoice → Whisper → categorized markdown
Routingn8nwebhooks, schedules, transforms
StorageVPSplain markdown, schema-enforced
SyncSyncthingVPS ↔ Mac, ~10s
SearchQMDsemantic search inside agent container
AgentNousResearch Hermesread-only vault, drafts via inbox
Promotionweekly cronbookmarks → entities/concepts

Every piece is open source.

Three patterns

One home per fact.

WHY (decisions, roadmap, learnings) lives in the vault. HOW (operational state) lives in per-project CLAUDE.md. About YOU (preferences, env quirks) lives in agent memory. WHAT (code) lives in git. If a fact appears in two files, one of them links to the other. Never copy.

Bots write, humans browse.

Capture is automated. Reading is human. Telegram is the lowest-friction surface available — share-sheet on phone, hold-to-record for voice. The bot replies with a confirmation and a delete button so a wrong capture is one tap to remove. Reading still happens in Obsidian, where it should.

Promote weekly.

Every Sunday, n8n runs a “promote” job: it reads new bookmarks, asks the model to extract entities and concepts and learnings, and writes them as new wiki pages with [[wikilinks]] back to sources. The wiki grows itself without anyone opening it.

The agent loop

The on-VPS agent has two personalities:

  • vault-aware — read-only. Queries via grep and semantic search. “What did I save about Karpathy’s LLM wiki idea?”
  • vault-writer — drafts new pages to a vault-inbox/ folder. The vault itself stays read-only. Drafts get promoted manually after review.

The default model is a fast cheap one (Grok 4.1 Fast at the moment, ~15× cheaper than Sonnet for this workload). There’s an escape hatch to Sonnet for harder queries.

What this isn’t

  • Not a content production system. This is for thinking.
  • Not turnkey. Six pieces have to talk to each other; getting them aligned takes a weekend.
  • Not novel pieces. Every component is open source. The recipe is what’s rare.

Take it

There’s a template repo with the architecture, schema, and skill examples. Star it if you’re building something similar — that’s the signal to ship more (workflow JSONs, bot code, deploy templates).

Follow @arthurpfz for build logs.