بنقرة واحدة
gws-shared
gws CLI: Shared patterns for authentication, global flags, and output formatting.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
gws CLI: Shared patterns for authentication, global flags, and output formatting.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Google Workspace Admin SDK: Audit logs and usage reports.
Google Calendar: Show upcoming events across all calendars.
Google Calendar: Create a new event.
Google Calendar: Manage calendars and events.
Google Chat: Send a message to a space.
Google Chat: Manage Chat spaces and messages.
| name | gws-shared |
| version | 1.0.0 |
| description | gws CLI: Shared patterns for authentication, global flags, and output formatting. |
| metadata | {"openclaw":{"category":"productivity","requires":{"bins":["gws"]}}} |
The gws binary must be on $PATH. See the project README for install options.
# Browser-based OAuth (interactive)
gws auth login
# Service Account
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
The gws CLI stores credentials in a single config directory (~/.config/gws/ by default). To support multiple Google accounts, use the GOOGLE_WORKSPACE_CLI_CONFIG_DIR env var to point at separate config directories — one per account.
# 1. Create a config dir for the additional account
mkdir -p ~/.config/gws-personal
# 2. Copy the OAuth client config (same GCP project, different user)
cp ~/.config/gws/client_secret.json ~/.config/gws-personal/client_secret.json
# 3. Auth the new account (opens browser — sign in with the desired Google account)
GOOGLE_WORKSPACE_CLI_CONFIG_DIR=~/.config/gws-personal gws auth login
# Work account (default — no env var needed)
gws gmail users messages list --params '{"userId": "me", "q": "subject:hello"}'
# Personal account (prefix with env var)
GOOGLE_WORKSPACE_CLI_CONFIG_DIR=~/.config/gws-personal gws gmail users messages list --params '{"userId": "me", "q": "subject:hello"}'
| Account | Config Dir | Usage |
|---|---|---|
your-work@example.com (work) | ~/.config/gws/ | Default — no prefix needed |
your-personal@example.com (personal) | ~/.config/gws-personal/ | Prefix: GOOGLE_WORKSPACE_CLI_CONFIG_DIR=~/.config/gws-personal |
| Flag | Description |
|---|---|
--format <FORMAT> | Output format: json (default), table, yaml, csv |
--dry-run | Validate locally without calling the API |
--sanitize <TEMPLATE> | Screen responses through Model Armor |
gws <service> <resource> [sub-resource] <method> [flags]
| Flag | Description |
|---|---|
--params '{"key": "val"}' | URL/query parameters |
--json '{"key": "val"}' | Request body |
-o, --output <PATH> | Save binary responses to file |
--upload <PATH> | Upload file content (multipart) |
--page-all | Auto-paginate (NDJSON output) |
--page-limit <N> | Max pages when using --page-all (default: 10) |
--page-delay <MS> | Delay between pages in ms (default: 100) |
--dry-run for destructive operations--sanitize for PII/content safety screening! expansion: Sheet ranges like Sheet1!A1 contain ! which zsh interprets as history expansion. Use double quotes with escaped inner quotes instead of single quotes:
# WRONG (zsh will mangle the !)
gws sheets +read --spreadsheet ID --range 'Sheet1!A1:D10'
# CORRECT
gws sheets +read --spreadsheet ID --range "Sheet1!A1:D10"
--params and --json values in single quotes so the shell does not interpret the inner double quotes:
gws drive files list --params '{"pageSize": 5}'
https://github.com/googleworkspace/clihttps://github.com/googleworkspace/cli/issues