# LifeOS: A Self-Hosted AI Assistant That Turns Your Personal Data into a Queryable Graph

> LifeOS is a Python-based, GPL-3.0 personal assistant that indexes Gmail, calendar, messages, Obsidian, and more into a local hybrid search store. It offers multiple front doors, including Telegram and MCP, but its complexity and API-dependent defaults demand careful evaluation.

**nbramia/LifeOS** — Personal assistant, data aggregation, and CRM integrating Obsidian, Gsuite, and messaging

- Repository: https://github.com/nbramia/LifeOS
- Stars: 35 · Forks: 10
- Language: Python
- License: GPL-3.0
- Published: 2026-08-26 · Updated: 2026-08-26 · Language: en
- Canonical page: https://hysenlabs.com/projects/nbramia-lifeos

## What LifeOS Actually Does

The core value is not just search but synthesis. LifeOS combines semantic and keyword search to answer cross-source questions. It builds a relationship graph and a CRM with timelines and analytics. This is more than a search tool; it is a personal data platform with a natural language interface.

## The Architecture: Indexing, Hybrid Search, and the Relationship Graph

The agentic task handoff, introduced in v4.0.0, allows long tasks to be handed to an autonomous agent that works asynchronously. The scheduler supports triggers that can notify, prompt, call an endpoint, or run an agent. Empty results stay silent, which avoids noise from high-frequency checks. This architecture is modular, but it also means many moving parts: sync, indexing, LLM calls, and action execution.

## Getting It Running: Commands and Configuration Keys

The README points to a Quick Start and an Installation Guide, but the minimal path is described as 'just an API key and a vault.' The key configuration is the environment variable `LIFEOS_LLM_BACKEND`, which can be set to `anthropic`, `local`, or `remote`. For the default Anthropic backend, you need an API key. For the local backend, you need a llama-server running on your hardware. The installation guide likely includes steps for cloning the repository, setting up Python dependencies, and configuring data source connectors. The release notes for v4.1.0 mention 'Keyless Installs' and 'Hermes Compatibility,' suggesting that recent versions have simplified setup, possibly removing the need for certain API keys. However, the exact commands are not in the provided material, so you would need to consult the docs/guides/installation.md file. The project also has a web chat at `/chat`, a Telegram bot, and MCP support for Claude Desktop and Claude Code. Voice setup is covered in a separate guide.

## The Persona System: One Assistant, Multiple Personalities

LifeOS ships with several personas: `primary`, `therapist`, `fitness`, `finance`, and `doctor`. Each persona has a different tone and scope, but all share the same tool suite. The `therapist` persona draws on your own reflections and inner-circle context with strict privacy rules. The `finance` persona is numbers-first and grounds answers in your real portfolio via Monarch. The `doctor` persona repairs LifeOS itself, which is an unusual feature. You can create your own persona with a markdown file, which is a low-barrier customization path. The personas are selectable in the web chat or via dedicated Telegram bots, and they behave identically across surfaces. This design is clever: it separates the assistant's capabilities from its personality, so you can have a therapist that can still schedule meetings, but it will respond in a different tone. However, the privacy rules for the therapist persona are not detailed in the README, so you would need to read the source to know what they actually enforce.

## Limitations and Failure Modes

The most obvious limitation is the default dependency on Anthropic's API. Even though data is stored locally, queries and context are sent to Anthropic unless you switch to a local backend. If you are privacy-sensitive, that default is a dealbreaker. The local backend requires you to run a llama-server, which demands significant hardware and technical expertise. The README also mentions that the project is self-hosted, which means you are responsible for updates, backups, and security. The breadth of integrations is a double-edged sword: each connector (iMessage, Apple Health, Monarch) can break when the upstream service changes its API. The README does not mention any error handling or fallback for failed syncs. The scheduler has a feature where empty results stay silent, which is good, but if a sync fails, you might not know. Another limitation is that the agentic handoff, while powerful, could run indefinitely without oversight. There is no mention of timeouts or resource limits in the provided material.

## Alternatives: How LifeOS Differs from Other Personal Assistants

A common alternative is a self-hosted assistant like Home Assistant's conversation integration, but that focuses on smart home control, not personal data aggregation. Another alternative is using Obsidian's own plugins like Smart Connections for semantic search within your vault, but that lacks the cross-source aggregation and action-taking capabilities. LifeOS's differentiator is the breadth of sources and the relationship graph. A closer alternative might be a commercial service like Mem or Rewind, but those are cloud-based and do not offer the same level of self-hosting or open-source transparency. LifeOS's approach is to index everything locally and provide a natural language interface, which is more ambitious but also more complex. If you only need to search your notes, a simpler tool will suffice. If you want a unified assistant that acts across your digital life, LifeOS is in a niche of its own.

## Maintenance and Upgrade Cost

The project is under active development, with recent releases in 2026. The v4.1.0 release notes mention a 'Portability Audit,' suggesting a focus on making the system easier to move or reinstall. The GPL-3.0 license means you can modify and redistribute the code, but if you distribute a modified version, you must share your changes. That is fine for personal use. The maintenance cost is non-trivial: you need to keep the Python environment up to date, monitor the nightly sync, and handle API changes from data sources. The README does not provide a migration guide between versions, so upgrades might require manual intervention. The presence of a 'doctor' persona that repairs LifeOS itself is a novel idea, but it also implies that the system is complex enough to need self-repair. You should plan for regular maintenance windows and check the changelog before upgrading.

## Conclusion

Adopt LifeOS if you are a technically comfortable individual who wants a single, self-hosted interface to query and act on years of personal data, and if you accept the maintenance burden of a nightly sync and multiple integration points. Avoid it if you need a plug-and-play assistant or if you cannot tolerate sending queries to Anthropic's Claude API by default. Before adopting, verify that your data sources (especially iMessage, Apple Health, and Monarch) have working connectors in the current version, and test the local LLM backend to ensure it meets your latency and quality needs. The project's recent focus on portability and keyless installs suggests active development, but the breadth of integrations means you should audit each one you rely on.

## FAQ

### What is LifeOS?

A self-hosted AI assistant that connects to Gmail, Google Calendar, Google Docs, Sheets and Drive, iMessage, phone calls, WhatsApp, Slack, an Obsidian vault, Granola transcripts, iPhotos, LinkedIn, Apple contacts, Monarch finances and Apple Health, then makes all of it queryable through natural language.

### Does LifeOS send my data to a model provider?

Your data is indexed and stored locally, but by default orchestration and synthesis call the Claude API, sending the current query and its retrieved context to Anthropic. Setting LIFEOS_LLM_BACKEND=local routes everything through a llama-server on your own hardware instead.

### Which personas does LifeOS ship with?

Six: primary as the general default, therapist, fitness, finance, doctor, which repairs LifeOS itself, and journal, a narrow capture surface that is the only one without the general tool suite. You can create your own persona from a markdown file.

### Will LifeOS send email without asking me?

No. Email always drafts first and requires an explicit, separate confirmation before anything sends, and that rule applies on every surface rather than only in the web chat.

### What happens when I tag a LifeOS task with #agent?

For anything that touches code, the session runs in its own isolated git worktree and branch, commits as it goes, and opens a pull request when it finishes. The card lands in Review with the agent's summary and a live pull request badge.

### What Python version does LifeOS need?

3.11 or later. Runtime dependencies are managed in requirements.txt rather than in pyproject.toml, because an external virtualenv at ~/.venvs/lifeos is required for macOS launchd compatibility.

## Sources

- [Official README](https://github.com/nbramia/LifeOS#readme)
- [Project repository](https://github.com/nbramia/LifeOS)
- [Release notes](https://github.com/nbramia/LifeOS/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nbramia-lifeos
