Releases: googleworkspace/cli
v0.22.5
Installation
Download the archive for your OS and architecture from the assets below.
Linux / macOS
Replace <target> with your platform (e.g., aarch64-apple-darwin or x86_64-unknown-linux-gnu).
# 1. Download the archive and its checksum
curl -sLO https://github.com/googleworkspace/cli/releases/download/v0.22.5/google-workspace-cli-<target>.tar.gz
curl -sLO https://github.com/googleworkspace/cli/releases/download/v0.22.5/google-workspace-cli-<target>.tar.gz.sha256
# 2. Verify the checksum
shasum -a 256 -c google-workspace-cli-<target>.tar.gz.sha256
# 3. Extract and install
tar -xzf google-workspace-cli-<target>.tar.gz
chmod +x gws
sudo mv gws /usr/local/bin/Windows
- Download
google-workspace-cli-x86_64-pc-windows-msvc.zipand its.sha256file - Verify the checksum (e.g., using PowerShell
Get-FileHash) - Extract the archive and move
gws.exeto a directory included in your systemPATH.
What's Changed
- ci: pin cross-rs to v0.2.5 in release workflow by @jpoehnelt in #651
- fix: verify SHA256 checksum in npm postinstall script by @jpoehnelt in #650
- ci: add cargo-audit workflow for dependency vulnerability scanning by @jpoehnelt in #649
- fix: auto-install binary on run if missing by @jpoehnelt in #654
- ci: add cargo-deny for license, advisory, and source auditing by @jpoehnelt in #653
- docs: update installation instructions to prioritize github releases by @jpoehnelt in #656
- refactor: drop serde_yaml by migrating to toml by @jpoehnelt in #657
- chore: release versions by @googleworkspace-bot in #655
Full Changelog: v0.22.4...v0.22.5
v0.22.4
What's Changed
- chore: remove cargo-dist, use native fetch for npm installer by @jpoehnelt in #646
- chore: release versions by @googleworkspace-bot in #647
Full Changelog: v0.22.3...v0.22.4
0.22.3
Release Notes
Patch Changes
-
674d53a: Fix
Lint SkillsCI job by installinguvviaastral-sh/setup-uvbefore runninguvx -
c7c42f6: fix: register script service and resolve test path validation errors
-
80bd150: feat(auth): use strict OS keychain integration on macOS and Windows
Closes #623. The CLI no longer writes a fallback
.encryption_keytext file on macOS and Windows when securely storing credentials. Instead, it strictly uses the native OS keychain (Keychain Access on macOS, Credential Manager on Windows). If an old.encryption_keyfile is found during a successful keychain login, it will be automatically deleted for security.
Linux deployments continue to use a seamless file-based fallback by default to ensure maximum compatibility with headless continuous integration (CI) runners, Docker containers, and SSH environments without desktop DBUS services. -
ec7f56b: Sync generated skills with latest Google Discovery API specs
Install google-workspace-cli 0.22.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.22.3/google-workspace-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.22.3/google-workspace-cli-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.22.3Download google-workspace-cli 0.22.3
| File | Platform | Checksum |
|---|---|---|
| google-workspace-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| google-workspace-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| google-workspace-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| google-workspace-cli-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| google-workspace-cli-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.22.1
Release Notes
Patch Changes
- 6a45832: Sync generated skills with latest Google Discovery API specs
Install google-workspace-cli 0.22.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.22.1/google-workspace-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.22.1/google-workspace-cli-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.22.1Download google-workspace-cli 0.22.1
| File | Platform | Checksum |
|---|---|---|
| google-workspace-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| google-workspace-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| google-workspace-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| google-workspace-cli-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| google-workspace-cli-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.22.0
Release Notes
Minor Changes
- 0850c48: Add
--draftflag to Gmail+send,+reply,+reply-all, and+forwardhelpers to save messages as drafts instead of sending them immediately
Install google-workspace-cli 0.22.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.22.0/google-workspace-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.22.0/google-workspace-cli-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.22.0Download google-workspace-cli 0.22.0
| File | Platform | Checksum |
|---|---|---|
| google-workspace-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| google-workspace-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| google-workspace-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| google-workspace-cli-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| google-workspace-cli-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.21.1
Release Notes
Patch Changes
-
ea0849a: Fix version-sync script and bump CLI crate version to 0.21.0
The
version-sync.shscript was updating the rootCargo.tomlwhich no longer has a[package]section after the workspace refactor. Updated to targetcrates/google-workspace-cli/Cargo.toml. Also syncs the CLI crate version to 0.21.0 to matchpackage.json.
Install google-workspace-cli 0.21.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.21.1/google-workspace-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.21.1/google-workspace-cli-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.21.1Download google-workspace-cli 0.21.1
| File | Platform | Checksum |
|---|---|---|
| google-workspace-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| google-workspace-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| google-workspace-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| google-workspace-cli-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| google-workspace-cli-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| google-workspace-cli-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.20.0
Release Notes
Minor Changes
-
e782dd7: Forward original attachments by default and preserve inline images in HTML mode.
+forwardnow includes the original message's attachments and inline images by default,
matching Gmail web behavior. Use--no-original-attachmentsto opt out.
+reply/+reply-allwith--htmlpreserve inline images in the quoted body via
multipart/related. In plain-text mode, inline images are not included (matching Gmail web).
Install gws 0.20.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.20.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.20.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.20.0Download gws 0.20.0
| File | Platform | Checksum |
|---|---|---|
| gws-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| gws-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| gws-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| gws-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| gws-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| gws-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| gws-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.19.0
Release Notes
Minor Changes
-
a078945: Refactor all
gws authsubcommands to use clap for argument parsingReplace manual argument parsing in
handle_auth_command,handle_login,resolve_scopes, andhandle_exportwith structuredclap::Commanddefinitions. IntroducesScopeModeenum for type-safe scope selection and adds proper--helpsupport for all auth subcommands.
Patch Changes
-
8a749c2: feat(helpers): add --dry-run support to events helper commands
Add dry-run mode to
gws events +renewandgws events +subscribecommands.
When --dry-run is specified, the commands will print what actions would be
taken without making any API calls. This allows agents to simulate requests
and learn without reaching the server. -
d679401: Fix
mask_secretpanic on multi-byte UTF-8 secrets by using char-based indexing instead of byte-offset slicing -
d341de2: Handle --help/-h in
gws auth setupbefore launching the setup wizard, preventing accidental project creation when users just want usage info -
f157208: fix: use block-style YAML sequences in generated SKILL.md frontmatter
Replace flow sequences (
bins: ["gws"],skills: [...]) with block-style
sequences (bins:\n - gws) in all generated SKILL.md frontmatter templates.Flow sequences are valid YAML but rejected by
strictyaml, which the
Agent Skills reference implementation (agentskills validate) uses to parse
frontmatter. This caused all 93 generated skills to fail validation.Fixes #521
-
b4d5e26: Fix auth error propagation: properly propagate errors when token directory creation or permission setting fails, instead of silently ignoring them
Install gws 0.19.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.19.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.19.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.19.0Download gws 0.19.0
| File | Platform | Checksum |
|---|---|---|
| gws-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| gws-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| gws-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| gws-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| gws-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| gws-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| gws-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.18.1
Release Notes
Patch Changes
-
a87037b: Handle SIGTERM in
gws gmail +watchandgws events +subscribefor clean container shutdown.Long-running pull loops now exit gracefully on SIGTERM (in addition to Ctrl+C),
enabling clean shutdown under Kubernetes, Docker, and systemd.
Install gws 0.18.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.18.1/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.18.1/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.18.1Download gws 0.18.1
| File | Platform | Checksum |
|---|---|---|
| gws-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| gws-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| gws-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| gws-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| gws-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| gws-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| gws-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>0.18.0
Release Notes
Minor Changes
-
908cf73: feat(gmail): auto-populate From header with display name from send-as settings
Fetch the user's send-as identities to set the From header with a display name in all mail helpers (+send, +reply, +reply-all, +forward), matching Gmail web client behavior. Also enriches bare
--fromemails with their configured display name. -
6e4daaf: Gmail helpers rollup: mail-builder migration, --attach flag (upload endpoint), +read helper
- Migrate
+send,+reply,+reply-all, and+forwardto themail-buildercrate for RFC-compliant MIME construction - Add
--fromflag to+sendfor send-as alias support - Add
-a/--attachflag to all mail helpers (+send,+reply,+reply-all,+forward) withmime_guess2auto-detection, 25MB size validation, and upload endpoint support (35MB API limit vs 5MB metadata-only) - Add
+readhelper to extract message body and headers (text, HTML, or JSON output) - Make
OriginalMessage.thread_idoptional (Option<String>) for draft compatibility - RFC 2822 display name quoting is handled natively by
mail-builder - Introduce
UploadSourceenum in executor for type-safe upload strategies
- Migrate
Patch Changes
-
1e90380: fix(gmail): remove dead
--attachmentarg from+sendThe
+sendsubcommand defined a duplicate"attachment"arg alongside the
"attach"arg already provided bycommon_mail_args. Sinceparse_attachments
reads"attach", the--attachmentflag was silently ignored. Removed the
dead duplicate. -
908cf73: fix(gmail): handle reply-all to own message correctly
Reply-all to a message you sent no longer errors with "No To recipient remains." The original To recipients are now used as reply targets, matching Gmail web client behavior.
-
2e909ae: Consolidate terminal sanitization, coloring, and output helpers into a new
output.rsmodule. Fixes raw ANSI escape codes inwatch.rsthat bypassedNO_COLORand TTY detection, upgradessanitize_for_terminalto also strip dangerous Unicode characters (bidi overrides, zero-width spaces, directional isolates), and sanitizes previously raw API error body and user query outputs.
Install gws 0.18.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.18.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.18.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.18.0Download gws 0.18.0
| File | Platform | Checksum |
|---|---|---|
| gws-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| gws-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| gws-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| gws-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| gws-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| gws-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| gws-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo googleworkspace/cliYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>