Vol. I · No. 579Rochester, New York, Thursday, September 24, 2026Agentic AI · Page B4
All workSection B · Page B4

Agentic AILifeOS

Twelve Apps, One Database and a Bot That Wants Proof I'm Awake

LifeOS is my personal dashboard of small apps on one Supabase database, with an always-on AI agent that talks to me on Telegram.

The public LifeOS dashboard with its grid of app widgets
The public LifeOS dashboard. Private apps show up as locked tiles.Screenshot: lifeos-sand-nine.vercel.app

I had habits in one app, workouts in another and my calendar somewhere else. None of them talked to each other, and none of them pushed back when I skipped something. LifeOS puts all of it in one place and adds an agent that actually checks in.

There are three parts. The face is a Next.js dashboard: a bento grid of widgets on desktop and a big typographic scroll list on mobile, installable as a PWA. It's public, and private apps just show up as locked tiles. The memory is Supabase Postgres. The brain is a TypeScript daemon running on an old laptop that never turns off.

The daemon refuses to start if an API key is set, so I can't burn money by accident.

The database design is the part I'm proudest of. Every app gets its own schema (habits, workout, diet and so on), and everything that happens also goes into one append-only event stream. A registry table decides what shows up on the dashboard. Row-level security is on every table, and anonymous visitors only see public widget data through dedicated views.

The daemon runs a Telegram bot with long polling, so there are no open inbound ports. A scheduler reads schedules from the database over Supabase Realtime, with a periodic fallback in case an update gets missed. It writes heartbeats, and if database writes stall for more than 13 minutes it exits on purpose so systemd restarts it clean.

For the agent I use Claude Code in headless mode, on my subscription. The daemon refuses to start if an API key is set, so I can't burn money by accident. To keep the context small, the agent reads a generated state digest and a short manifest per app instead of the whole database. Its persona and rules are plain markdown files I can edit.

Some of the accountability features were fun to build. The 7:00 wake check wants a photo, and it verifies the photo with vision and the EXIF timestamp so an old picture doesn't count. Voice notes get transcribed with faster-whisper. Meals are logged by photo with an AI calorie estimate.

Then there's Forge. I describe an app, and the agent builds it and adds it to LifeOS. The research-paper app was made this way. There are 12 app routes now, from habits and budget to a calendar that merges multiple feeds.

Heartbeats, restarts and permission rules make terrible demos, but they're why the agent can run without me watching it. It's about 24.6k lines of TypeScript, and I use it every day.

Graphic

How it works

LifeOS, start to finish, in 5 steps.

  1. Step 1:

    Capture

    Telegram messages, photos, voice notes and widgets

  2. Step 2:

    Store

    Per-app schemas plus a core event stream

  3. Step 3:

    Schedule

    Daemon reads schedules over Supabase Realtime

  4. Step 4:

    Think

    Claude Code headless with a small state digest

  5. Step 5:

    Act

    Check-ins, nudges and new apps through Forge

Graphic: The Sahil Bachu

More from The Work

See all 25

Voice AI · New

AI Agent Now Phones the Caterer for You

Dispatch finds local vendors for your event, calls and emails them, and brings back real quotes.

An AI event-planning agent. Tell it about your wedding, party or corporate event and it finds local vendors, reaches them by AI phone call or email, and turns what they say into quotes you can compare.

Continued on Page B2

Browser Agents

The Job Hunt Agent That Refuses to Hit Submit

JobOps finds jobs, tailors a resume for each one and pre-fills the application, then stops and waits for me.

A job-search command center that runs on my laptop. It pulls postings from five sources, scores them with headless Claude, tailors a LaTeX resume per job and pre-fills applications in Chrome. It never submits. I review and send every one.

Continued on Page B9

Generative UI

A Canvas of Widgets You Order in Plain English

An infinite canvas where an AI agent turns a plain-English request into a live widget wired to your own data.

Ask for something like a card that summarizes your unread emails, and an agent researches, designs and places a live widget on an infinite, zoomable grid. Connectors for Gmail, Calendar, Slack, GitHub, Linear and Notion feed it real data.

Continued on Page B11