Google Workspace CLI
/install gworkspace-cli
gworkspace-cli
Manage Google Drive, Docs, and Sheets from the terminal with gw.
Do This First
- Ensure
gwis installed:npm i -g @11x.agency/gworkspace - Ensure authenticated: run
gw auth --status. If not authenticated, rungw auth. - If targeting a Shared Drive, get the drive ID first:
gw drive shared
Authentication
gw auth # Opens browser for Google sign-in
gw auth --status # Check current auth (email, scopes, expiry)
gw logout # Remove stored credentials
Token stored at ~/.11x/gworkspace/token.json. OAuth credentials via env vars or .env file:
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRETGW_CLIENT_ID/GW_CLIENT_SECRET(aliases)
Commands
Drive
# List files
gw drive ls # Root of My Drive
gw drive ls /Projects # By path
gw drive ls --folder \x3Cid> # By folder ID
gw drive ls --type doc # Filter: doc, sheet, folder, all
gw drive ls --limit 50 # Pagination
# Create folder
gw drive mkdir "Folder Name"
gw drive mkdir "Subfolder" --folder \x3Cparent-id>
# Search
gw drive search "quarterly report"
gw drive search "budget" --type sheet
# Upload
gw drive upload ./file.pdf
gw drive upload ./data.csv --folder \x3Cid> --name "Q4 Data"
# List Shared Drives
gw drive shared
Shared Drives
Use the global --drive \x3Cid> flag before any subcommand:
gw --drive \x3Cshared-drive-id> drive ls
gw --drive \x3Cshared-drive-id> drive ls /Projects
gw --drive \x3Cshared-drive-id> drive mkdir "New Folder"
gw --drive \x3Cshared-drive-id> drive search "report"
gw --drive \x3Cshared-drive-id> drive upload ./file.pdf
To create docs/sheets in a Shared Drive, use --folder with a Shared Drive folder ID:
gw doc create "Title" --folder \x3Cshared-drive-folder-id>
gw sheet create "Title" --folder \x3Cshared-drive-folder-id>
Docs
gw doc read \x3Cid|url> # Plain text output
gw doc read \x3Cid|url> --markdown # Markdown output
gw doc create "Title" # Create empty doc, returns ID + URL
gw doc create "Title" --folder \x3Cid> # Create in specific folder
gw doc append \x3Cid|url> "text" # Append text to end of doc
gw doc append \x3Cid|url> --file ./notes.txt # Append from file
Sheets
gw sheet read \x3Cid|url> # Read entire first sheet (JSON rows)
gw sheet read \x3Cid|url> "Sheet1!A1:C10" # Read specific range
gw sheet write \x3Cid|url> "A1:B2" '[["Name","Score"],["Alice","95"]]'
gw sheet write \x3Cid|url> "A1" --file ./data.csv
gw sheet append \x3Cid|url> '[["Bob","88"]]'
gw sheet append \x3Cid|url> --file ./more.csv
gw sheet create "Title" # Create spreadsheet
gw sheet create "Title" --folder \x3Cid>
gw sheet list \x3Cid|url> # List tabs/sheets
Output Modes
All commands support three output modes:
| Flag | Output | Use case |
|---|---|---|
| (default) | JSON | Piping, scripting |
--pretty |
Human-readable table | Terminal viewing |
--quiet |
IDs only, one per line | Chaining commands |
I/O Contract
- stdout: Data output (JSON, table, or IDs)
- stderr: Errors, status messages, progress
- Exit 0: Success
- Exit 1: Any error (auth, not found, permission, network)
URLs and IDs
All commands accept either format — paste a full Google URL or just the ID:
gw doc read https://docs.google.com/document/d/1abc.../edit
gw doc read 1abc...
Error Messages
| Condition | Message |
|---|---|
| No token | Error: Not authenticated. Run 'gw auth' to get started. |
| Token expired | Error: Session expired. Run 'gw auth' to re-authenticate. |
| File not found | Error: File not found. |
| Permission denied | Error: No access to this file. Make sure it's shared with your account. |
| Network error | Error: Could not reach Google APIs. Check your connection. |
Common Agent Workflows
Browse a Shared Drive and read a doc
gw drive shared --quiet # Get drive IDs
gw --drive \x3Cid> drive ls --pretty # Browse root
gw --drive \x3Cid> drive ls --folder \x3Cfolder-id> # Drill into folder
gw doc read \x3Cdoc-id> # Read the doc
Create a doc with content in a specific folder
gw drive mkdir "Project X" # Create folder, get ID
gw doc create "Requirements" --folder \x3Cid> # Create doc, get ID
gw doc append \x3Cdoc-id> "# Requirements\
\
..." # Write content
Export sheet data for processing
gw sheet read \x3Cid> --quiet > data.tsv # Tab-separated to file
gw sheet read \x3Cid> "Sheet1!A1:D100" | jq '.' # JSON for processing
Upload and organize files
gw drive mkdir "Reports" --folder \x3Cparent-id>
gw drive upload ./q4-report.pdf --folder \x3Cnew-folder-id> --name "Q4 Report 2026"
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install gworkspace-cli - After installation, invoke the skill by name or use
/gworkspace-cli - Provide required inputs per the skill's parameter spec and get structured output
What is Google Workspace CLI?
Interact with Google Workspace (Drive, Docs, Sheets) via the `gw` CLI. Use when an agent needs to browse, read, create, search, or manage files in Google Dri... It is an AI Agent Skill for Claude Code / OpenClaw, with 474 downloads so far.
How do I install Google Workspace CLI?
Run "/install gworkspace-cli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Google Workspace CLI free?
Yes, Google Workspace CLI is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Google Workspace CLI support?
Google Workspace CLI is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Google Workspace CLI?
It is built and maintained by Robin Sadeghpour-Faraj (@robinsadeghpour); the current version is v1.0.1.