honest comparison

Compare

grr measured against the other Google Workspace CLIs. Every number below was actually run — no vendor benchmarks, no estimates. Where grr is behind, the table says so; where a claim could not be verified, it says that instead.

snapshot

method

How to read this

Measured metrics are credential-free by design: process startup (--version), the grr schema JSON contract dump, the grr api list method index and binary size on disk. Nothing here needs a Google account or a network round-trip, which is what makes a daily CI benchmark possible without flakes.

Protocol per metric: the first run is a discarded warm-up, then 15 timed runs using process.hrtime.bigint() around the process; median, p95 and min are reported. Every tool gets the identical protocol on the same machine. A run whose medians land within the noise band (max(15 ms, 6%)) of the committed snapshot rewrites nothing, so small differences are noise, not news. The benchmark re-runs whenever a new version of grr, gog or gws ships — the workflow watches each project's release tags and rebuilds on change — so the numbers follow the tools rather than a one-time snapshot.

Feature matrix cells are verified against each project's own documentation and, where possible, a running release binary — sources are listed under the table. "Not documented" means exactly that: the claim could not be verified from their docs, so it is neither confirmed nor denied.

measured on
win32 / x64
grr binary
release · grr 0.5.0
latest releases
grr v0.4.0 · gog v0.42.0 · gws v0.22.5
node
v26.7.0
warm-up
1 run discarded per metric
measured, not guessed

The numbers

Medians of 15 runs on the machine named above. A missing card value means the command is not present in the measured binary — the reason is printed, never padded.

startup · grr --version 23.6 ms p95 35.5 ms · min 21.9 ms
schema dump · grr schema 33.1 ms p95 34.9 ms · min 32.2 ms
api index · grr api list 30.3 ms p95 35.4 ms · min 28.6 ms
binary size 9.2 MB unpacked executable
startup time (--version) and unpacked binary size, identical protocol per tool
tool startup median startup p95 startup min binary size
grr grr 0.5.0 23.6 ms 35.5 ms 21.9 ms 9.2 MB
gog v0.42.0 (792107a3 2026-09-25T22:01:52Z) 65 ms 66.7 ms 63 ms 43.3 MB
gws gws 0.22.5 20.6 ms 22.4 ms 19.6 ms 16.0 MB

Snapshot generated from a locally built release binary . Competitor binaries are their official GitHub release builds, as shipped. The benchmark script

feature matrix

What each tool actually offers

Verified against each project's own documentation and release binaries. grr's gaps are marked as gaps — they are real.

feature grrgoggwsGoogle Workspace MCP servers
Coverage 308 methods across 10 APIs — generated from a Discovery index committed to the repo, works offline27 services, incl. Classroom, Meet, Analytics, Ads, YouTubeEvery Workspace API — command surface built from Google’s live Discovery Service at runtimen/a — fixed per-product toolsets
HTTP/3 (QUIC) Always on, HTTP/2 fallbackNot documentedNot documentedn/a
Zero-config OAuth Yes — release binaries ship the client compiled in (source builds run grr auth setup)No — create your own Desktop OAuth client in Google CloudNo — GCP project + OAuth client required (auth setup)No — own GCP project, OAuth consent screen and Web client per server
Runtime dependencies None — single static binaryNone — single binaryNone installed — but the command surface is built from live Discovery at runtimeNo CLI to install — any MCP client
MCP server Not yetYes — gog mcp, typed stdio, read-only by defaultNot documentedIs one — hosted remote servers (Developer Preview)
Agent skills Not yetYes — schema, reference pages and skills generated from the same command treeYes — 100+ SKILL.md files, one per API, plus 50 curated recipesn/a — agents connect directly via MCP
Multi-account Not yetYes — accounts, aliases, keyring-stored tokensNot documentedn/a
Language RustGoRustHosted service
License MITMITApache-2.0Developer Preview terms

Where the others win: gog covers 27 services — including Classroom, Meet and Analytics, which grr does not touch yet — and it already ships an MCP server (gog mcp) and multi-account routing today. gws rebuilds its entire command surface from Google's live Discovery Service — when Google adds a method, gws has it without a release — and ships 100+ agent skills. Google's remote MCP servers need no local install at all.

Where grr bets differently: the full 308-method surface is generated from a Discovery index that is committed to the repository — reviewable in a diff, working offline — rather than fetched at runtime; HTTP/3 as the only transport, OAuth compiled into release binaries so first run is zero-config, a small static binary with no runtime dependencies, and a machine-readable schema contract for agents. An MCP server and agent skills are on the roadmap, not on this page.

Sources: gog cells from its README (quick start, accounts, MCP guide) plus gog auth services and gog --help on the v0.42.0 release binary; gws cells from its README and gws --help / gws auth --help on the 0.22.5 release binary and its LICENSE file; Google server cells from Google's configure-mcp-servers guide (Developer Preview); grr cells from this repository. Unverifiable claims are labelled "Not documented" rather than guessed.