🍺 BREW Explorer

← all formulae

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

go

GitHub topics

cli filters gmail gmail-filter go jsonnet labels

Links

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[![Go Report Card](https://goreportcard.com/badge/github.com/mbrt/gmailctl)](https://goreportcard.com/report/github.com/mbrt/gmailctl)\n![Go](https://github.com/mbrt/gmailctl/workflows/Go/badge.svg)\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
}