My AI second brain

Apr 25, 2026 · 2 min read
Geovane’s Second Brain — a self-hosted AI assistant on top of an Obsidian vault.

What it is

Geovane’s Second Brain is a self-hosted Claude Code instance, tied directly to my Obsidian vault of plain-markdown notes, reachable from any device via a Telegram bot — including voice messages auto-transcribed by Whisper.

The agent reads its own behavior rules from markdown files in the vault, so adding new skills is just writing another markdown file. Everything is plain text, owned by me, and would still work if any single cloud component disappeared.

What I built

  • A self-hosted AI agent on a Hetzner VPS (~€5/month), running Claude Code CLI + a Telegram bot inside systemd + tmux — survives reboots and SSH disconnects
  • Bidirectional Obsidian Sync between Mac, iPhone, and the VPS via obsidian-headless running as a user service
  • A Telegram MCP server (Bun-based) that bridges the bot to the agent — text and voice
  • A Python pipeline that downloads voice messages, ships them to OpenAI Whisper, and feeds the transcription back to the agent
  • A growing library of agent skills (/todo, /note, /voice, /new-day, …) defined as markdown files in the vault — new behavior = new file

Why it’s interesting

  • Most “personal AI” setups today are walled gardens (ChatGPT memory, proprietary apps). Building one with data sovereignty in plain markdown is a different problem.
  • The agent writes back into the vault — todos, daily notes, journal entries — without breaking Obsidian Sync or losing edits
  • Skills-as-files: the agent’s behavior is hot-swappable, version-controlled, and inspectable. New skill = new markdown file with frontmatter.
  • Multilingual by design — Portuguese, English, French — auto-detected on voice messages
  • Portable: vault moves with me, VPS is replaceable, the agent’s memory of who I am lives in the files themselves

Numbers

  • ~€111/month total (Claude Max $100 + Obsidian Sync $5 + VPS €5 + IPv4 €0.5 + Whisper ~€1)
  • ~50 markdown files in the vault, all with structured frontmatter (status, type, tags)
  • Built in ~4 days (April 2026)
  • 3 devices in sync — Mac, iPhone, VPS
  • 3 languages auto-detected — Portuguese, English, French

Architecture

flowchart LR iPhone[iPhone
Obsidian + Telegram] Mac[macOS
Obsidian] TG[Telegram Bot API] OS[Obsidian Sync
E2E encrypted] Whisper[OpenAI Whisper API] subgraph VPS[Hetzner VPS - 2 vCPU / 4GB RAM] direction TB OH[obsidian-headless
systemd + tmux] CC[Claude Code CLI
systemd + tmux] MCP[Telegram Plugin
MCP server - Bun] PY[transcribe-voice.py] VAULT[(Vault files
~50 .md + frontmatter)] CC --- MCP CC --- PY CC -->|reads/writes| VAULT OH <-->|bidirectional sync| VAULT end iPhone <-->|messages + voice| TG TG <--> MCP PY <-->|OGG upload / text| Whisper iPhone <--> OS Mac <--> OS OS <--> OH