Personal
TanayOS
My personal AI command center — one chat box that routes to coding agents, local models and my calendar.
- Year
- 2026
- Role
- Solo — design & engineering
- Stack
- Next.js, FastAPI, Ollama, Claude Code, SQLite, WebSockets
The problem
I was juggling five active projects, three AI tools, a calendar, a to-do app and a pile of deadlines. Every context switch meant opening a different window and re-explaining what I was doing.
What I built
TanayOS is a local web app with one chat box. Every message goes through a hybrid router — fast rules first, then a small local model (qwen3:4b on Ollama) that only decides intent and which project you mean. It never touches code itself.
Coding requests launch real Claude Code sessions in a pseudo-terminal and stream them live into an in-browser xterm, one session per project with a queue, a tool allowlist and a confirmation step before anything gets pushed. General questions go to Gemini. Factual questions like "what's running?" are answered straight from system state, so nothing gets hallucinated.
The details
A FastAPI + SQLite backend with a WebSocket event bus drives the UI. Nine integrations — calendar, mail, to-dos, deadlines, deploys, a morning briefing, memory and a self-diagnostic 'doctor'. A usage monitor tracks tokens over rolling 5-hour and 7-day windows and warns at 80% and 90%.
It runs always-on as macOS LaunchAgents, installs as a PWA on my phone, and has a Chrome side-panel extension for checking fixes in place. 373 pytest tests keep it honest.

