Self-hosted personal intelligence platform.
Aggregate 15+ data sources. Surface actionable insights with RAG. Publish autonomously.
Aegis connects to your financial accounts, email, calendars, social media, health devices, and more β then uses a RAG pipeline powered by Claude to deliver intelligent briefings, trend analysis, and autonomous content publishing. Everything runs on a single VPS behind Cloudflare Tunnel with zero public ports and AES-256-GCM encryption at rest.
Personal Intelligence
- π¦ Financial analysis β Spending trends, recurring charges, and portfolio tracking via Plaid + Schwab
- βοΈ Email intelligence β Automated categorization, priority scoring, and relationship extraction
- π Academic tracking β Assignment deadlines and grade monitoring across Canvas, Blackboard, and Pearson
- π§βπ€βπ§ Contact graph β Relationship mapping across email, social, calendar, and messaging
- β€οΈ Health optimization β Activity trends and sleep analysis from Apple Health + Garmin
Content Engine
- π€ RAG pipeline β Qdrant vector store with sentence-transformer embeddings over all ingested data
- π° Autonomous publishing β Daily thought-leadership posts to LinkedIn and X from your knowledge base
- π§ Claude-powered analysis β Anthropic Claude API for content generation and insight synthesis
Security-First Architecture
- π Zero attack surface β No public ports; all access through Cloudflare Tunnel
- π‘οΈ AES-256-GCM encryption β All sensitive data encrypted at rest with authenticated encryption
- π SOPS + age β Secrets managed with Mozilla SOPS, encrypted with age keys
- π Audit logging β Every data access operation logged with tamper-evident trails
Cloudflare Tunnel (zero public ports)
|
+-----------------+-----------------+
| | |
Web Console Mobile App Automated
(Next.js 15) (React Native) Publishing
| | (LinkedIn/X)
+--------+--------+--------+
|
+--------v--------+
| Traefik | Single VPS
| (internal RP) | Docker Compose
+--------+--------+
|
+------------------+------------------+
| | |
+------v------+ +------v------+ +-------v--------+
| FastAPI | | Celery | | Content Engine |
| (REST + | | (Workers | | (RAG + Claude |
| WebSocket) | | + Beat) | | pipeline) |
+------+-------+ +------+------+ +-------+--------+
| | |
+------------------+------------------+
| | | |
+------v--+ +-----v---+ +----v----+ +----v----+
| Postgres | | Redis | | Qdrant | | MinIO |
|+pgvector | | (broker | |(vectors)| |(objects)|
| | |+ cache) | | | | |
+----------+ +---------+ +---------+ +---------+
| Category | Sources | Method |
|---|---|---|
| Banking | Chase, TD, PNC, Discover, Amex | Plaid API |
| Investments | Fidelity / Schwab | Schwab API (schwab-py) |
| Gmail | Gmail API + IMAP fallback | |
| Education | Canvas LMS, Blackboard, Pearson | REST APIs + Playwright |
| Social | LinkedIn, X / Twitter | Platform APIs + scraper fallback |
| Calendar | Google Calendar, Outlook | Google Calendar API, Microsoft Graph |
| Messaging | whatsapp-web.js Node.js bridge |
|
| Health | Apple Health, Garmin | HealthKit export, Garmin Connect API |
| Productivity | Mac Screen Time, iPhone | Swift agent + iOS Shortcuts |
| News | NewsAPI, RSS feeds | newsapi-python, feedparser |
| Web | General web | Playwright + BeautifulSoup |
- Docker + Docker Compose 2.29+
- Python 3.12+
- Node.js 20+
git clone https://github.com/JiwaniZakir/aegis.git
cd aegis
cp .env.example .env
# Edit .env with your API credentials (Plaid, Google, Anthropic, etc.)docker compose up -ddocker compose exec api alembic upgrade headopen http://localhost:3000# Backend only (with hot reload)
cd backend && uv sync --extra dev && uv run uvicorn app.main:app --reload
# Install all optional extras (integrations + ml + dev)
cd backend && uv sync --all-extras
# Console only
cd console && npm install && npm run dev
# Run tests (338 tests)
cd backend && uv sync --extra dev && uv run pytest
# Lint + format
make lint
make formatSee the Makefile for all available commands.
aegis/
βββ backend/
β βββ app/
β β βββ main.py # FastAPI application factory
β β βββ config.py # Pydantic settings
β β βββ celery_app.py # Task queue + Beat schedule
β β βββ database.py # Async SQLAlchemy engine
β β βββ api/v1/ # 12 REST routers
β β βββ integrations/ # 15 data source clients
β β βββ services/ # 10 business logic modules
β β βββ models/ # 14 SQLAlchemy models
β β βββ security/ # Auth, encryption, audit
β β βββ tasks/ # 9 Celery task definitions
β βββ tests/ # 338 tests
β βββ alembic/ # Database migrations
β βββ pyproject.toml
βββ console/ # Next.js 15 web dashboard
β βββ src/
β βββ app/ # 10 dashboard pages
β βββ components/ # shadcn/ui components
β βββ lib/ # API client, Zustand stores
βββ mobile/ # React Native voice app (Expo)
βββ whatsapp-bridge/ # Node.js WhatsApp sidecar
βββ infrastructure/
β βββ Dockerfile.* # Multi-stage container builds
β βββ cloudflared/ # Tunnel configuration
β βββ traefik/ # Reverse proxy config
β βββ postgres/ # DB initialization
β βββ scripts/ # deploy.sh, backup.sh, rotate-secrets.sh
βββ secrets/ # SOPS-encrypted credentials
βββ docker-compose.yml # Development stack
βββ docker-compose.prod.yml # Production overrides
βββ Makefile # Dev workflow commands
βββ .env.example # Environment template
| Task | Frequency | Description |
|---|---|---|
| Financial sync | Every 6 hours | Pull transactions and balances via Plaid |
| Email analysis | Every 30 minutes | Categorize and extract insights from new emails |
| Calendar sync | Every 15 minutes | Sync events from Google Calendar + Outlook |
| Social monitoring | Every 2 hours | Track LinkedIn and X activity |
| Health sync | Hourly | Process Apple Health + Garmin data |
| Content publishing | Daily 7:00 AM | Generate and publish thought-leadership content |
| WhatsApp sync | Every 30 minutes | Sync messages via WhatsApp bridge |
| Meeting transcription | Every 2 hours | Transcribe and analyze recordings |
| Garmin sync | Every 4 hours | Pull fitness and sleep metrics |
Contributions are welcome. Please read the contributing guidelines before opening a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feat/my-feature) - Commit your changes (
git commit -m 'feat: add my feature') - Push to the branch (
git push origin feat/my-feature) - Open a Pull Request
This project follows Conventional Commits (feat:, fix:, chore:, docs:, security:).
This project is licensed under the MIT License. See the LICENSE file for details.
Built by Zakir Jiwani