Metadata-Version: 2.4
Name: egovault
Version: 0.1.9
Summary: Local-first personal data vault with LLM enrichment and RAG chat
Project-URL: Homepage, https://github.com/milika/EgoVault
Project-URL: Bug Tracker, https://github.com/milika/EgoVault/issues
License: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: click>=8.1
Requires-Dist: ebooklib>=0.18
Requires-Dist: google-api-python-client>=2.100
Requires-Dist: google-auth-oauthlib>=1.2
Requires-Dist: lxml>=5.0
Requires-Dist: mcp>=1.0
Requires-Dist: openpyxl>=3.1
Requires-Dist: pandas>=2.0
Requires-Dist: pdfplumber>=0.11
Requires-Dist: prompt-toolkit>=3.0
Requires-Dist: psutil>=5.9
Requires-Dist: pycountry>=24.0
Requires-Dist: python-docx>=1.1
Requires-Dist: python-pptx>=0.6
Requires-Dist: rich>=13.0
Requires-Dist: sentence-transformers>=2.7
Requires-Dist: streamlit>=1.32
Provides-Extra: dev
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: gmail
Requires-Dist: google-api-python-client>=2.100; extra == 'gmail'
Requires-Dist: google-auth-oauthlib>=1.2; extra == 'gmail'
Provides-Extra: local
Requires-Dist: beautifulsoup4>=4.12; extra == 'local'
Requires-Dist: ebooklib>=0.18; extra == 'local'
Requires-Dist: liteparse>=0.1; extra == 'local'
Requires-Dist: lxml>=5.0; extra == 'local'
Requires-Dist: openpyxl>=3.1; extra == 'local'
Requires-Dist: pandas>=2.0; extra == 'local'
Requires-Dist: pdfplumber>=0.11; extra == 'local'
Requires-Dist: python-docx>=1.1; extra == 'local'
Requires-Dist: python-pptx>=0.6; extra == 'local'
Provides-Extra: mcp
Requires-Dist: mcp>=1.0; extra == 'mcp'
Provides-Extra: reranker
Requires-Dist: sentence-transformers>=2.7; extra == 'reranker'
Provides-Extra: telegram
Requires-Dist: python-telegram-bot>=20.0; extra == 'telegram'
Requires-Dist: qrcode>=7.0; extra == 'telegram'
Requires-Dist: telethon>=1.36; extra == 'telegram'
Provides-Extra: web
Requires-Dist: streamlit>=1.32; extra == 'web'
Provides-Extra: websearch
Requires-Dist: ddgs>=1.0; extra == 'websearch'
Description-Content-Type: text/markdown

﻿# EgoVault

> Your personal data, on your machine, under your control.

[![CI](https://github.com/milika/EgoVault/actions/workflows/ci.yml/badge.svg)](https://github.com/milika/EgoVault/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)

Every message you sent, every article you saved, every decision you made - scattered across platforms
that own your data, monetise your attention, and can delete your history without warning.

**EgoVault puts it all back in your hands.**

---

## Why this exists

Big Tech has had a good run storing your life for you. In return, they read your emails, sell your
patterns, and hand your data to whoever asks politely enough. You get a "free" service and a
privacy policy nobody reads.

We think that deal is broken.

Your memories do not belong to a corporation. Your conversations are not a product. The decisions,
ideas, and relationships you've built over years are *yours* - and you should be able to search
them, learn from them, and take them with you, without asking anyone's permission.

EgoVault is a local-first personal data vault. It runs on your hardware, uses a local LLM that
never phones home, stores everything in a single SQLite file you can copy to a USB drive, and
answers your questions without sending a single byte to a third party.

> **No subscriptions. No telemetry. No cloud lock-in.**  
> Cloud sync is a future opt-in - never the default.

---

## Hardware requirements
The default model (Gemma 4 E2B, ~3.2 GB) runs on CPU but is significantly faster on a CUDA-capable GPU.  

---

## Get started in one line

**Windows - PowerShell** (Windows 10/11, PowerShell 5+)
```powershell
irm https://raw.githubusercontent.com/milika/EgoVault/main/scripts/install-win.ps1 | iex
```

**Windows - Command Prompt** (runs the same PowerShell script)
```cmd
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/milika/EgoVault/main/scripts/install-win.ps1 | iex"
```

**Linux / WSL - bash or sh**
```bash
curl -fsSL https://raw.githubusercontent.com/milika/EgoVault/main/scripts/install.sh | sh
```

**macOS - zsh (default) or bash**
```zsh
curl -fsSL https://raw.githubusercontent.com/milika/EgoVault/main/scripts/install.sh | sh
```

**Any platform - pipx** (Python 3.11+ required)
```bash
pipx install egovault
```

Then:
```bash
egovault chat          # terminal REPL
egovault web           # browser UI - prints a public URL automatically
egovault mcp           # MCP server for AnythingLLM / Claude Desktop
```

> Full installation, configuration, and llama-server setup: [docs/installation.md](docs/installation.md)  
> Can't see the file? View it on [GitHub](https://github.com/milika/EgoVault/blob/main/docs/installation.md).

---

## What you can do

- **Reclaim your history** - import emails, documents, chats, and notes from any platform
- **Ask questions across everything** - "What did I decide about X last year?" - one answer, all sources
- **Own the inference** - a local LLM reads and enriches your data; nothing leaves your machine
- **Access from anywhere** - `egovault web` punches a secure tunnel so you can reach your vault from any device
- **Take it with you** - the entire vault is one file; copy it, back it up, move it freely

---

## Data sources

| Source | Status |
|--------|--------|
| Local files (PDF, DOCX, HTML, Markdown, EPUB, spreadsheets, plain text) | :white_check_mark: |
| Gmail - Takeout / live API (OAuth2) / IMAP | :white_check_mark: |
| Telegram export | :white_check_mark: |
| WhatsApp, Facebook Messenger | :hourglass_flowing_sand: planned |
| Instagram, LinkedIn, Twitter/X, TikTok | :hourglass_flowing_sand: planned |
| Obsidian vault, Calendar (ICS) | :hourglass_flowing_sand: planned |

---

## Interfaces

| Interface | How to start |
|-----------|-------------|
| Terminal REPL | `egovault chat` |
| Browser UI | `egovault web` |
| Telegram bot | `egovault telegram` |

> How it works under the hood -> [docs/how-it-works.md](docs/how-it-works.md)

---

## Screenshots

**Terminal REPL** — llama-server auto-starts and chat is ready immediately  
![Terminal REPL](screenshots/ssh.png)

**Browser UI** — chat with your vault, tool calls shown inline  
![Browser UI chat](screenshots/web2.png)

**Remote access login** — password-protected page served over a secure WAN tunnel  
![Remote access login](screenshots/web1.png)

**Telegram bot** — full command set accessible from any device  
![Telegram bot](screenshots/telegram.jpg)

---

## Roadmap

### Adapters coming next
- [ ] WhatsApp, Facebook Messenger, Instagram, LinkedIn, Twitter/X
- [ ] Obsidian vault reader, Calendar ICS

### Features coming next
- [ ] Reminders - `/remind <text> at <datetime>` with due alerts in chat
- [ ] Notes - `/note <text>` stored and searchable like any vault record
- [ ] Multi-level access control (owner -> guest, passphrase auth)
- [ ] `egovault doctor` - health-check command

Your data, your rules. Contributions and ideas are welcome - see [CONTRIBUTING.md](CONTRIBUTING.md).

---

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for a full history of releases.

---

## License

[MIT](LICENSE) (c) 2026 Milika Delic
