← index
CASE STUDY · automation · 2025

Personal OS

A self-learning wiki system that ingests personal data (Spotify, Instagram, daily notes, timesheets) into a structured knowledge base. Powers a Telegram bot, autonomous agents, and recurring queries about goals, habits, and open loops.

tarted because i kept forgetting things. Not tasks or appointments, just the texture of days. What i was thinking three months ago, which habit i dropped, why i made a certain decision.

The system runs in Obsidian. Raw source files go in unchanged. Claude reads them and writes structured wiki pages. I own the sources, Claude owns the synthesis layer. Everything is linked: entities, concepts, sources, daily notes, finance tracking, goals.

On top of that i built @Apollo26TeleBot on Telegram. It reads a window of wiki context every morning and generates a daily briefing. It also answers questions: what did i spend last week, what am i supposed to be working on, remind me why i started this. The bot does not replace memory. It extends it.

The next layer is autonomous TypeScript agents running on Windows Task Scheduler: an ingest agent that watches for new files and processes them automatically, a wiki sync agent, a weekly review agent, and a reminder agent that surfaces time-sensitive items. Most are half-built. The architecture is solid.

highlights

  • +Separates raw (immutable sources) from wiki (LLM-generated) so the knowledge base never gets corrupted
  • +Telegram bot generates daily briefings and responds to natural language queries about goals and spending
  • +Autonomous agent architecture: ingest, sync, review, and reminder agents on Task Scheduler
  • +Full frontmatter schema on every page: type, domain, tags, sources count, created/updated dates
  • +Cross-referenced with Obsidian wiki links, queryable via Dataview

what was hard

The hardest part was schema design. Obsidian is freeform by nature. Getting consistent structure across hundreds of pages without making it feel like filling out forms took a lot of iteration. The second hardest was deciding what to not track. The system is most useful when it stays focused on signal, not noise.