"Don't confuse motion with progress." Spend less time on email and get more done.
gistt is a terminal-native AI email client that shows you the gist — so you can focus on real progress.
"tab tab tab for emails."
Email is broken. Subject lines were supposed to tell you what a message is about, but in a world of promotions they're designed to make you click rather than inform. We haven't rethought the function of email in a while.
gistt is built around three core principles:
- Gist-focused, not email-focused — We show you the gist, not the inbox.
- Terminal constraint as a feature — Minimal UI, forced simplification.
- Action-focused state machine — Get you out as fast as possible (disengagement as success).
brew tap maximalmargin/gistt https://github.com/maximalmargin/gistt-tap
brew install gistt
- Python 3.10+
- Gmail account
- Google Cloud project with Gmail API enabled
- Gemini API key
Enable the Gmail API in your Google Cloud project and download the OAuth client JSON.
- Set application type to 'Desktop app'.
- Add the accounts you want to link to
APIs & Services → OAuth consent screen → Test users
.
Place the file at ~/.config/gistt/client_secret.json
.
Set the GISTT_CLIENT_CREDENTIALS
environment variable to override if you prefer a different location.
Run gistt
once to complete the OAuth flow.
By default tokens are written to ~/.local/share/gistt/accounts/<email>/token.json
.
To unlink an account: Remove the account's folder under ~/.local/share/gistt/accounts/<email>/
.
Set the Gemini API key in your environment (e.g. .env
):
# Get your key from https://aistudio.google.com/apikey
export GEMINI_API_KEY="YOUR_API_KEY"
Note: The CLI stores persisted state under ~/.local/share/gistt
. Remove that directory if you need a clean slate.
There is no database for this application. We don't store anything.
After installing via Homebrew, launch the client from any terminal:
gistt
Keyboard shortcuts:
g
— Fetch new gisttstab
— Execute recommended actions
— Mark as reade
— Archiver
— Draft replyj/k
— Navigateh
— Toggle filterq
— Quit
Customization: On first run gistt
writes a copy of the packaged defaults to ~/.config/gistt/settings.json
so you can tweak preferences. You can modify the rules and conditions to your liking.
Cached summaries include the action group priority as it existed when they were generated; if you change priorities, run rm ~/.local/share/gistt/gistt_cache.json
to rebuild with the new ordering.
gistt is early-stage and designed to be hackable. We're looking for tinkerers to help shape it. Here are features we'd love your help with:
- Smoothing out the UI/UX
- Hit
u
to unsubscribe from mailing lists - Slash commands for power users
- More AI model backends
Email maximalmargin@gmail.com to ask about contributing. PRs welcome.
- AI Horseless Carriages by Pete Koomen
- Claude Code, Codex CLI, and Gemini CLI
- Google's mission is to organize the world's information and make it universally accessible and useful
- AI Written, AI Read
- Squid Game
- Hilma af Klint
- Ready Player One