Hysen Labs
Open-source project
nbramia/LifeOS avatar
nbramia

LifeOS

Personal assistant, data aggregation, and CRM integrating Obsidian, Gsuite, and messaging

26 stars5 forksPythonGPL-3.0
DEEP OPEN-SOURCE ANALYSIS

LifeOS turns personal data into a local, assistant-driven workspace

A self-hosted assistant that indexes mail, messages, calendar, notes, and health data locally and answers or acts through chat, Telegram, or MCP.

What LifeOS connects

LifeOS is described as a self-hosted AI assistant that links a long list of personal data sources into one searchable store. The README names Gmail, Google Calendar, Google Docs and Sheets, Google Drive, iMessage, phone calls, WhatsApp, Slack, an Obsidian vault, Granola meeting transcripts, iPhotos, LinkedIn, Apple contacts, Monarch finances, and Apple Health as supported inputs. The project states that all of this content is indexed and kept local on the user's machine by default, so the vault, messages, photos, financial summaries, and health data never leave the computer. A nightly sync pulls from the sources and indexes everything for hybrid search that combines semantic vectors with keyword matching. The implementation uses ChromaDB for the vector store and SQLite FTS5 for keyword search, with results blended through reciprocal rank fusion. Entity resolution runs in two tiers, linking a source record to a person entity through email, phone, and fuzzy name matching. The README frames the data model as unifying under that hybrid search layer so a single prompt can reach notes, email, messages, calendar, documents, photos, and financial summaries at once. This design means the assistant answers from the user's own history rather than only from general knowledge, and the project also lists MCP access so the same tools can be driven from Claude Desktop or Claude Code.

How the assistant works

The same assistant is available on several surfaces that share one client contract. The README lists a web chat at the path /chat with text and voice input, a persona picker, and a per-turn model picker. A Telegram bot provides conversational access plus proactive notifications, and an MCP surface lets external clients call LifeOS tools directly. Several selectable personas ship with the project: a general-purpose default, a therapist focused on inner-circle context, a fitness trainer that logs workouts, a finance planner grounded in the user's real portfolio, and a doctor bot that repairs LifeOS itself. Email always drafts first and requires a separate explicit confirmation before anything sends, on every surface. An external agent worker picks up tasks tagged with a marker and completes them end to end, reporting back on Telegram with the result and the cost. The user can choose an engine per task, set natural-language budgets, and let the agent spawn child sessions for parallel research. When LifeOS misbehaves, the doctor bot talks through the goal, gets one approval, then files a GitHub issue and ships a tested pull request before reporting back with a revert handle. These pieces together make the assistant both reactive and able to run longer work without constant supervision. The README also notes that scheduled tasks can fire prompts, call internal endpoints, or hand work to the agent, with empty results staying silent so frequent checks do not become noise.

Running it yourself

The README states the requirements as Linux or macOS, Python 3.11 or newer, ChromaDB installed through pip as the only hard external service, and an Obsidian vault or any folder of markdown notes. macOS is needed only for native Apple integrations such as iMessage, calls, contacts, and photos. The minimal setup is a Claude API credential and a folder of notes, with everything else layered on later. The quick start clones the repository, creates a virtual environment, installs requirements, copies an example environment file, and starts the vector database and server before opening the app at localhost port 8000. On the default backend the orchestration and synthesis calls go to the Claude API, and the README notes the default model is claude-haiku-4-5, with the base orchestrator model overridable through an environment variable. A local option routes everything through an OpenAI-compatible llama-server so inference stays on the user's own hardware. The tech stack lists FastAPI on port 8000, sentence-transformers embeddings, ChromaDB on port 8001, SQLite FTS5, a whisper-relay voice gateway, and a vanilla HTML and JavaScript frontend with no build step. systemd on Linux and launchd on macOS manage the services, and GPU acceleration is supported through ROCm or CUDA. The README also notes that the nightly sync runs in seven phases with dependencies, so a failed phase alerts with a severity rather than taking the whole system down, and the user can run the services as systemd units on Linux for persistence across reboots.

Editorial conclusion

LifeOS is published under the GNU General Public License v3.0, and its most recent commit was on 2026-08-26. The repository is hosted at github.com/nbramia/LifeOS.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes