// the find
jessfraz/gmailfilters
A tool to sync Gmail filters from a config file to your account.
A CLI that syncs Gmail filters from a single TOML config file to your account via the Gmail API, so your filter rules live in version control instead of scattered across the Gmail UI. Built by Jess Frazelle, it's aimed at developers who get buried in GitHub notification mail and want reproducible, scriptable filter management.
The config format handles real Gmail query complexity well — OR groups, archive/read/label/delete actions, and label hierarchies with slashes — as shown by the example file's GitHub notification routing. Small, single-purpose codebase (four Go files: main, gmail, filter, labels) that's easy to read in full before trusting it with your inbox. Uses the official Gmail API with standard OAuth credential/token file flow rather than screen-scraping or IMAP hacks.
The sync model is destructively one-directional by design: any filter you add through the Gmail UI and forget to mirror in the TOML file gets deleted on the next run — a footgun that's easy to trigger accidentally. No commits since February 2023, and Google's API libraries and OAuth flows shift often enough that a two-plus-year-old Go OAuth integration is a real risk of silent breakage. Test coverage is thin — only filter_test.go exists, so the actual Gmail API interaction code (gmail.go, labels.go) has no automated tests at all. Dependencies are vendored directly into the repo the old way, which bloats the checkout and means security patches to those vendored packages won't happen without someone manually re-vendoring.