{"id":47785192,"url":"https://github.com/pacphi/emailibrium","last_synced_at":"2026-04-24T02:03:19.139Z","repository":{"id":347375087,"uuid":"1193853291","full_name":"pacphi/emailibrium","owner":"pacphi","description":"Bring your inbox into equilibrium.","archived":false,"fork":false,"pushed_at":"2026-03-27T19:47:40.000Z","size":2518,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T01:29:26.235Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pacphi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-27T16:42:59.000Z","updated_at":"2026-03-27T19:47:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pacphi/emailibrium","commit_stats":null,"previous_names":["pacphi/emailibrium"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pacphi/emailibrium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Femailibrium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Femailibrium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Femailibrium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Femailibrium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pacphi","download_url":"https://codeload.github.com/pacphi/emailibrium/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacphi%2Femailibrium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31357215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T08:03:20.796Z","status":"ssl_error","status_checked_at":"2026-04-03T08:00:37.834Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T14:23:46.743Z","updated_at":"2026-04-24T02:03:19.132Z","avatar_url":"https://github.com/pacphi.png","language":"Rust","readme":"# Emailibrium\n\n**Your inbox found its balance.**\n\n\u003e _Email + Equilibrium = Emailibrium._ Because your inbox shouldn't feel like a second job.\n\nEmailibrium 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.\n\nNo cloud processing. No data leaving your machine. Just fast, private, intelligent email.\n\n---\n\n## What It Does\n\n| Capability                      | How                                                                                      |\n| ------------------------------- | ---------------------------------------------------------------------------------------- |\n| **Semantic search**             | Find \"that budget spreadsheet from Sarah\" — not just emails containing the word \"budget\" |\n| **10-minute inbox zero**        | Guided cleanup wizard with batch actions across thousands of emails                      |\n| **Subscription intelligence**   | Auto-detects 47 newsletters you forgot you signed up for                                 |\n| **Topic clustering**            | Emails self-organize into projects, threads, and themes                                  |\n| **Continuous learning**         | Every click, star, and archive makes search and classification smarter                   |\n| **Multi-account unified inbox** | Gmail, Outlook, IMAP — one interface, one search, one brain                              |\n\n## How It Works\n\n```text\nEmail arrives → Embed as vector → Classify via centroid similarity → Cluster by topic → Archive\n                    ↓                        ↓                           ↓\n              Searchable in \u003c50ms    Learns from corrections    Groups evolve over time\n```\n\nUnder 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.\n\n## Quick Start\n\n```bash\n# Clone\ngit clone https://github.com/pacphi/emailibrium.git\ncd emailibrium\n\n# Guided setup (recommended for first time)\nmake setup            # interactive wizard: prerequisites, secrets, AI, Docker\n\n# Option A: Native\nmake install\nmake dev\n# → Backend: http://localhost:8080  Frontend: http://localhost:3000\n\n# Option B: Docker\nmake setup-secrets    # generate dev secrets (first time only)\nmake docker-up-dev    # start with hot-reload\n```\n\n**Prerequisites:** Rust 1.95+, Node.js 24 (LTS)+, pnpm 10.32+ — or just Docker. See [Setup Guide](docs/setup-guide.md) for details.\n\n## Architecture\n\n```text\nReact TypeScript SPA ──REST + SSE──→ Axum API Gateway\n         │                                │\n    TanStack Router                  Intelligence Layer\n    TanStack Query              ┌─────────┼─────────┐\n    Zustand + PWA               │    RuVector Engine  │\n                                │  HNSW · SONA · GNN  │\n                                └─────────┼─────────┘\n                                     Data Layer\n                                SQLite · Redis · REDB\n```\n\n- **Backend:** Rust (Axum 0.8), SQLite, 22 vector intelligence modules (ONNX/fastembed default embeddings)\n- **Frontend:** React 19, TypeScript, Tailwind CSS, 8 features, PWA-ready\n- **Privacy:** All embeddings generated and stored locally. Cloud is opt-in, never required.\n\n## Features at a Glance\n\n- **Command Center** — search hub with Cmd+K palette\n- **Inbox Cleaner** — 4-step guided cleanup wizard\n- **Insights Explorer** — charts, subscription analytics, health score\n- **Email Client** — view, reply, compose with thread view\n- **Rules Studio** — AI-suggested rules with semantic conditions\n- **Settings** — per-account config, encryption, appearance\n\n## Documentation\n\n### For Everyone\n\n| Document                                                   | Description                                   |\n| ---------------------------------------------------------- | --------------------------------------------- |\n| [User Guide](docs/user-guide.md)                           | Getting started, features, keyboard shortcuts |\n| [UI Overview](docs/user-interface-overview.md)             | Visual tour — screenshots of every screen     |\n| [Deployment Guide](docs/deployment-guide.md)               | Install, Docker, production setup             |\n| [Configuration Reference](docs/configuration-reference.md) | Every config key, default, and env override   |\n\n### For the Team\n\n| Document                                     | Description                                                  |\n| -------------------------------------------- | ------------------------------------------------------------ |\n| [Maintainer Guide](docs/maintainer-guide.md) | Developer, designer, operator, security, and PM perspectives |\n| [Architecture](docs/architecture.md)         | 4-tier system design, bounded contexts, data flow            |\n| [Releasing](docs/releasing.md)               | Version, tag, changelog, Docker image publishing             |\n| [API Spec](docs/api/openapi.yaml)            | OpenAPI 3.0 — all 12 endpoints with schemas                  |\n\n### Architecture Decisions\n\n| ADR                             | Decision                             |\n| ------------------------------- | ------------------------------------ |\n| [ADR-001](docs/ADRs/ADR-001.md) | Hybrid Search (FTS5 + HNSW + RRF)    |\n| [ADR-002](docs/ADRs/ADR-002.md) | Pluggable Embedding Model            |\n| [ADR-003](docs/ADRs/ADR-003.md) | RuVector with VectorStore Facade     |\n| [ADR-004](docs/ADRs/ADR-004.md) | SONA Adaptive Learning Specification |\n| [ADR-005](docs/ADRs/ADR-005.md) | Web SPA (no Tauri)                   |\n| [ADR-006](docs/ADRs/ADR-006.md) | Multi-Asset Content Extraction       |\n| [ADR-007](docs/ADRs/ADR-007.md) | Adaptive Quantization                |\n| [ADR-008](docs/ADRs/ADR-008.md) | Privacy \u0026 Embedding Security         |\n| [ADR-009](docs/ADRs/ADR-009.md) | GNN Clustering (GraphSAGE)           |\n| [ADR-010](docs/ADRs/ADR-010.md) | Ingest-Tag-Archive Pipeline          |\n\n### Domain Model\n\n| Context                                                       | Scope                                 |\n| ------------------------------------------------------------- | ------------------------------------- |\n| [Context Map](docs/DDDs/DDD-000-context-map.md)               | How the 5 domains connect             |\n| [Email Intelligence](docs/DDDs/DDD-001-email-intelligence.md) | Embedding, classification, clustering |\n| [Search](docs/DDDs/DDD-002-search.md)                         | Hybrid search, SONA re-ranking        |\n| [Ingestion](docs/DDDs/DDD-003-ingestion.md)                   | Multi-asset extraction, SSE progress  |\n| [Learning](docs/DDDs/DDD-004-learning.md)                     | 3-tier SONA adaptive model            |\n| [Account Management](docs/DDDs/DDD-005-account-management.md) | OAuth, multi-provider sync            |\n\n### Research \u0026 Evaluation\n\n| Document                                                             | Description                                  |\n| -------------------------------------------------------------------- | -------------------------------------------- |\n| [Research: Initial Evaluation](docs/research/initial.md)             | Academic evaluation with 30 citations        |\n| [Research: LLM Options](docs/research/llm-options.md)                | ONNX, Ollama, cloud — tiered AI architecture |\n| [Search Quality](backend/docs/evaluation/search-quality.md)          | Recall, NDCG, MRR methodology                |\n| [Classification](backend/docs/evaluation/classification-accuracy.md) | Macro-F1, per-category P/R                   |\n| [Clustering](backend/docs/evaluation/clustering-quality.md)          | Silhouette, ARI, detection metrics           |\n| [Performance](backend/docs/evaluation/performance.md)                | Benchmarks and memory profiling              |\n| [Domain Adaptation](docs/evaluation/domain-adaptation.md)            | Model switching, multilingual                |\n| [Inbox Zero Protocol](docs/evaluation/inbox-zero-protocol.md)        | User study design                            |\n\n## Development\n\n```bash\nmake help              # see all available targets\nmake ci                # format-check + lint + typecheck + test\nmake test              # backend (Rust) + frontend (Vitest)\nmake docker-up-dev     # full stack with hot-reload\nmake upgrade           # upgrade all dependencies\nmake outdated          # check what's stale\n```\n\nSee the [Maintainer Guide](docs/maintainer-guide.md) for the full developer experience.\n\n## Tech Stack\n\n| Layer               | Technology                                                                                            |\n| ------------------- | ----------------------------------------------------------------------------------------------------- |\n| Backend             | Rust, Axum 0.8, SQLite (SQLx), Moka cache                                                             |\n| Vector Intelligence | HNSW indexing, SONA learning, GraphSAGE-inspired clustering, adaptive quantization (scalar/PQ/binary) |\n| Frontend            | React 19, TypeScript 5.9, Vite 8, TanStack Router + Query, Zustand, Tailwind CSS                      |\n| UI Components       | shadcn/ui pattern, Radix primitives, cmdk, Recharts, Framer Motion                                    |\n| Infrastructure      | Docker Compose, GitHub Actions CI, Dependabot, Husky + lint-staged                                    |\n| Security            | AES-256-GCM encryption at rest, Argon2id KDF, Web Crypto API, CSP headers                             |\n\n## License\n\nMIT\n\n---\n\n_Emailibrium: where email finds its equilibrium._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacphi%2Femailibrium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpacphi%2Femailibrium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacphi%2Femailibrium/lists"}