Your inbox found its balance.
Email + Equilibrium = Emailibrium. Because your inbox shouldn't feel like a second job.
Emailibrium is a vector-native email intelligence platform that replaces keyword search and manual filters with semantic understanding. Connect your accounts, and in under 10 minutes it clusters, classifies, and cleans 10,000+ emails — then keeps learning from every interaction.
No cloud processing. No data leaving your machine. Just fast, private, intelligent email.
| Capability | How |
|---|---|
| Semantic search | Find "that budget spreadsheet from Sarah" — not just emails containing the word "budget" |
| 10-minute inbox zero | Guided cleanup wizard with batch actions across thousands of emails |
| Subscription intelligence | Auto-detects 47 newsletters you forgot you signed up for |
| Topic clustering | Emails self-organize into projects, threads, and themes |
| Continuous learning | Every click, star, and archive makes search and classification smarter |
| Multi-account unified inbox | Gmail, Outlook, IMAP — one interface, one search, one brain |
Email arrives → Embed as vector → Classify via centroid similarity → Cluster by topic → Archive
↓ ↓ ↓
Searchable in <50ms Learns from corrections Groups evolve over time
Under the hood: HNSW vector indexing, Reciprocal Rank Fusion hybrid search, GraphSAGE-inspired clustering, 3-tier adaptive learning (SONA), and AES-256-GCM encryption at rest. All running locally in Rust.
# Clone
git clone https://github.com/pacphi/emailibrium.git
cd emailibrium
# Guided setup (recommended for first time)
make setup # interactive wizard: prerequisites, secrets, AI, Docker
# Option A: Native
make install
make dev
# → Backend: http://localhost:8080 Frontend: http://localhost:3000
# Option B: Docker
make setup-secrets # generate dev secrets (first time only)
make docker-up-dev # start with hot-reloadPrerequisites: Rust 1.95+, Node.js 24 (LTS)+, pnpm 10.32+ — or just Docker. See Setup Guide for details.
React TypeScript SPA ──REST + SSE──→ Axum API Gateway
│ │
TanStack Router Intelligence Layer
TanStack Query ┌─────────┼─────────┐
Zustand + PWA │ RuVector Engine │
│ HNSW · SONA · GNN │
└─────────┼─────────┘
Data Layer
SQLite · Redis · REDB
- Backend: Rust (Axum 0.8), SQLite, 22 vector intelligence modules (ONNX/fastembed default embeddings)
- Frontend: React 19, TypeScript, Tailwind CSS, 8 features, PWA-ready
- Privacy: All embeddings generated and stored locally. Cloud is opt-in, never required.
- Command Center — search hub with Cmd+K palette
- Inbox Cleaner — 4-step guided cleanup wizard
- Insights Explorer — charts, subscription analytics, health score
- Email Client — view, reply, compose with thread view
- Rules Studio — AI-suggested rules with semantic conditions
- Settings — per-account config, encryption, appearance
| Document | Description |
|---|---|
| User Guide | Getting started, features, keyboard shortcuts |
| UI Overview | Visual tour — screenshots of every screen |
| Deployment Guide | Install, Docker, production setup |
| Configuration Reference | Every config key, default, and env override |
| Document | Description |
|---|---|
| Maintainer Guide | Developer, designer, operator, security, and PM perspectives |
| Architecture | 4-tier system design, bounded contexts, data flow |
| Releasing | Version, tag, changelog, Docker image publishing |
| API Spec | OpenAPI 3.0 — all 12 endpoints with schemas |
| ADR | Decision |
|---|---|
| ADR-001 | Hybrid Search (FTS5 + HNSW + RRF) |
| ADR-002 | Pluggable Embedding Model |
| ADR-003 | RuVector with VectorStore Facade |
| ADR-004 | SONA Adaptive Learning Specification |
| ADR-005 | Web SPA (no Tauri) |
| ADR-006 | Multi-Asset Content Extraction |
| ADR-007 | Adaptive Quantization |
| ADR-008 | Privacy & Embedding Security |
| ADR-009 | GNN Clustering (GraphSAGE) |
| ADR-010 | Ingest-Tag-Archive Pipeline |
| Context | Scope |
|---|---|
| Context Map | How the 5 domains connect |
| Email Intelligence | Embedding, classification, clustering |
| Search | Hybrid search, SONA re-ranking |
| Ingestion | Multi-asset extraction, SSE progress |
| Learning | 3-tier SONA adaptive model |
| Account Management | OAuth, multi-provider sync |
| Document | Description |
|---|---|
| Research: Initial Evaluation | Academic evaluation with 30 citations |
| Research: LLM Options | ONNX, Ollama, cloud — tiered AI architecture |
| Search Quality | Recall, NDCG, MRR methodology |
| Classification | Macro-F1, per-category P/R |
| Clustering | Silhouette, ARI, detection metrics |
| Performance | Benchmarks and memory profiling |
| Domain Adaptation | Model switching, multilingual |
| Inbox Zero Protocol | User study design |
make help # see all available targets
make ci # format-check + lint + typecheck + test
make test # backend (Rust) + frontend (Vitest)
make docker-up-dev # full stack with hot-reload
make upgrade # upgrade all dependencies
make outdated # check what's staleSee the Maintainer Guide for the full developer experience.
| Layer | Technology |
|---|---|
| Backend | Rust, Axum 0.8, SQLite (SQLx), Moka cache |
| Vector Intelligence | HNSW indexing, SONA learning, GraphSAGE-inspired clustering, adaptive quantization (scalar/PQ/binary) |
| Frontend | React 19, TypeScript 5.9, Vite 8, TanStack Router + Query, Zustand, Tailwind CSS |
| UI Components | shadcn/ui pattern, Radix primitives, cmdk, Recharts, Framer Motion |
| Infrastructure | Docker Compose, GitHub Actions CI, Dependabot, Husky + lint-staged |
| Security | AES-256-GCM encryption at rest, Argon2id KDF, Web Crypto API, CSP headers |
MIT
Emailibrium: where email finds its equilibrium.