← Back to Skills Marketplace
porteden

Google Sheets

by PortEden · GitHub ↗ · v1.0.8 · MIT-0
cross-platform ✓ Security Clean
54
Downloads
1
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install google-sheets-skill
Description
Google Sheets Secure Management. Use when the user wants to create, read, write, or append spreadsheet data; manage tabs (read/add/delete); copy spreadsheets...
README (SKILL.md)

porteden sheets

Use porteden sheets for Google Sheets data operations and file management. Use -jc flags for AI-optimized output.

If porteden is not installed: brew install porteden/tap/porteden (or go install github.com/porteden/cli/cmd/porteden@latest).

Setup (once)

  • Browser login (recommended): porteden auth login — opens browser, credentials stored in system keyring
  • Direct token: porteden auth login --token \x3Ckey> — stored in system keyring
  • Verify: porteden auth status
  • If PE_API_KEY is set in the environment, the CLI uses it automatically (no login needed).
  • Drive access requires a token with driveAccessEnabled: true and a connected Google account with Drive scopes.

Sheets commands (porteden sheets)

Data operations

  • Create new spreadsheet (blank): porteden sheets create --name "Q1 Budget"
  • Create in folder: porteden sheets create --name "Data" --folder google:0B7_FOLDER
  • Create seeded with CSV: porteden sheets create --name "Sales 2026" --csv-file ./sales.csv
  • Create seeded with inline CSV: porteden sheets create --name "Data" --csv "Name,Score\ Alice,95"
  • Spreadsheet metadata (tabs, dimensions): porteden sheets info google:SHEETID -jc
  • Read all tabs at once (best for AI agents — single upstream call): porteden sheets content google:SHEETID -jc
  • Read all tabs with row cap: porteden sheets content google:SHEETID --max-rows 500 -jc
  • Read specific ranges (no per-tab cap): porteden sheets content google:SHEETID --ranges "Summary!A1:C100,Raw Data!A:Z" -jc
  • Read cell range (single range): porteden sheets read google:SHEETID --range "Sheet1!A1:C10" -jc
  • Read whole sheet (single tab): porteden sheets read google:SHEETID --range "Sheet1" -jc
  • Write cells (JSON): porteden sheets write google:SHEETID --range "Sheet1!A1:B2" --values '[["Name","Score"],["Alice",95]]'
  • Write cells (CSV string): porteden sheets write google:SHEETID --range "Sheet1!A1:B2" --csv "Name,Score\ Alice,95"
  • Write cells (CSV file): porteden sheets write google:SHEETID --range "Sheet1!A1" --csv-file ./data.csv
  • Batch write multiple ranges (one atomic call): porteden sheets write google:SHEETID --updates '[{"range":"Summary!A1:B1","values":[["Metric","Value"]]},{"range":"Detail!A1","values":[["x"]]}]'
  • Append rows (JSON): porteden sheets append google:SHEETID --range "Sheet1!A:B" --values '[["Bob",87]]'
  • Append rows (CSV): porteden sheets append google:SHEETID --range "Sheet1!A:B" --csv "Bob,87"

Tab management

  • Read one tab in full (single call, no A1 range to compute): porteden sheets read-tab google:SHEETID --title "Q2 Forecast" -jc
  • Read tab by numeric id: porteden sheets read-tab google:SHEETID --sheet-id 0 -jc
  • Add a tab: porteden sheets add-tab google:SHEETID --title "Q2 Forecast"
  • Add a tab with dimensions/position: porteden sheets add-tab google:SHEETID --title "Q2 Forecast" --rows 200 --cols 12 --index 2
  • Delete a tab by title: porteden sheets delete-tab google:SHEETID --title "Q2 Forecast" -y
  • Delete a tab by id: porteden sheets delete-tab google:SHEETID --sheet-id 1843502915 -y

File management

  • Copy (duplicate) the spreadsheet: porteden sheets copy google:SHEETID --name "Q2 Forecast (copy)"

  • Copy into a folder: porteden sheets copy google:SHEETID --folder google:0B7_FOLDER

  • Get export links (xlsx, pdf, csv): porteden sheets download google:SHEETID -jc

  • Share: porteden sheets share google:SHEETID --type user --role writer --email [email protected]

  • Share publicly: porteden sheets share google:SHEETID --type anyone --role reader

  • List permissions: porteden sheets permissions google:SHEETID -jc

  • Rename: porteden sheets rename google:SHEETID --name "Q2 Budget"

  • Delete (trash): porteden sheets delete google:SHEETID -y

Range format

  • Full range: Sheet1!A1:C10
  • Whole sheet: Sheet1
  • Open-ended (for append): Sheet1!A:B

Notes

  • Credentials persist in the system keyring after login. No repeated auth needed.
  • Set PE_PROFILE=work to avoid repeating --profile.
  • -jc is shorthand for --json --compact: strips noise, limits fields, reduces tokens for AI agents.
  • File IDs are always provider-prefixed (e.g., google:1BxiMVs0XRA5...). Pass them as-is.
  • Prefer porteden sheets content over multiple porteden sheets read calls when you need more than one tab — it returns every tab in a single upstream call.
  • porteden sheets content is capped at 200 rows × 26 columns per tab by default. Tabs with more data come back marked clipped: true with a fullRange string you can feed straight into porteden sheets read --range \x3CfullRange> to drill in. Use --max-rows 5000 to raise the cap, or --ranges to pass explicit A1 ranges with no cap.
  • porteden sheets create accepts optional --csv/--csv-file to seed the first tab. Without them a blank spreadsheet is created. Both flags are mutually exclusive.
  • CSV-seeded spreadsheets get a tab named after the file, not Sheet1. When Drive imports CSV the resulting tab takes the file's name (e.g., --name "Q1 Numbers" → tab title Q1 Numbers). Range examples below default to Sheet1!... which only works on truly blank spreadsheets created via the Google Sheets UI. For CSV-seeded sheets, first call porteden sheets info \x3Cid> -jc to discover the actual tab names, then quote them in your range: 'Q1 Numbers'!A1:C10.
  • On sheets write / sheets append: --values, --csv, and --csv-file are mutually exclusive — provide exactly one.
  • Batch write (sheets write --updates): a JSON array of {"range","values"} objects, written in one atomic call (a bad range fails the whole batch — no partial writes). Up to 50 ranges / 50,000 cells. --updates is mutually exclusive with --range/--values/--csv/--csv-file; --raw still applies request-wide. Prefer it over multiple sheets write calls when populating several tabs/ranges at once.
  • sheets read-tab and sheets delete-tab take exactly one of --title or --sheet-id. --sheet-id 0 is valid (the first tab is often sheetId 0). read-tab returns the tab's entire used range — no A1 range needed. add-tab returns the new tab's sheetId; titles must be unique within the spreadsheet.
  • sheets copy duplicates the whole spreadsheet (not idempotent — calling twice makes two copies) and returns the new file's id. It's a wrapper over drive copy.
  • --csv inline: use \ as row separator (e.g., "Name,Score\ Alice,95\ Bob,87").
  • --raw flag disables formula evaluation (values written literally, not parsed as formulas).
  • porteden sheets download returns URLs only — no binary content is streamed.
  • accessInfo in responses describes active token restrictions.
  • delete moves to trash (reversible). Files can be restored from Google Drive trash.
  • Confirm before sharing or deleting.
  • Environment variables: PE_API_KEY, PE_PROFILE, PE_FORMAT, PE_COLOR, PE_VERBOSE.
Usage Guidance
Install this only if you are comfortable granting Porteden access to the Google account and Sheets/Drive data you intend to manage. Review the requested Google scopes, use a dedicated profile or token when possible, and confirm carefully before share, delete, rename, or bulk write operations.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The stated purpose is Google Sheets management, and the documented capabilities match that purpose: create, read, write, append, manage tabs, copy, share, rename, and trash spreadsheets.
Instruction Scope
Commands are explicit and task-directed, with guidance to confirm before sharing or deleting; no hidden role changes, prompt overrides, or unrelated agent instructions were found.
Install Mechanism
Installation requires the external `porteden` CLI via Homebrew or Go, including a `@latest` Go install path; this is disclosed but users should trust the Porteden CLI source before installing.
Credentials
The skill uses `PE_API_KEY` or browser login and may require Google Drive scopes, which is sensitive but proportionate for spreadsheet and file-management operations.
Persistence & Privilege
Credentials can persist in the system keyring after `porteden auth login`; this is clearly disclosed and aligned with avoiding repeated authentication.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install google-sheets-skill
  3. After installation, invoke the skill by name or use /google-sheets-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.8
- Improved documentation for Google Sheets secure management commands. - Added detailed usage examples for creating, reading, writing, and managing spreadsheets, tabs, and sharing. - Clarified environment variables and authentication methods. - Included explanation of key command-line flags and parameters. - Provided advanced usage notes, best practices, and troubleshooting tips for efficient Sheets operations.
Metadata
Slug google-sheets-skill
Version 1.0.8
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Google Sheets?

Google Sheets Secure Management. Use when the user wants to create, read, write, or append spreadsheet data; manage tabs (read/add/delete); copy spreadsheets... It is an AI Agent Skill for Claude Code / OpenClaw, with 54 downloads so far.

How do I install Google Sheets?

Run "/install google-sheets-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Google Sheets free?

Yes, Google Sheets is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Google Sheets support?

Google Sheets is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Google Sheets?

It is built and maintained by PortEden (@porteden); the current version is v1.0.8.

💬 Comments