15·AI / ML·Passion project
AriOS

A personal knowledge system built on one Obsidian vault as the only database. A Telegram bot and a browser extension capture anything - photo, voice, link, document - as plain markdown; a web app reads the same files back as to-dos, a reader, a recall trainer, a 3D knowledge map, and a ledger. Cloud models handle perception when reachable; local Ollama or a plain heuristic takes over when not.
ResultDaily driver, running as three deployed pieces: a Next.js app and a Telegram webhook on Vercel, and a capture backend on a home GPU box.
[ Ask about this build ]01Discover
Why it exists.
Most personal AI tools live in someone else's database - pay monthly, and the memories are theirs, not yours. AriOS is the opposite: everything captured (photos, conversations, articles, voice notes) lands in the user's own Obsidian vault as plain markdown, a structured concept node plus a timestamped diary line, no DB, no sidecar metadata.
The vault is the product; the AI is the staff.
02Define
The brief.
Capture everything its owner encounters into an Obsidian vault as plain markdown that would still be theirs if the tool died tomorrow, degrading gracefully when a cloud layer is unavailable.
03Develop
What it took
Skills behind it.
Primary discipline plus the support stack.
Skills demonstrated
- AI & Machine LearningPrimary
Pluggable perception - vision, transcription, classification - each on a cloud-to-local-to-heuristic ladder; hybrid retrieval feeds vault RAG with citations.
- Backend EngineeringSecondary
The Next.js app carries 36 API routes and nine crons. URL ingest with platform-specific extractors (yt-dlp, Mozilla Readability, Reddit JSON API), an async job queue with status polling, and a catch-forward queue that replays captures taken while the home box was unreachable.
- Product StrategySecondary
Vault sovereignty as a hard constraint: markdown files, no database. Telegram as the universal capture surface.
- Prompt EngineeringSupporting
Prompt design for the ingest classifier and the vault-RAG ask path, with a provider ladder and hard timeouts so a slow or unreachable model degrades the answer instead of blocking the capture.
- Data PipelinesSupporting
Append-only JSONL retrieval index next to the vault. Activity log per ingest with per-step timing. Full source preserved in collapsed <details> blocks so the index has the raw words, not just the summary.
Develop · Notes
The build, in full.
How it came together and the decisions on the record - kept off this page so the case study stays a read, not a scroll.
Read the full build notes04Deliver
What shipped.
Daily driver, running as three deployed pieces: a Next.js app and a Telegram webhook on Vercel, and a capture backend on a home GPU box. Capture, spaced-repetition review, reading-media sync (Kindle highlights, Letterboxd, Goodreads, Steam), gym logging through a Telegram Mini App and nine scheduled nudges are shipped; the standalone long-poll bot, the separate cron app and the standalone trainer have all been folded in or deleted.
Daily driver as of May 2026: five capture surfaces feed one /ingest pipeline, and vault search answers in under a second. Next: an always-on compute substrate, a wearable-glasses app, and a personal-voice LoRA once the corpus is big enough.
By the numbers
Deployed surfaces
API routes
Scheduled crons
See also
Product
House Call
A multi-tradition natal-reading practice synthesising Western, Chinese BaZi and Vedic Jyotish, with predictions logged so they can be checked.
3D & Spatial
Splatlas
A navigable solar system where every world is a real 3D Gaussian splat trained from open planetary data, not a texture painted onto a sphere.
