Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Read, write, append, and manage Google Sheets via the Google Sheets API (Node.js SDK). Use when you need to interact with spreadsheets — reading data, writing/updating cells, appending rows, clearing ranges, formatting cells, managing sheets. Requires a Google Cloud service account with Sheets API enabled.
Read, write, append, and manage Google Sheets via the Google Sheets API (Node.js SDK). Use when you need to interact with spreadsheets — reading data, writing/updating cells, appending rows, clearing ranges, formatting cells, managing sheets. Requires a Google Cloud service account with Sheets API enabled.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Interact with Google Sheets using a service account.
Google Cloud Console: Create/select a project Enable "Google Sheets API" Create a Service Account (IAM → Service Accounts → Create) Download JSON key Configure credentials (one of these): Set env: GOOGLE_SERVICE_ACCOUNT_KEY=/path/to/key.json Place service-account.json or credentials.json in the skill directory Place in ~/.config/google-sheets/credentials.json Share sheets with the service account email (found in JSON key as client_email) Install dependencies: cd skills/google-sheets && npm install
node scripts/sheets.js <command> [args]
CommandArgsDescriptionread<id> <range>Read cellswrite<id> <range> <json>Write dataappend<id> <range> <json>Append rowsclear<id> <range>Clear range
CommandArgsDescriptionformat<id> <range> <formatJson>Format cellsgetFormat<id> <range>Get cell formatsborders<id> <range> [styleJson]Add borderscopyFormat<id> <source> <dest>Copy format between rangesmerge<id> <range>Merge cellsunmerge<id> <range>Unmerge cells
CommandArgsDescriptionresize<id> <sheet> <cols|rows> <start> <end> <px>Resize columns/rowsautoResize<id> <sheet> <startCol> <endCol>Auto-fit columnsfreeze<id> <sheet> [rows] [cols]Freeze rows/columns
CommandArgsDescriptioncreate<title>Create spreadsheetinfo<id>Get metadataaddSheet<id> <title>Add sheet tabdeleteSheet<id> <sheetName>Delete sheet tabrenameSheet<id> <oldName> <newName>Rename sheet tab
# Read data node scripts/sheets.js read "SPREADSHEET_ID" "Sheet1!A1:C10" # Write data node scripts/sheets.js write "SPREADSHEET_ID" "Sheet1!A1:B2" '[["Name","Score"],["Alice",95]]' # Format cells (yellow bg, bold) node scripts/sheets.js format "SPREADSHEET_ID" "Sheet1!A1:B2" '{"backgroundColor":{"red":255,"green":255,"blue":0},"textFormat":{"bold":true}}' # Copy format from one range to another node scripts/sheets.js copyFormat "SPREADSHEET_ID" "Sheet1!A1:C3" "Sheet1!D1:F3" # Add borders node scripts/sheets.js borders "SPREADSHEET_ID" "Sheet1!A1:C3" # Resize columns to 150px node scripts/sheets.js resize "SPREADSHEET_ID" "Sheet1" cols A C 150 # Auto-fit column widths node scripts/sheets.js autoResize "SPREADSHEET_ID" "Sheet1" A Z # Freeze first row and column node scripts/sheets.js freeze "SPREADSHEET_ID" "Sheet1" 1 1 # Add new sheet tab node scripts/sheets.js addSheet "SPREADSHEET_ID" "NewSheet"
{ "backgroundColor": {"red": 255, "green": 255, "blue": 0}, "textFormat": { "bold": true, "italic": false, "fontSize": 12, "foregroundColor": {"red": 0, "green": 0, "blue": 0} }, "horizontalAlignment": "CENTER", "verticalAlignment": "MIDDLE", "wrapStrategy": "WRAP" }
{ "style": "SOLID", "color": {"red": 0, "green": 0, "blue": 0} } Border styles: DOTTED, DASHED, SOLID, SOLID_MEDIUM, SOLID_THICK, DOUBLE
From URL: https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit
403 Forbidden: Sheet not shared with service account email 404 Not Found: Wrong spreadsheet ID or sheet name
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.