{"slug": "cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies", "title": "Cwmail – a fast, keyboard-driven terminal email client in Go, AI-powered replies", "summary": "Cwmail, a terminal email client written in Go using Bubbletea v2, launched with AI-powered reply drafting via DeepSeek V4 Pro, proper HTML rendering, inline image support, and multi-account IMAP management. The client stores credentials locally in the OS keyring and offers offline capabilities, distinguishing itself from web-based email services.", "body_md": "# cwmail\n\nA terminal email client with proper HTML rendering, inline image support, multi-account IMAP, and AI-drafted replies powered by DeepSeek V4 Pro.\n\nWritten in Go on Bubbletea v2. Reads real mail. Renders HTML newsletters, receipts, calendar invites, and event posters without dropping out to a browser. Drafts replies you can edit in place.\n\nGmail, iCloud, Outlook, custom\n\nnot polling\n\ndrafts your reply\n\n## What it is\n\ncwmail is a full-screen Bubbletea TUI for managing IMAP mailboxes. It handles the actual hard parts of email — MIME multipart, HTML rendering, charset detection, inline images, attachments, threading, drafts — not just the obvious ones.\n\nYou can manage as many IMAP accounts as you want side-by-side in the sidebar. Folder navigation is fast (Vim-style or arrows), full-text search hits the local SQLite mirror so it returns instantly, and IDLE push keeps your inbox current without polling. Desktop notifications fire when new mail arrives.\n\nThe AI-drafted-reply feature is a one-key action: hit `R`\n\non\nany open message and the model produces a contextual reply draft in the\ncomposer. You can edit, send, save as draft, or discard. Same DeepSeek\nprofile cwcode uses, so one API key powers both apps.\n\nIt is not a service. There is no cwmail.io. Your IMAP credentials sit\nin `~/.config/cwmail/config.json`\n\n; everything else lives in\n`~/.local/share/cwmail/`\n\n. Offline-capable for everything\nexcept actually sending and fetching.\n\n## Why it’s different\n\n`pixterm`\n\n-style rendering). Works on\nany terminal with true-color support. Useful for event banners,\nproduct photos in receipts, and inline charts.\n`R`\n\non any open message. The DeepSeek V4 Pro model\ndrafts a contextual reply (using the same profile cwcode uses).\nYou see the draft in the composer ready to edit. The model knows\nthe prior thread, your typical tone, and whether to be terse or\nwarm based on the conversation. Costs ~$0.01 per draft.\n`u`\n\nand the message comes back.\nMatches matcha.email’s UX for the most common reflex\nmistake.\n`~/.local/share/cwmail/drafts/`\n\nevery few\nkeystrokes. Crash, force-quit, accidentally close the window\n— the draft is still there next time you launch.\n```\ncwmail send --to alice@example.com --subject “build done”\n--body “all green”\n```\n\n— non-interactive sending,\nuseful for AI agents (cwcode included), CI pipelines, and shell\nscripts. Reads body from stdin too. Same auth as the TUI.\n`~/.local/share/cwmail/`\n\n. You can grep your own\nmail. Credentials live in the OS keyring (macOS Keychain, libsecret\non Linux, Credential Manager on Windows).\n## What it looks like\n\n## Install\n\nDownload a pre-built binary from the\n[Google Drive release folder](https://drive.google.com/drive/folders/1joUzGPJghR-iJ0U93vDjKoTfA2WylvVU?usp=sharing)\n(current build: v0.9; macOS arm64 / amd64 and Linux amd64). Drop it\nsomewhere on your `PATH`\n\nand make it executable:\n\n```\ncurl -L <download-url> -o ~/.local/bin/cwmail\nchmod +x ~/.local/bin/cwmail\ncwmail --help\n```\n\nConfigure your first IMAP account in\n`~/.config/cwmail/config.json`\n\n:\n\n```\n{\n  \"accounts\": [\n    {\n      \"name\":     \"Gmail\",\n      \"imap\":     \"imap.gmail.com:993\",\n      \"smtp\":     \"smtp.gmail.com:587\",\n      \"username\": \"you@gmail.com\"\n    }\n  ],\n  \"ai\": {\n    \"endpoint\":  \"https://api.deepseek.com\",\n    \"model\":     \"deepseek-v4-pro\",\n    \"api_key\":   \"sk-...\"\n  }\n}\n```\n\nRun it.\n\n```\ncwmail                                # full TUI\ncwmail send --to a@b.com --subject hi # non-interactive send\ncwmail compose                        # straight to composer\n```\n\nOn first launch cwmail prompts for the Gmail app-password (or OAuth flow), stores it in the OS keyring, and starts the IDLE connection.\n\n## FAQ\n\n`/`\n\nfor instant search across subject, body, and\nsender. Server-side search is also exposed via `/i:`\n\n.`Enter`\n\n; navigation walks the tree.`Ctrl+S`\n\n.[Google Drive](https://drive.google.com/drive/folders/1joUzGPJghR-iJ0U93vDjKoTfA2WylvVU?usp=sharing). Source currently private — will open once the IMAP edge cases settle. Reach out for early access.\n\n`cwmail send`\n\nas a CLI tool. We use this for “ship\na build, email the team” runs at the end of long autonomous\nloops.", "url": "https://wpnews.pro/news/cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies", "canonical_source": "https://mail.intellios.ai/", "published_at": "2026-06-17 21:06:13+00:00", "updated_at": "2026-06-17 21:23:37.218773+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "developer-tools"], "entities": ["Cwmail", "DeepSeek V4 Pro", "Bubbletea", "Gmail", "iCloud", "Outlook", "Google Drive", "IMAP"], "alternates": {"html": "https://wpnews.pro/news/cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies", "markdown": "https://wpnews.pro/news/cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies.md", "text": "https://wpnews.pro/news/cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies.txt", "jsonld": "https://wpnews.pro/news/cwmail-a-fast-keyboard-driven-terminal-email-client-in-go-ai-powered-replies.jsonld"}}