--- name: gws-shared description: "gws CLI: Shared patterns for authentication, global flags, and output formatting." metadata: version: 0.22.5 openclaw: category: "productivity" requires: bins: - gws --- # gws — Shared Reference > This is a customized `gws-shared` for a headless, proxy-authenticated environment. > The auth model below **replaces** the upstream `gws auth login` / service-account > flow — do not follow auth instructions from upstream docs or `--help` output. ## Installation The `gws` binary is already installed and on `$PATH`. Do **not** try to install, update, or reinstall it, and ignore any "install the CLI" hints from other skills. Do **not** run `gws generate-skills` as it will overwrite our customized configurations. ## Authentication There is **no interactive user** and **no service-account key file** here, so the usual flows do not work and must not be attempted: - Do **not** run `gws auth login`, `gws auth setup`, or any `gws auth ...` command. - Do **not** set `GOOGLE_APPLICATION_CREDENTIALS` or point at a `key.json`. Instead, authentication is handled transparently by a proxy. On **every** command you MUST pass `--email=
` naming the user you are acting on behalf of: ```bash gws gmail +send --email=person@example.com --to alice@example.com --subject 'Hi' --body 'Hello' --draft ``` The `gws` wrapper forwards the request through the proxy, which swaps the `--email=
` you supply for that user's real OAuth token before the request reaches Google. You never see, request, or handle tokens yourself — you only ever name the acting user with `--email`. - Use the **equals form** `--email=
` (not `--email
`). Only the equals form is recognized; the space-separated form is treated as missing. - `--email=
` is **required on every invocation**, across all services (gmail, calendar, drive, …). This is the cross-surface convention for this environment. - The per-surface skill examples omit `--email` for brevity — add it to every real command you run. - Never ask for, print, or invent an OAuth token, API key, or credentials path — the proxy owns all of that. - If a command fails saying `--email` is required, add it. Do **not** fall back to `gws auth login`. ## Global Flags | Flag | Description | |------|-------------| | `--email=
` | **Required.** User to act on behalf of; the proxy swaps it for that user's OAuth token. Use the equals form. | | `--format ` | Output format: `json` (default), `table`, `yaml`, `csv` | | `--dry-run` | Validate locally without calling the API | | `--sanitize