Security

JARVOS is a local-first application. By default your most sensitive data — email content, credentials, contacts — never leaves your machine; a few opt-in features send data out only when you turn them on, and chat questions that need a web search go to a search engine. This page describes the security measures applied to data that does cross a boundary.

AES-256-GCM Credential Encryption

IMAP and SMTP passwords are encrypted with AES-256-GCM before being written to your local database. The encryption key is stored in your OS keychain (Windows Credential Manager / macOS Keychain / libsecret on Linux).

Local-First Data Model

Your email, WhatsApp messages, and contacts are stored in a SQLite database on your machine. By default nothing is transmitted to JARVOS servers, and JARVOS has no copy of your data. Two opt-in features can send data out when you enable them: remote e-signature (below), where an end-to-end-encrypted copy we cannot read transits our relay for an external signer; and the Claude Cowork connector, which sends whatever Claude requests — your recent mail, contacts, or pipeline — to Anthropic's cloud. Separately, chat questions that need current information are sent to a web search engine (see the Privacy Policy, §3a).

Signed Authentication Tokens

Sessions are authenticated with JWTs signed with a server-side secret, and every signed-in API endpoint verifies the signature on each request. In the desktop app, credentials are held in your OS keychain. The web account portal stores its session token in your browser's local storage so you stay signed in between visits.

Automated Backup Integrity

Once you choose how backups are kept (Settings → Security), JARVOS makes a nightly copy of your local database — encrypted with your recovery code, unless you chose unencrypted backups — and records its SHA-256 hash. A weekly check re-hashes the latest backup.

Webhook Signature Verification

All incoming webhooks (Stripe, Meta Cloud API, QuickBooks, Xero) are verified using HMAC-SHA256 signatures with timing-safe comparison to prevent forgery. Stripe webhooks are also time-stamped against replay.

No Telemetry by Default

JARVOS sends no usage analytics. Crash reporting is off unless you turn it on in Settings → Security.

End-to-End Encrypted Remote Signing

Remote e-signature is off by default. When you enable it, a document sent for signature is AES-256-GCM encrypted on your machine before upload; the decryption key travels only in the signer's link and never reaches our servers, so JARVOS cannot read the document. The encrypted copy is deleted after signing, and within 48 hours regardless.

Responsible Disclosure

If you discover a security vulnerability in JARVOS, please report it privately before public disclosure. We will acknowledge receipt within 48 hours and aim to resolve confirmed issues within 14 days.

security@jarvos.site — please encrypt sensitive reports with our PGP key (available on request).

We do not currently offer a bug bounty program. We do publicly acknowledge researchers who report valid issues, with their permission.

What JARVOS will never do

  • Store your email passwords in plaintext on disk
  • Transmit your email content, contacts, or documents to JARVOS servers
  • Sell your data, or share it with anyone except the services you connect and the search engine for web questions
  • Access your machine remotely or execute code on your behalf without explicit user action
  • Silently disable telemetry opt-out preferences