05Multi-agent · Local-first

Personal AI operating system

The memory is markdown in Git, so it outlives the runtime that reads it.

Before anything it can't undo
Asks first
Git is the source of truth
Markdown

My own assistant for memory, notes, personal finances and calendar, which I talk to over Telegram and a web interface. Assistants that advertise memory keep it somewhere you cannot read or take with you. I wanted the opposite: delete the app tomorrow and everything it knows still opens in a text editor.

So its memory is a folder of markdown notes kept in Git, and the application is a replaceable layer on top. Anything it cannot undo, like changing a financial record or sending a message, waits for my approval first. Backups run on their own, and it all costs under $20 a month.

The Personal AI operating system demo (interactive with JavaScript on)

How it's built

The tools, the architecture and the engineering numbers, one line each.

03Applied AI · Guardrails

AI assistant for business data

Numbers the model makes up
Zero
Embedded/Vector DB
Golden queries

A Telegram assistant for questions about sales, inventory and purchasing. Every figure it gives comes from a query it actually ran.

View full case study: AI assistant for business data

Personal AI operating system

How it's built

Role
Sole engineer, architect and only user
Running
In daily use since 2026
Repo
cortana + cortana-app

Built with

  • PythonThe assistant's logic
  • FastAPIBackend
  • Next.jsWeb front end
  • PostgresTransactions and state
  • GitLong-term memory, with full history
  • Anthropic APILanguage understanding
  • TelegramChat interface
  • DockerPackaged deployment

How it fits together

Memory and runtime, split on purposeRequests arrive over Telegram or the web UI into a FastAPI runtime that dispatches to a lane per domain: memory, finance and calendar. Every lane's irreversible actions pass through a human-in-the-loop gate before touching persistence. Long-term memory is a Git-versioned Markdown vault the runtime reconciles with rather than overwrites; transactional state is Postgres, with automatic backups.RUNTIMEPERSISTENCEMeTelegram · web UIFastAPI runtimechannel + orchestrationMemory lanesearch · read · editFinance lanestatements · balancesCalendar laneevents · tasksHuman-in-the-loopgatenothing irreversibleVault (Git)Markdown · pull-firstPostgrestransactional stateAutomatic backupsdestructive ops blocked
Memory and runtime, split on purpose

By the numbers

Checks every change must pass before it merges
4
Automated tests that have caught real regressions
100s
Monthly cloud spend, by design
< $20