Journeyman is a terminal email client built in Rust for speed: a single native binary, a non-blocking UI, and a local SQLite cache so the thread list renders instantly on launch instead of waiting on the network. The interface is built on Ratatui and crossterm with vim-style keys, plus mouse click and scroll support.
Gmail accounts use OAuth2 against the Gmail REST API for native threads and labels; any other provider connects over IMAP with TLS, where conversations are rebuilt client-side from References/In-Reply-To headers with a subject fallback. Multiple accounts of either kind can be mixed and switched with Tab. Gmail auth requests only the read-only scope by default, with a separate one-time re-authorization to add the narrow send scope, and every secret — IMAP passwords and OAuth refresh tokens — lives in the OS keychain rather than a plaintext config.
Key Highlights
- ▸Single native Rust binary with a non-blocking terminal UI
- ▸Native Gmail backend (OAuth2 + REST API) alongside generic IMAP over TLS
- ▸Client-side conversation threading from References/In-Reply-To headers
- ▸Multiple accounts, mixing Gmail and IMAP, switchable with Tab
- ▸Local SQLite cache for instant rendering on launch
- ▸Minimal OAuth scopes, with secrets stored in the OS keychain