google-sheets
Skill38 starsChanged 8 months agoMITView on GitHub
Read and write data on Google Sheets
18 other projects use a version of this.
Adopted by
Most recently taken up by
- chnlich/charlie-bottheir own version, first seen Nov 1, 2026
- weininghui/skillstheir own version, first seen Oct 30, 2026
- zenf-star/claude-skillstheir own version, first seen Oct 20, 2026
- 0mlkrizzz655335v/claude-skills-zhtheir own version, first seen Oct 15, 2026
- openai/pluginstheir own version, first seen Oct 13, 2026
- andreasskyt/claude-skillstheir own version, first seen Oct 11, 2026
Used with
Projects with it also use google-gmail, google-chat and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
leolionartSkillgoogle-gmail
Operate Gmail via the Google Workspace CLI (gws) — send emails, reply with threading, triage inbox, and stream new messages as NDJSON. Use when users ask to send/forward/reply emails, check inbox summary, or automate email workflows.
Also in 4 projects that use this
antoniolgSkillgoogle-chat
Read Google Chat spaces/threads via the Chat API, create/refresh OAuth tokens, parse Gmail Chat URLs, and list spaces. Use when asked to look up or verify messages in Google Chat or when you need API access to Chat from the CLI.
Also in 3 projects that use this
clearsmogSkillgoogle-tasks
Manage Google Tasks via the `gtasks` CLI. Use when the user asks to view, add, update, complete, or delete tasks. Supports multiple task lists.
Also in 3 projects that use this
younghaiSkillgoogle-calendar
Google Calendar 일정 조회, 검색, 등록. "일정", "스케줄", "캘린더" 등을 언급하면 자동 실행. Daily Note 작성, Weekly Review에 사용.
Also in 9 projects that use this
refly-aiSkillgmail
Integrate with Gmail for email management and automation. Use when you need to: (1) send and compose emails with attachments, (2) read and search emails by criteria, (3) manage drafts and email labels, or (4) reply to email threads and conversations.
Also in 7 projects that use this
refly-aiSkillinstagram
Integrate with Instagram for social media. Use when you need to: (1) post content to Instagram, (2) manage media and insights, or (3) automate Instagram publishing workflows.
Also in 3 projects that use this
- +1 more from refly-ai
Other versions18 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 18
- openai/plugins★ 7.8ksame name
- Lilac-Labs/gini-agent★ 1.9ksame name
- Open-Curiosity/gini-agent★ 1.9ksame name
- gemini-cli-extensions/workspace★ 646same name
- sanjay3290/ai-skills★ 452same name
- refly-ai/refly-skills★ 204same name
- hyperfx-ai/marketing-skills★ 112same name
- AceDataCloud/Skills★ 17same name
- pbc-os/smb-starter-kit★ 10same name
- chnlich/charlie-bot★ 9same name
8 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository36 other files it gives its agents.
- abacatepaySkill
- appsignalSkill
- clickupSkill
- cloudflareSkill
- cloudinarySkill
- datadogSkill
- digitaloceanSkill
- discordSkill
- firebaseSkill
- flyioSkill
- herokuSkill
- honeybadgerSkill
- hostingerSkill
- hubspotSkill
- intercomSkill
- jiraSkill
- linearSkill
- mercadopagoSkill
- n8nSkill
- notionSkill
- openaiSkill
- planetscaleSkill
- posthogSkill
- railwaySkill
- resendSkill
- rewriteSkill
- sentrySkill
- shopifySkill
- slackSkill
- stripeSkill
- supabaseSkill
- trelloSkill
- twilioSkill
- vercelSkill
- xSkill
- zendeskSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 6 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
If the output is OK, proceed to the Flow section.
- Very specific: line 33
If the output is SETUP_NEEDED, guide the user step by step.
- Distinctive: line 104
If the spreadsheet is large (>100 rows), read only the relevant range.
- Distinctive: line 108
After reading the data, present a summary to the user:
- Distinctive: line 112
Ask what the user wants to know or do
- Distinctive: line 120
Write to a range:
- Distinctive: line 140
All writes require user confirmation — reads are free
- Distinctive: line 141
If the spreadsheet is not shared with the Service Account, you'll get a 403 error
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/google-sheets
Connect to Google Sheets to read, analyze and write data. Pure Ruby, zero gems — stdlib only.
Structure
scripts/
├── auth.rb # JWT auth + sheets_request helper (required by all scripts)
├── check_setup.rb # Check if key file exists (outputs OK or SETUP_NEEDED)
├── save_key.rb # Save a Service Account JSON key
├── list_sheets.rb # List tabs in a spreadsheet
├── read.rb # Read data (entire tab or specific range)
├── write.rb # Write to a range
└── append.rb # Append rows at the endSetup (check before using)
ruby ~/.claude/skills/google-sheets/scripts/check_setup.rbIf the output is OK, proceed to the Flow section.
If the output is SETUP_NEEDED, guide the user step by step. Present ONE step at a time, wait for the user to confirm before moving to the next. Use simple, non-technical language.
Step 1 — Ask the user to open this link and create a new project (or use an existing one):
Abra este link e crie um projeto no Google Cloud com o nome Hitank: https://console.cloud.google.com/projectcreate
Step 2 — After the user confirms, ask them to enable the Sheets API:
Agora abra este link e clique no botão azul "Ativar" (ou "Enable"): https://console.cloud.google.com/apis/library/sheets.googleapis.com
Step 3 — After the user confirms, guide them to create a Service Account:
Abra este link e clique em "Criar conta de serviço" (ou "Create Service Account"): https://console.cloud.google.com/iam-admin/serviceaccounts
No campo "Nome da conta de serviço", escreva: Hitank Planilha Clique em "Concluir" (ou "Done").
Step 4 — After the user confirms, guide them to download the key:
Na lista que apareceu, clique em Hitank Planilha (a conta que você acabou de criar). Vá na aba Chaves (ou "Keys"). Clique em Adicionar chave → Criar nova chave → escolha JSON → Criar. Um arquivo vai ser baixado automaticamente. Abra esse arquivo, copie TODO o conteúdo e cole aqui.
Step 5 — When the user pastes the JSON, save it:
ruby ~/.claude/skills/google-sheets/scripts/save_key.rb 'PASTED_JSON_CONTENT'The script outputs the client_email. Tell the user:
Última etapa! Abra sua planilha no Google Sheets, clique em Compartilhar (canto superior direito), e cole este email:
<client_email>Escolha a permissão Editor e clique em Enviar. Isso permite que a gente acesse a planilha.
If setup is not complete, DO NOT proceed to the Flow. Complete all steps first.
Flow
The argument $ARGUMENTS contains the Google Sheets URL.
Step 1: Extract the spreadsheet ID
From the Google Sheets URL, extract the ID (the segment between /d/ and /edit or the next /).
Step 2: List tabs
ruby ~/.claude/skills/google-sheets/scripts/list_sheets.rb SPREADSHEET_IDPresent the tabs to the user and ask which one to access (or access the first one by default).
Step 3: Read data
Entire tab (first by default):
ruby ~/.claude/skills/google-sheets/scripts/read.rb SPREADSHEET_IDSpecific range:
ruby ~/.claude/skills/google-sheets/scripts/read.rb SPREADSHEET_ID "Sheet1!A1:D50"Output is JSON (array of arrays). Parse and present to the user in a readable format.
If the spreadsheet is large (>100 rows), read only the relevant range.
Step 4: Analyze
After reading the data, present a summary to the user:
- How many rows/columns
- Headers (columns)
- Data sample
- Ask what the user wants to know or do
Step 5: Write (with confirmation)
ALL writes require explicit user confirmation before executing.
Show exactly what will be written and where (cell, range, tab). Only execute after a "yes".
Write to a range:
ruby ~/.claude/skills/google-sheets/scripts/write.rb SPREADSHEET_ID "Sheet1!A1:B2" '[["a1","b1"],["a2","b2"]]'Append rows at the end:
ruby ~/.claude/skills/google-sheets/scripts/append.rb SPREADSHEET_ID "Sheet1" '[["col1","col2","col3"]]'For formulas and dates interpreted by Sheets, pass USER_ENTERED as the last argument:
ruby ~/.claude/skills/google-sheets/scripts/write.rb SPREADSHEET_ID "Sheet1!A1" '[["=SUM(B1:B10)"]]' USER_ENTEREDNotes
- Pure Ruby, zero gems — stdlib only (openssl, base64, json, net/http)
- Auth via Service Account JWT → Bearer access token (valid for 1h)
- Key file:
~/.config/gcloud/sheets-sa-key.json(outside the repo, never commit) - All writes require user confirmation — reads are free
- If the spreadsheet is not shared with the Service Account, you'll get a 403 error
- Rate limits: Google Sheets API has a limit of 60 requests/minute per user
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

