Skip to main content

Encrypted, searchable, portable Gmail archive

Project description

Coldmail

Encrypted, searchable, portable Gmail archive.

Archive years of Gmail into a single encrypted file. Search it offline with a native-feeling web UI. Keep your email history safe from third-party AI tools, data breaches, and prying eyes.

Why Coldmail?

If you use agentic AI tools (OpenClaw, etc.) that access your email, your entire history is exposed. Coldmail lets you:

  • Archive old emails (>1-2 years) out of Gmail
  • Encrypt them in a single portable file (AES-256)
  • Search them offline with a Gmail-like web interface
  • Lock everything behind a password when not in use
  • Backup safely to any cloud storage (it's just an opaque encrypted blob)

Quick Start

1. Install Coldmail

pip install coldmail

2. Install dependencies

coldmail setup
# Or manually:
# macOS:  brew install --cask docker macfuse veracrypt
# Linux:  sudo apt install docker.io veracrypt

3. Create your archive

coldmail init

You'll be asked for a volume size (default: 50GB) and a password.

4. Export your Gmail

Go to Google Takeout:

  • Select Gmail only
  • Choose MBOX format
  • Download when ready

5. Import and search

coldmail start                           # Mount + start web UI
coldmail import ~/Downloads/Gmail.mbox   # Import your emails
# Open http://localhost:15630 and search!
coldmail stop                            # Lock everything

Usage via AI Agent

Coldmail is designed to be operated end-to-end by an AI agent (Claude, etc.) on your behalf. Every command supports non-interactive flags so no stdin prompts block automation.

Just tell your AI assistant:

"Archive my Gmail with this project: https://github.com/cedric-coroir/coldmail"

The agent reads AGENT.md for step-by-step operational instructions.

Commands

Command Description
coldmail setup Install deps, start Docker, pull Bichon image
coldmail init Create a new encrypted archive
coldmail start Mount archive and start web UI
coldmail stop Stop web UI and lock archive
coldmail status Show current status (--json for machine-readable)
coldmail doctor Pre-flight check: deps, daemon, volume, image
coldmail accounts List imported email accounts (--json)
coldmail clean Scan Gmail to exclude newsletter senders
coldmail import <mbox> Import a Google Takeout MBOX file
coldmail gmail-setup Guide for connecting Gmail via IMAP
coldmail backup <path> Backup archive to a location
coldmail destroy Permanently delete archive

Newsletter Cleaner

Before importing, you can scan your Gmail to identify newsletter senders:

coldmail clean

This connects to Gmail (read-only), finds all senders with "unsubscribe" links, and lets you choose which to exclude. Only the emails you want are imported.

How It Works

                    coldmail start
                         |
Gmail ──Takeout──> MBOX ──import──> [VeraCrypt Volume]
                                         |
                                    [Bichon in Docker]
                                         |
                                    localhost:15630
                                    (search web UI)

                    coldmail stop
                         |
                    [Volume locked]
                    emails.vc = opaque encrypted file

Components:

  • VeraCrypt - AES-256 encrypted volume (the .vc file)
  • Bichon - Rust email archiver with React web UI and Tantivy full-text search
  • Docker - Runs Bichon in an isolated container

Portability

To move your archive to another machine:

  1. Copy emails.vc (your encrypted archive)
  2. Install Docker + VeraCrypt + Coldmail
  3. Run coldmail start

That's it. Everything is in the encrypted file.

Security Model

  • All emails stored in AES-256 encrypted volume
  • Password never stored anywhere
  • When stopped: archive is an opaque encrypted file
  • Bichon binds to 127.0.0.1 only (no network exposure)
  • Gmail API token deleted after newsletter scan
  • Safe to backup to any cloud storage

See Security Model for details.

Requirements

  • Python 3.8+
  • Docker
  • VeraCrypt (+ macFUSE on macOS)
  • 10GB+ free disk space

License

MIT - See LICENSE

Credits

Built on Bichon (AGPLv3) and VeraCrypt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coldmail-0.5.0.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coldmail-0.5.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file coldmail-0.5.0.tar.gz.

File metadata

  • Download URL: coldmail-0.5.0.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.21

File hashes

Hashes for coldmail-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e2e68fae6ae085c62dd7dce575366a1d8542611c6a5c42313a71ce92597c5699
MD5 d2a6f89d4ac07cce4e6425036460da26
BLAKE2b-256 df8352c50188f5f57c6df16fda086a4988dc563fbe2984cf68737a87f2eab74a

See more details on using hashes here.

File details

Details for the file coldmail-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: coldmail-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.21

File hashes

Hashes for coldmail-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c0f05b842b08342105212e0f607dfee0d7868c1d7d0ed78e11b9fcbe65dcf6d
MD5 a2850f4c49e645958d691a0ab74c5832
BLAKE2b-256 a3a27a8073e95b78860c5cbaa98b9d1c043a9428b188dfcb1e2a4d8fc8f49ef5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page