Security Model

Where your data lives, who can see it, and why we can't even if we wanted to.

We DON'T See Your Data

🔒 Level 1: 100% Local (Paranoid Mode)

How it works:

Browser Extension
    ↓
Native Host (your Mac, Python script)
    ↓
Your Vault (~/projects/jarvis or ~/Documents/Obsidian)
    ↓
Your LLM:
  - Ollama (localhost:11434)
  - LM Studio (localhost:1234)
  - llama.cpp (local binary)
  - AWS Bedrock (your keys, direct API)

Network calls: Zero (unless you use Bedrock/OpenAI with your keys)

Our access: Zero. We never see your vault or prompts.

Can we decrypt: N/A (nothing encrypted, it's local files)

Proof: Read jarvis-host.py — no network calls except LLM API (if you configure one)

🔑 Level 2: BYO Keys

How it works:

Browser Extension
    ↓
Native Host (your Mac)
    ↓
Your Vault (local, never uploaded)
    ↓
Your LLM API (direct call from your machine):
  - OpenAI API (your key)
  - Anthropic API (your key)
  - Google Gemini (your key)
  - Azure OpenAI (your key)

Network calls: Only to the LLM provider YOU chose, with YOUR keys

Our access: Zero. Your machine calls OpenAI/Anthropic directly. We're not in the middle.

Can we see your keys: No. Stored in ~/.aws/credentials or ~/.config/mindgrift (local file on your Mac)

Proof: grep -r "1real.ai" jarvis-host.py → Zero hits. No calls to our servers.

☁️ Level 3: Hosted (Coming Dec 2026)

How it works:

Browser Extension
    ↓
mindgrift API (Cloudflare Workers, edge)
    ↓
Your Encrypted Vault:
  - Google Drive (your OAuth, encrypted before upload)
  - Microsoft OneDrive (your OAuth, encrypted)
  - Dropbox (your OAuth, encrypted)
  - AWS S3 (your keys, encrypted)
    ↓
Your LLM:
  - Included: 1k Haiku queries/mo (our separate Bedrock account)
  - BYO: Your OpenAI/Anthropic keys (direct API from edge)

Encryption: AES-256-GCM. Key derived from your password (PBKDF2, 100k iterations)

Where key stored:

  • Client-side: Browser extension (encrypted with device key)
  • Fallback: Your OS keychain (macOS Keychain, Windows Credential Manager)
  • Our servers: Never. We store encrypted vault only.

Can we decrypt: NO. Key never leaves your device.

What if we're served a warrant: We hand over encrypted blob. Without your password, it's useless.

Status: Level 3 (hosted, client-side encrypted) is a design spec, not built yet. Levels 1 and 2 ship today and are fully auditable on GitHub.

Infrastructure Separation

What Where Access
Your personal Jarvis vault Your Mac (~/projects/jarvis) Only you
Our internal tools (1REAL.ai) Private infrastructure, separate from this product Only us (team)
mindgrift public product Nothing hosted yet. Levels 1/2 run on your machine and your own API keys Separate, no crossover
Hosted vaults (Level 3) User's Drive/OneDrive/S3 (encrypted) User only (we can't decrypt)

Why this matters: Your data never touches our internal systems. Public product infrastructure is isolated.

Open Source Promise

📦 Chrome Extension

View source

What it does: Injects sidebar, captures page context, sends to native host

🐍 Native Host

View source

What it does: Reads local vault, calls LLM API, returns response

☁️ Backend (Level 3, coming soon)

View source

What it does: Proxies encrypted vault to user's Drive/OneDrive, can't decrypt

Audit it yourself: Clone the repo, read every line, build from source. No binaries.

What We Track

What Do we track? Why
Your vault content NO Never uploaded (Level 1/2) or encrypted (Level 3)
Your prompts to LLM NO Direct API call from your machine (or encrypted at edge)
Pages you visit NO Extension doesn't phone home
Extension install NO Sideloaded from GitHub, not Chrome Web Store (yet)
Hosted vault usage (Level 3) YES (metadata only) Billing: # of API calls, storage used. No content.

This website uses Google Tag Manager and Google Analytics 4 to count visits (the site owner's own traffic is excluded). The extension itself sends no telemetry and has no analytics of any kind.

Threat Model

❌ Threat: We get hacked

Level 1/2: No impact. Your data is local.

Level 3: Attacker gets encrypted vaults. Without user passwords, useless.

❌ Threat: Government subpoena

Level 1/2: We have nothing to hand over.

Level 3: We hand over encrypted vault. They need user's password to decrypt.

❌ Threat: Rogue employee

Level 1/2: Can't access (data is local).

Level 3: Can see encrypted blob, can't decrypt without user password.

❌ Threat: Supply chain attack (npm package)

Mitigation: Minimal dependencies. Review package.json. Build from source.

❌ Threat: Chrome extension malware

Mitigation: Open source. Audit before installing. No auto-updates (yet).

Report a Vulnerability

Found a security issue? Email: security@1real.ai

PGP key: TODO

Bug bounty: Not yet. Public launch first, then HackerOne program.