Skip to content
Jack Freiermuth
All projects
Case study2025 - present

LifeOS

A self-hosted personal automation platform: 25 MCP servers, scheduled agents, and a dashboard, running on hardware in my house.

TypeScriptPythonReactViteNode.jsDockern8nLangfuseSQLite

LifeOS is the system I use to run my own life, and it is also where I try things before I would put them in front of a team. It is an always-on Mac Mini running a set of MCP servers, a workflow engine, an LLM observability stack, and a React dashboard that ties them together.

The design constraint that shaped everything: an assistant that can write to my calendar, my task manager, and my notes is only useful if I trust it, and trust comes from approval gates and verified writes rather than from good intentions. Nothing that sends a message or creates a task does so without an explicit confirmation, and every send is verified against the underlying store afterward instead of trusting the API's success response.

It has also turned into a genuinely useful test bed for reliability problems that look small and are not: what to do when a service answers HTTP 200 on internal failure, how to notice that a search index froze two months ago and has been returning confident wrong answers ever since, and how to make a scheduled job that silently died visible within a day.

Details worth knowing

  • 0125 custom MCP servers covering calendar, tasks, mail, messaging, health, travel, and photo libraries.
  • 02LLM observability through a self-hosted Langfuse instance, so prompt changes can be compared rather than argued about.
  • 03A service health monitor with push alerts, written after a scheduled job died silently and went unnoticed for weeks.
  • 04Verified-write discipline: message sends are confirmed against the message database, not trusted from the tool's return value.
  • 05A component documentation system where every service, server, and workflow has a doc with a defined schema, served from the dashboard.