Releases: googleworkspace/cli
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>0.17.0
Release Notes
Minor Changes
- 1b0a21f: feat: support google meet video conferencing in calendar +insert
Patch Changes
-
811fe7b: Fix critical security vulnerability (TOCTOU/Symlink race) in atomic file writes.
The atomic_write and atomic_write_async utilities now use:
- Randomized temporary filenames to prevent predictability.
- O_EXCL creation flags to prevent following pre-existing symlinks.
- Strict 0600 permissions from the moment of file creation on Unix systems.
- Redundant post-write permission calls have been removed to close race windows.
-
b241a5b: fix(security): cap Retry-After sleep, sanitize upload mimeType, and validate --upload/--output paths
-
6f92e5b: Stderr/output hygiene rollup: route diagnostics to stderr, add colored error labels, propagate auth errors.
- triage.rs: "No messages found" sent to stderr so stdout stays valid JSON for pipes
- modelarmor.rs: response body printed only on success; error message now includes body for diagnostics
- error.rs: colored
error[variant]:labels on stderr (respectsNO_COLORenv var),hint:prefix for accessNotConfigured guidance - calendar, chat, docs, drive, script, sheets: auth failures now propagate as
GwsError::Authinstead of silently proceeding unauthenticated (dry-run still works without auth)
-
398e80c: Sync generated skills with latest Google Discovery API specs
-
8458104: Extend input validation to reject dangerous Unicode characters (zero-width chars, bidi overrides, Unicode line/paragraph separators) that were not caught by the previous ASCII-range check
Install gws 0.17.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.17.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.17.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.17.0Download gws 0.17.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.16.0
Release Notes
Minor Changes
- 47afe5f: Use Google account timezone instead of machine-local time for day-boundary calculations in calendar and workflow helpers. Adds
--timezoneflag to+agendafor explicit override. Timezone is fetched from Calendar Settings API and cached for 24 hours.
Patch Changes
-
c61b9cb: fix(gmail): RFC 2047 encode non-ASCII display names in To/From/Cc/Bcc headers
Fixes mojibake when sending emails to recipients with non-ASCII display names (e.g. Japanese, Spanish accented characters). The new
encode_address_header()function parses mailbox lists, encodes only the display-name portion via RFC 2047 Base64, and leaves email addresses untouched.
Install gws 0.16.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.16.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.16.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.16.0Download gws 0.16.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.15.0
Release Notes
Minor Changes
-
6f3e090: Add opt-in structured HTTP request logging via
tracingNew environment variables:
GOOGLE_WORKSPACE_CLI_LOG: stderr log filter (e.g.,gws=debug)GOOGLE_WORKSPACE_CLI_LOG_FILE: directory for JSON log files with daily rotation
Logging is completely silent by default (zero overhead). Only PII-free metadata is logged: API method ID, HTTP method, status code, latency, and content-type.
Install gws 0.15.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/googleworkspace/cli/releases/download/v0.15.0/gws-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/googleworkspace/cli/releases/download/v0.15.0/gws-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @googleworkspace/cli@0.15.0Download gws 0.15.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>