Automic VaultAutomic Vault

brew

Install gmailctl with Homebrew, dnf, MacPorts, Nix

Declarative configuration for Gmail filters. Version 0.12.0 via Homebrew; verified 2026-05-19.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install gmailctl

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install gmailctl

MacPorts ports tree · mail/gmailctl/Portfile · source: api.github.com

Linux

Fedora dnfverified · 92%
sudo dnf install gmailctl

Fedora Rawhide package metadata · gmailctl · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#gmailctl

nixpkgs package indexes · pkgs/by-name/gm/gmailctl/package.nix · source: api.github.com

overview

Package summary

Declarative configuration for Gmail filters

Commands and aliases

  • gmailctl

history

Project history and usage

gmailctl is a Go command-line tool for maintaining Gmail filters as declarative Jsonnet configuration. It treats mail filtering rules as code: users edit a local configuration, review a diff, and apply the result through the Gmail API instead of importing XML filters by hand.

Project history

The public repository was created in 2018 by Marco Bertoni. The README frames the project around a practical frustration with long, hard-to-audit Gmail filter lists and contrasts gmailctl with tools that generate XML for manual import.

The project developed around a small CLI surface: init, edit, diff, apply, download, export, and debug. Versioned GitHub releases show a 0.x series continuing from 2021 through 2026, with prebuilt binaries and Go installation documented upstream.

Adoption history

gmailctl's adoption story is that of a focused personal-infrastructure tool rather than a large ecosystem platform. It reached package managers such as Homebrew, Fedora, MacPorts, Nix, and Snap, making a Gmail-account automation workflow installable through normal workstation provisioning.

The repository's star count and package availability indicate a recognizable niche among users who want email rules to live in version control and code review, especially people already comfortable with command-line tools and declarative configuration.

How it is used

Practitioners run gmailctl init to set up Gmail API access, then use gmailctl edit or a local Jsonnet file to maintain filters. The tool can show diffs against Gmail settings, apply the local configuration, export XML, and download existing filters as a migration starting point.

Its main operational value is repeatability: filter rules can be reviewed, backed up, refactored, and reapplied, while credentials and tokens stay in the gmailctl configuration directory.

Why package nerds care

For package users, gmailctl is a small example of SaaS configuration drifting into dotfile territory. It packages the hidden state of a Gmail account as a CLI-managed artifact, so a mail workflow can be installed and upgraded alongside other command-line tools.

Timeline

  • 2018: Public GitHub repository created.
  • 2021: Version 0.10.0 published in the GitHub releases stream.
  • 2026: Version 0.12.0 published.

Related projects

  • gmail-britta is cited by the README as an earlier Gmail-filter DSL approach based around XML import.
  • Jsonnet supplies the configuration language used for composable Gmail filter definitions.

security posture

No protected-tool coverage found yet

No matching local secret-handling manifest was found for gmailctl. Nucleus package metadata is still published here so future coverage has a stable package URL.

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.

Configuration files

Config paths the tool may read or write during local use.

Unix
$XDG_CONFIG_HOME/gmailctl/config.jsonnet~/.config/gmailctl/config.jsonnet~/.gmailctl/config.jsonnet

Credential files

Credential-bearing paths to review before unattended agent runs.

Unix
$XDG_CONFIG_HOME/gmailctl/credentials.json$XDG_CONFIG_HOME/gmailctl/token.json~/.config/gmailctl/credentials.json~/.config/gmailctl/token.json~/.gmailctl/credentials.json~/.gmailctl/token.json

executables

Installed executables

CommandKindExposureNote
gmailctlcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version0.12.0
manager updated2026-05-19
local dataok
upstreamcurrent
latest detectedv0.12.0

https://github.com/mbrt/gmailctl

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:gmailctl
Version0.12.0
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/gmailctl
Homepagehttps://github.com/mbrt/gmailctl
Repositoryhttps://github.com/mbrt/gmailctl
Upstream docshttps://github.com/mbrt/gmailctl#readme
LicenseMIT
Source archivehttps://github.com/mbrt/gmailctl/archive/refs/tags/v0.12.0.tar.gz
Last updated2026-05-19T12:54:23Z
Pulseupdated
Build dependenciesgo
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namegmailctl
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

gmailctl

nix profile install nixpkgs#gmailctl
  • normalized package name match
  • Matched by: Gmailctl
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/gm/gmailctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
dnf95%

gmailctl 0.12.0-1.fc45

Declarative configuration for Gmail filters

https://github.com/mbrt/gmailctl

sudo dnf install gmailctl
  • License: Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: gmailctl
  • 3 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Gmailctl
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: gmailctl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
MacPorts95%

gmailctl

sudo port install gmailctl
  • normalized package name match
  • Matched by: Gmailctl
MacPorts ports tree · api.github.com · MacPorts ports tree: mail/gmailctl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment