A self-hosted AI-powered life coaching platform. Set goals, track weekly reviews, chat with your AI coach, and visualize your progress — all running privately on your own machine.
- AI Coaching Chat — Have conversations with an AI life coach across multiple modes (check-ins, goal reviews, deep sessions, brainstorming, accountability, and more)
- Dashboard — See your Wheel of Life radar chart, latest review metrics, active goals, action items, and an interactive coaching chat pane
- Goal Tracking — Kanban board with drag-and-drop, milestones, and priority sorting
- Weekly Reviews — Structured weekly check-ins covering satisfaction, energy, stress, and mood
- Wheel of Life — Rate and visualize importance vs. satisfaction across your life areas
- Coaching Style — Customize how your AI coach communicates with you
- Multiple AI Providers — Supports Anthropic (Claude), OpenAI (GPT), and Ollama (local/free)
- Fully Self-Hosted — All data stays on your machine. API keys are encrypted at rest.
The fastest way to get running. Requires Docker and Docker Compose.
git clone https://github.com/jontkaufman/LifeOS.git
cd LifeOS
docker compose up -d --buildOpen http://localhost:8081 in your browser. The onboarding wizard will walk you through setting up your AI provider API key and profile.
Your data is stored in the data/ directory, which is mounted as a Docker volume and persists across restarts.
git pull
docker compose up -d --buildIf you prefer to run without Docker, use the setup script:
git clone https://github.com/jontkaufman/LifeOS.git
cd LifeOS
./run.shThe script checks for and installs all dependencies (Python venv, backend packages, frontend packages), then prints instructions to start the servers.
The setup script will check for these and guide you through installing anything missing:
| Dependency | Version | Purpose |
|---|---|---|
| Python | 3.11+ | Backend runtime |
| Node.js | 18+ | Frontend build and dev server |
| npm | (comes with Node) | Frontend package manager |
| uv | any | Python package manager (auto-installed by setup script) |
If you prefer to set things up yourself:
Backend:
cd backend
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt
python main.pyFrontend (separate terminal):
cd frontend
npm install
npm run devThe Vite dev server starts on http://localhost:5173 and proxies /api requests to the backend at port 8081.
cd frontend
npm run buildThen start the backend — it will serve the built frontend from frontend/dist/ at http://localhost:8081.
All configuration happens through the web UI:
- First launch — The onboarding wizard guides you through API key setup, profile creation, and life area ratings
- Settings page — Change AI provider, model, theme, and manage API keys at any time
- Coaching page — Customize your coach's communication style
| Provider | Models | Notes |
|---|---|---|
| Anthropic | Claude Sonnet, Opus, Haiku | Recommended. Requires API key |
| OpenAI | GPT-4o, GPT-4, etc. | Requires API key |
| Ollama | Llama, Mistral, etc. | Free, runs locally. Install Ollama first |
LifeOS/
├── backend/
│ ├── main.py # FastAPI entry point
│ ├── config.py # Paths, encryption, API key storage
│ ├── database.py # SQLAlchemy async engine + session
│ ├── models/ # SQLAlchemy ORM models
│ ├── routers/ # API route handlers
│ ├── services/ # Business logic (AI, context building)
│ └── presets/ # Default life areas + coaching styles
├── frontend/
│ ├── src/
│ │ ├── pages/ # Dashboard, Chat, Goals, Reviews, etc.
│ │ ├── components/ # Layout, UI components (shadcn/ui)
│ │ ├── hooks/ # React hooks (useChat, useDashboard, etc.)
│ │ └── lib/ # API client, WebSocket, utilities
│ └── vite.config.ts
├── data/ # SQLite DB + encrypted config (gitignored)
├── setup.sh # Auto-install dependencies and start
├── docker-compose.yml
├── Dockerfile
└── README.md
Frontend: React 19 + TypeScript + Vite + Tailwind CSS v4 + shadcn/ui + Recharts
Backend: Python FastAPI + SQLAlchemy (async) + SQLite (aiosqlite)
AI: Anthropic SDK, OpenAI SDK, Ollama SDK — streaming via WebSockets
- All data is stored locally in
data/lifeos.db(SQLite) - API keys are encrypted at rest using Fernet symmetric encryption (
data/config.enc) - No telemetry, no external analytics, no data leaves your machine
- Back up your
data/directory to preserve everything
MIT