بنقرة واحدة
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 المهني
Summarize activity in a Slack channel over a timeframe (or the last ~100 messages). Use when the user says 'catch me up on #channel', 'what did I miss in X', or 'summarize this channel'.
Build a cross-channel daily digest of what matters across the user's Slack. Use for 'give me my Slack digest', 'what happened across my channels today', or a standing daily/standup recap.
Triage what needs the user's attention in Slack — unread mentions, DMs, and active threads they're in — ranked by urgency with a suggested action each. Use for 'what needs my attention on Slack', 'triage my Slack', or 'what should I respond to'.
Compose and send a Slack message to a channel, thread, or DM (or draft one for approval). Use when the user asks to post/send/DM something on Slack, or to reply in a specific thread.
Find Slack messages that need a response from the user and draft replies for them. Use for 'draft replies to my Slack', 'what am I behind on and write responses', or drafting a reply to a specific thread/DM.
Router + guardrails for Slack work — search, read, summarize, triage, draft replies, and send messages. Use whenever the user asks to do anything in Slack (read a channel, catch up, reply, post, react, find a message/person). Delegates to the specialized slack-* skills.
| 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"]}}} |
Mode: This CLI is power-user / local (nomos-mac) mode only, where Google is reached through the local
gwsCLI. In hosted mode there is no local CLI: the user connects Google entirely in the app at Settings → Integrations → Google (server-side OAuth). Never tell a hosted user to run a terminal command.
gws ships as the @googleworkspace/cli npm dependency and is invoked as
npx @googleworkspace/cli … (the bare gws command is not assumed to be on $PATH).
If it is missing, install it in the project with pnpm add @googleworkspace/cli and
verify with npx @googleworkspace/cli --version.
The product path is the Nomos Settings UI at Integrations → Google
(/integrations/google): it captures the OAuth Client ID / Secret / GCP project and
finalizes the account. The terminal path below is a fallback for when credentials are
already configured in ~/.config/gws/.
# First time only: bootstrap OAuth credentials (requires gcloud)
npx @googleworkspace/cli auth setup
# Browser-based OAuth (interactive)
npx @googleworkspace/cli auth login
Never tell the user to open "Claude Code" settings (this product is Nomos), and never
suggest npx gws auth login (the npm package is @googleworkspace/cli, not gws).
Advanced: a service account can be used instead by setting
GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json. This is not how the standard local deployment connects Google; preferauth login.
| 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 screeningzsh ! 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"
JSON with double quotes: Wrap --params and --json values in single quotes so the shell does not interpret the inner double quotes:
gws drive files list --params '{"pageSize": 5}'