{"id":"1c00d0e8-68c6-4be6-b9b9-15645f4ef1b8","shortId":"rxVAp5","kind":"skill","title":"gws-shared","tagline":"gws CLI: Shared patterns for authentication, global flags, and output formatting.","description":"# gws — Shared Reference\n\n## Installation\n\nThe `gws` binary must be on `$PATH`. See the project README for install options.\n\n## Authentication\n\n```bash\n# Browser-based OAuth (interactive)\ngws auth login\n\n# Service Account\nexport GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json\n```\n\n## Global Flags\n\n| Flag                    | Description                                             |\n| ----------------------- | ------------------------------------------------------- |\n| `--format <FORMAT>`     | Output format: `json` (default), `table`, `yaml`, `csv` |\n| `--dry-run`             | Validate locally without calling the API                |\n| `--sanitize <TEMPLATE>` | Screen responses through Model Armor                    |\n\n## CLI Syntax\n\n```bash\ngws <service> <resource> [sub-resource] <method> [flags]\n```\n\n### Method Flags\n\n| Flag                        | Description                                   |\n| --------------------------- | --------------------------------------------- |\n| `--params '{\"key\": \"val\"}'` | URL/query parameters                          |\n| `--json '{\"key\": \"val\"}'`   | Request body                                  |\n| `-o, --output <PATH>`       | Save binary responses to file                 |\n| `--upload <PATH>`           | Upload file content (multipart)               |\n| `--page-all`                | Auto-paginate (NDJSON output)                 |\n| `--page-limit <N>`          | Max pages when using --page-all (default: 10) |\n| `--page-delay <MS>`         | Delay between pages in ms (default: 100)      |\n\n## Security Rules\n\n- **Never** output secrets (API keys, tokens) directly\n- **Always** confirm with user before executing write/delete commands\n- Prefer `--dry-run` for destructive operations\n- Use `--sanitize` for PII/content safety screening\n\n## Shell Tips\n\n- **zsh `!` expansion:** Sheet ranges like `Sheet1!A1` contain `!` which zsh interprets as history expansion. Use double quotes with escaped inner quotes instead of single quotes:\n\n  ```bash\n  # WRONG (zsh will mangle the !)\n  gws sheets +read --spreadsheet ID --range 'Sheet1!A1:D10'\n\n  # CORRECT\n  gws sheets +read --spreadsheet ID --range \"Sheet1!A1:D10\"\n  ```\n\n- **JSON with double quotes:** Wrap `--params` and `--json` values in single quotes so the shell does not interpret the inner double quotes:\n  ```bash\n  gws drive files list --params '{\"pageSize\": 5}'\n  ```","tags":["gws","shared","nomos","project-nomos","agent-memory","agent-skills","agentic-ai","ai-agents","ai-assistant","autonomous-agents","claude","claude-ai"],"capabilities":["skill","source-project-nomos","skill-gws-shared","topic-agent-memory","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-ai-assistant","topic-autonomous-agents","topic-claude","topic-claude-ai","topic-claude-code","topic-claude-skills","topic-digital-clone","topic-llm"],"categories":["nomos"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/project-nomos/nomos/gws-shared","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add project-nomos/nomos","source_repo":"https://github.com/project-nomos/nomos","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 14 github stars · SKILL.md body (2,386 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T01:02:19.311Z","embedding":null,"createdAt":"2026-04-21T19:04:08.271Z","updatedAt":"2026-04-22T01:02:19.311Z","lastSeenAt":"2026-04-22T01:02:19.311Z","tsv":"'/path/to/key.json':49 '10':130 '100':140 '5':252 'a1':179,211,221 'account':44 'alway':150 'api':70,146 'applic':47 'armor':76 'auth':41 'authent':9,33 'auto':115 'auto-pagin':114 'base':37 'bash':34,79,198,245 'binari':21,102 'bodi':98 'browser':36 'browser-bas':35 'call':68 'cli':5,77 'command':157 'confirm':151 'contain':180 'content':109 'correct':213 'credenti':48 'csv':61 'd10':212,222 'default':58,129,139 'delay':133,134 'descript':53,88 'destruct':163 'direct':149 'doubl':188,225,243 'dri':63,160 'drive':247 'dry-run':62,159 'escap':191 'execut':155 'expans':174,186 'export':45 'file':105,108,248 'flag':11,51,52,84,86,87 'format':14,54,56 'global':10,50 'googl':46 'gws':2,4,15,20,40,80,204,214,246 'gws-share':1 'histori':185 'id':208,218 'inner':192,242 'instal':18,31 'instead':194 'interact':39 'interpret':183,240 'json':57,94,223,230 'key':90,95,147 'like':177 'limit':121 'list':249 'local':66 'login':42 'mangl':202 'max':122 'method':85 'model':75 'ms':138 'multipart':110 'must':22 'ndjson':117 'never':143 'o':99 'oauth':38 'oper':164 'option':32 'output':13,55,100,118,144 'page':112,120,123,127,132,136 'page-al':111,126 'page-delay':131 'page-limit':119 'pages':251 'pagin':116 'param':89,228,250 'paramet':93 'path':25 'pattern':7 'pii/content':168 'prefer':158 'project':28 'quot':189,193,197,226,234,244 'rang':176,209,219 'read':206,216 'readm':29 'refer':17 'request':97 'resourc':83 'respons':73,103 'rule':142 'run':64,161 'safeti':169 'sanit':71,166 'save':101 'screen':72,170 'secret':145 'secur':141 'see':26 'servic':43 'share':3,6,16 'sheet':175,205,215 'sheet1':178,210,220 'shell':171,237 'singl':196,233 'skill' 'skill-gws-shared' 'source-project-nomos' 'spreadsheet':207,217 'sub':82 'sub-resourc':81 'syntax':78 'tabl':59 'tip':172 'token':148 'topic-agent-memory' 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-ai-assistant' 'topic-autonomous-agents' 'topic-claude' 'topic-claude-ai' 'topic-claude-code' 'topic-claude-skills' 'topic-digital-clone' 'topic-llm' 'upload':106,107 'url/query':92 'use':125,165,187 'user':153 'val':91,96 'valid':65 'valu':231 'without':67 'wrap':227 'write/delete':156 'wrong':199 'yaml':60 'zsh':173,182,200","prices":[{"id":"853b85ce-9fb9-4f9f-8a53-632c5c30160b","listingId":"1c00d0e8-68c6-4be6-b9b9-15645f4ef1b8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"project-nomos","category":"nomos","install_from":"skills.sh"},"createdAt":"2026-04-21T19:04:08.271Z"}],"sources":[{"listingId":"1c00d0e8-68c6-4be6-b9b9-15645f4ef1b8","source":"github","sourceId":"project-nomos/nomos/gws-shared","sourceUrl":"https://github.com/project-nomos/nomos/tree/main/skills/gws-shared","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:08.271Z","lastSeenAt":"2026-04-22T01:02:19.311Z"}],"details":{"listingId":"1c00d0e8-68c6-4be6-b9b9-15645f4ef1b8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"project-nomos","slug":"gws-shared","github":{"repo":"project-nomos/nomos","stars":14,"topics":["agent-memory","agent-skills","agentic-ai","ai-agents","ai-assistant","autonomous-agents","claude","claude-ai","claude-code","claude-skills","digital-clone","llm","mcp","multi-agent","multi-agent-systems","ollama","self-hosted"],"license":"mit","html_url":"https://github.com/project-nomos/nomos","pushed_at":"2026-04-18T00:18:33Z","description":"Your AI digital clone — learns who you are, acts on your behalf, remembers everything. Persistent vector memory, multi-agent teams, 60+ skills, smart model routing. Self-hosted, encrypted, multi-provider (Claude/Ollama/OpenRouter). Deploy to Slack, Discord, Telegram, WhatsApp & more in minutes.","skill_md_sha":"6bb3e9248f91e00b67cabec548e91dcc14b0bc00","skill_md_path":"skills/gws-shared/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/project-nomos/nomos/tree/main/skills/gws-shared"},"layout":"multi","source":"github","category":"nomos","frontmatter":{"name":"gws-shared","description":"gws CLI: Shared patterns for authentication, global flags, and output formatting."},"skills_sh_url":"https://skills.sh/project-nomos/nomos/gws-shared"},"updatedAt":"2026-04-22T01:02:19.311Z"}}