Skills gws-shared
📦

gws-shared

Safe

Master Google Workspace CLI Commands

This skill provides comprehensive reference documentation for the gws CLI tool. It helps you authenticate, use global flags, and follow proper CLI syntax for Google Workspace operations.

Supports: Claude Codex Code(CC)
🥉 74 Bronze
1

Download the skill ZIP

2

Upload in Claude

Go to Settings → Capabilities → Skills → Upload skill

3

Toggle on and start using

Test it

Using "gws-shared". How do I authenticate with gws?

Expected outcome:

You can authenticate with gws using two methods: 1) Browser-based OAuth with 'gws auth login' for interactive sessions, or 2) Service account by setting the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to your key.json file.

Using "gws-shared". Show me the global flags available in gws

Expected outcome:

gws supports these global flags: --format (output as json/table/yaml/csv), --dry-run (validate without API calls), and --sanitize (screen responses through Model Armor for content safety).

Using "gws-shared". How do I handle shell special characters in gws commands?

Expected outcome:

For zsh, use double quotes when ranges contain '!' (e.g., --range "Sheet1!A1:D10"). For JSON parameters, wrap in single quotes to preserve inner double quotes (e.g., --params '{"pageSize": 5}').

Security Audit

Safe
v1 • 4/20/2026

All static analysis findings are false positives from markdown documentation code blocks. The skill contains only reference documentation for the gws CLI tool with no executable code or actual security risks.

1
Files scanned
83
Lines analyzed
0
findings
1
Total audits
No security issues found
Audited by: claude

Quality Score

38
Architecture
100
Maintainability
87
Content
50
Community
100
Security
91
Spec Compliance

What You Can Build

CLI Quick Reference

Look up gws CLI syntax, flags, and authentication methods while working with Google Workspace APIs from the command line.

Authentication Setup Guide

Learn how to authenticate with gws using browser-based OAuth or service account credentials for automated workflows.

Best Practices Reference

Access security rules and shell tips to ensure safe and proper usage of the gws CLI tool in production environments.

Try These Prompts

Basic Authentication Help
How do I authenticate with the gws CLI using a service account?
Command Syntax Lookup
Show me the gws CLI syntax for listing Google Drive files with JSON output format
Pagination and Output
How do I use gws to fetch all Gmail messages with automatic pagination and save as CSV?
Safe Operations with Dry-Run
What is the recommended way to test a destructive gws command before executing it?

Best Practices

  • Always use the --dry-run flag first to validate destructive operations before executing them
  • Prefer --format json for programmatic processing and --format table for human-readable output
  • Use --sanitize flag when handling PII or content that requires safety screening

Avoid

  • Do not output secrets or API keys directly in command output - use secure credential management
  • Avoid using single quotes for sheet ranges in zsh as the '!' character triggers history expansion
  • Never run write or delete commands without confirmation unless in automated scripts with proper safeguards

Frequently Asked Questions

Do I need to install the gws binary separately?
Yes, this skill requires the gws binary to be installed on your system and available in your PATH. Refer to the project README for installation options.
What is the difference between --params and --json flags?
Use --params for URL/query parameters and --json for request body data. Both accept JSON-formatted strings wrapped in single quotes to preserve inner double quotes.
How do I handle large result sets with gws?
Use the --page-all flag for automatic pagination with NDJSON output. Control pagination with --page-limit to set max pages and --page-delay to add delays between requests.
Can I test commands without making API calls?
Yes, use the --dry-run flag to validate your command structure and parameters locally without executing actual API calls. This is essential for testing destructive operations.
Why does my sheet range command fail in zsh?
Zsh interprets the '!' character in ranges like 'Sheet1!A1' as history expansion. Use double quotes instead of single quotes: --range "Sheet1!A1:D10".
How do I report bugs or request features?
Search existing issues first at github.com/googleworkspace/cli/issues. If no match exists, open a new issue with details rather than creating duplicates.

Developer Details

File structure

📄 SKILL.md