gmailctl
brew install gmailctl
v0.12.0
MIT
Declarative configuration for Gmail filters
66
30-day installs · #4125
160
90-day · #4583
509
365-day · #5072
2.2k
★ GitHub stars · updated 2mo ago
Build dependencies
GitHub topics
cli
filters
gmail
gmail-filter
go
jsonnet
labels
Links
- https://github.com/mbrt/gmailctl
- GitHub: mbrt/gmailctl
- Brew formula source: Formula/g/gmailctl.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"go"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Declarative configuration for Gmail filters",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:11+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "gmailctl",
"github_default_branch": "master",
"github_last_commit_at": "2026-06-19T06:24:43Z",
"github_readme_excerpt": "# gmailctl\n[](https://goreportcard.com/report/github.com/mbrt/gmailctl)\n\n\nThis utility helps you generate and maintain Gmail filters in a declarative way.\nIt has a [Jsonnet](https://jsonnet.org/) configuration file that aims to be\nsimpler to write and maintain than using the Gmail web interface, to categorize,\nlabel, archive and manage your inbox automatically.\n\n## Table of contents\n- [gmailctl](#gmailctl)\n - [Table of contents](#table-of-contents)\n - [Motivation](#motivation)\n - [Install](#install)\n - [Usage](#usage)\n - [Config directory](#config-directory)\n - [Migrate from another solution](#migrate-from-another-solution)\n - [Other commands](#other-commands)\n - [Configuration](#configuration)\n - [Search operators](#search-operators)\n - [Logic operators](#logic-operators)\n - [Reusing filters](#reusing-filters)\n - [Actions](#actions)\n - [Labels](#labels)\n - [Tests](#tests)\n - [Tips and tricks](#tips-and-tricks)\n - [Chain filtering](#chain-filtering)\n - [To me](#to-me)\n - [Directly to me](#directly-to-me)\n - [Automatic labels](#automatic-labels)\n - [Multiple Gmail accounts](#multiple-gmail-accounts)\n - [Known issues](#known-issues)\n - [Apply filters to existing emails](#apply-filters-to-existing-emails)\n - [OAuth2 authentication errors](#oauth2-authentication-errors)\n - [YAML config is unsupported](#yaml-config-is-unsupported)\n - [Comparison with existing projects](#comparison-with-existing-projects)\n - [Footnotes](#footnotes)\n\n## Motivation\n\nIf you use Gmail and have to maintain (like me) a lot of filters (to apply\nlabels, get rid of spam or categorize your emails), then you probably have (like\nme) a very long list of messy filters. At a certain point one of your messages\ngot mislabled and you try to understand why. You scroll through that horrible\nmess of filters, you wish",
"github_repo": "mbrt/gmailctl",
"github_stars": 2183,
"github_topics": [
"cli",
"filters",
"gmail",
"gmail-filter",
"go",
"jsonnet",
"labels"
],
"homepage": "https://github.com/mbrt/gmailctl",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 66,
"installs_365d": 509,
"installs_90d": 160,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": null,
"llm_model": null,
"name": "gmailctl",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 4125,
"rank_365d": 5072,
"rank_90d": 4583,
"raw_hash": "bd65510e7c9319de",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/g/gmailctl.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "0.12.0",
"versioned_formulae": [],
"why_use_this": null
}