Josh Cannon
Back to projects

LifeOS

A personal AI operating system — my own Jarvis. One agent that actually knows me: my meetings, finances, projects, and goals live in a connected knowledge base it reads, reasons over, and acts on every day.

Personal project — built and operated solo

2026

PythonTypeScriptReactNeon PostgresSupabasePlaidStripeTwilioResendwhisper.cppVercelRailwaylaunchd

Every AI assistant starts from zero — it doesn't know your life, your projects, or what you're working toward. The big labs are racing to build the assistant that truly understands you. I wanted to build mine myself, so I'd know exactly what's in its head and could wire it into every part of my life.

One agent over a connected markdown knowledge base, wired into the tools I actually use — finance, comms, calendar, health — with on-device meeting capture, specialized sub-agents that check each other, and built-in prompt-injection screening. It ingests everything, keeps itself in sync, and can reach me on my phone, all under explicit safety and privacy rules.

My real operating layer, running every day — 15+ services, a dozen-plus integrations, and 13 scheduled jobs across a four-tier setup. The bet behind it: everyone ends up with their own AI that understands them. This one is mine, built end-to-end.

What It Is

LifeOS is the closest thing I've built to a real-life Jarvis — a personal AI operating system I made for myself and run every day. Not an assistant that knows a little about everyone, but one agent that deeply knows me: my meetings, finances, projects, relationships, and goals all live in a connected knowledge base it reads, reasons over, and acts on.

It's a bet on where this is all going. The big labs are racing to build the assistant that truly understands you — I think everyone ends up with their own. The advantage of building it yourself: I know exactly what's in its knowledge, I decide what it can touch, and I can wire it into every tool I already use.

The wiki it runs on

The whole thing is built on a connected markdown knowledge base — an Obsidian-style wiki with a CLAUDE.md operating brief for each domain (Career, Finance, Health, Relationships, Projects…). The agent owns and maintains it.

  • Compile, don't file. One source — a meeting transcript, a note, a statement — updates many pages at once. A single ingest touches 5–15 pages across domains, so context compounds instead of piling up in an inbox.
  • Wikilinks over search. Pages cross-reference each other, so the agent traverses connections the way a person would, and falls back to semantic search only when traversal misses.
  • Sub-agents that check each other. Specialized agents own different jobs and review one another's work — an ingest gets a separate hallucination pass, web content gets a separate prompt-injection screen — so nothing important rides on a single pass.

Meeting capture, without the subscription

Most teams pay per seat for Fireflies or Otter to transcribe meetings in the cloud. I built WitnessAI instead: meetings transcribe on-device with whisper.cpp against a macOS system audio tap.

  • No per-minute or per-seat cost — it's my own laptop doing the work.
  • No cloud upload of the audio. The most sensitive input never leaves the machine.
  • Transcripts don't just sit in a folder — they compile straight into the wiki, updating the right person, project, and deal pages automatically.

What it's wired into

The point of LifeOS is reach — it can act because it's connected to the tools I actually run my life on:

  • Finance — Plaid (live bank + brokerage data), Stripe (payments and invoicing)
  • Comms — Twilio (voice + SMS), Resend (email), Google Workspace via the gws CLI (Gmail, Calendar, Drive, Sheets, Docs, Tasks)
  • Health — Google Health (daily biometrics)
  • Data & infra — Neon Postgres, Supabase, Vercel, Railway, macOS launchd
  • Agent tooling — Obsidian hybrid-search MCP (semantic recall), Claude-in-Chrome (browser automation), 1Password (op, secrets), plus a CLI toolbelt: gh, vercel, railway, neonctl, firecrawl, httpie, and more
  • Voice & transcriptionwhisper.cpp on-device

How it stays in sync

LifeOS keeps itself current without me babysitting it. 13 launchd cron jobs run unattended across a four-tier compute setup (Vercel edge, Railway always-on, macOS launchd, serverless Postgres), each with a written rule for where it runs:

  • Plaid → Neon pulls finances; Google Health → Neon pulls biometrics, daily.
  • A 6am brief reads the whole wiki and picks what actually matters that day.
  • The live dashboard rebuilds from the wiki, so the React surface always reflects the source of truth.
  • Guarded outbound: anything that leaves the machine — a Twilio call or text, a post — is approval-gated, hard-limited by an allowlist, and audit-logged. Autonomous internally, gated externally.

Why It Matters

This is the project I think is genuinely ahead of the curve. Personal AI — an agent that understands you and operates alongside you — is going to be the thing, and the build-it-yourself version has real advantages: you know what's actually in its head, you decide what it can reach, and you can connect it to every CLI and tool you already work in.

That's what makes it more than a toy. The same system that runs my life is what helped me start a business and ship real work — because it has the context to actually be useful. It's the antithesis of a generic assistant: small, private, and built entirely around one person.