claude/skills/google-sheets/SKILL.md
--- name: google-sheets description: Read, write, format, and manage Google Sheets using the gog CLI. Use when the user asks to work with a Google Sheet or spreadsheet — reading/writing cell data, appending rows, formatting cells, managing tabs, creating sheets, finding and replacing text, exporting files, or any spreadsheet operation. Requires gog CLI with Sheets auth. Triggers on: "google sheets", "spreadsheet", "my sheet", "read cells", "update cells", "append rows", "clear range", "format ce
npx skillsauth add kendreaditya/.config claude/skills/google-sheetsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All operations via gog sheets. Requires gog with Sheets auth.
gog auth credentials /path/to/client_secret.json
gog auth add [email protected] --services sheets
export [email protected] # avoid repeating --account
Extract from URL: https://docs.google.com/spreadsheets/d/<SHEET_ID>/edit
Find a sheet by name:
gog drive search "budget 2024" --json # returns id, name, webViewLink
gog sheets get <id> "Sheet1!A1:D10" --json # structured JSON
gog sheets get <id> "Sheet1!A1:D10" --plain # TSV, stable for scripting
gog sheets get <id> "Sheet1!A1:D10" --render FORMULA # get raw formulas
gog sheets get <id> "Sheet1" # entire sheet
gog sheets update <id> "Sheet1!A1:B2" \
--values-json '[["Name","Score"],["Alice","95"]]' \
--input USER_ENTERED # parses formulas/numbers (default); use RAW to store literally
gog sheets append <id> "Sheet1!A:C" \
--values-json '[["2024-01-15","Alice","95"]]' \
--insert INSERT_ROWS # inserts new rows (vs OVERWRITE)
gog sheets clear <id> "Sheet1!A2:Z" # clears values, keeps formatting
gog sheets metadata <id> --json # list tabs, dimensions, sheet IDs
gog sheets add-tab <id> "Summary"
gog sheets rename-tab <id> "OldName" "NewName"
gog sheets delete-tab <id> "TabName" --force # --force skips confirmation
gog sheets create "My New Sheet" --json # returns spreadsheetId
gog sheets create "Sheet" --sheets "Tab1,Tab2" # with named tabs
gog sheets copy <id> "Copy of Sheet" --json # duplicate entire sheet
# Bold + background color on header row (colors are 0.0–1.0 floats, NOT 0–255)
gog sheets format <id> "Sheet1!A1:D1" \
--format-json '{"textFormat":{"bold":true},"backgroundColor":{"red":0.2,"green":0.6,"blue":0.9}}' \
--format-fields "userEnteredFormat.textFormat.bold,userEnteredFormat.backgroundColor"
# Number format (e.g. currency)
gog sheets number-format <id> "Sheet1!B2:B100" --pattern '"$"#,##0.00'
# Merge / unmerge cells
gog sheets merge <id> "Sheet1!A1:C1"
gog sheets unmerge <id> "Sheet1!A1:C1"
# Freeze rows/columns
gog sheets freeze <id> --rows 1 --columns 1
# Resize columns (auto-fit)
gog sheets resize-columns <id> "Sheet1!A:D" --auto
# Find and replace across entire sheet
gog sheets find-replace <id> "old text" "new text"
gog sheets find-replace <id> "foo" "bar" --match-case --sheet "Sheet1"
gog sheets find-replace <id> "\bv1\b" "v2" --regex
# Insert empty rows or columns
gog sheets insert <id> "Sheet1" ROWS 2 # insert rows at index 2
gog sheets insert <id> "Sheet1" COLUMNS 0 # insert column at index 0
# Export to file
gog sheets export <id> --format xlsx --out ./export.xlsx
gog sheets export <id> --format csv --out ./data.csv
gog sheets export <id> --format pdf --out ./report.pdf
# Cell notes
gog sheets notes <id> "Sheet1!A1:B5" # read notes
gog sheets update-note <id> "Sheet1!A1" --note "TODO" # set note
# Named ranges
gog sheets named-ranges list <id>
| Pattern | Meaning |
|---------|---------|
| Sheet1!A1:D10 | Specific range |
| Sheet1!A:C | Full columns A–C |
| Sheet1!1:5 | Rows 1–5 |
| Sheet1 | Entire sheet |
| MyNamedRange | Named range |
Tab names with spaces: 'My Tab'!A1:B10 — single quotes required (shell: escape or use $'My Tab\!A1:B10').
metadata first if you don't know the tab name — tab names are case-sensitive and locale-dependent (Sheet1 may be Hoja 1 in Spanish accounts)A1:Z10000 not A:Z) — unbounded reads can be slow or time out--values-json must be a 2D array even for a single row: [["val1","val2"]]--no-input flag prevents interactive prompts — use in scripts/CIdevelopment
Search and read content from leetcode.com — problem catalog, daily challenge, full problem statements with hints and starter code, the Discuss forum (interview experiences, comp posts, layoff threads), and company question-list metadata. Read-only, no auth, no API key. Use when the user wants to look up a LeetCode problem by name/number/slug, see today's daily challenge, search Discuss for interview write-ups at a specific company (Google, Waymo, Meta, Amazon, etc.), browse a tag-filtered discuss feed, read a Discuss post + comments, or check what a LeetCode company list covers. Triggers — "lcsearch", "leetcode search", "search leetcode", "leetcode discuss", "leetcode problem", "daily leetcode", "interview discuss", "what's the leetcode for X", URLs containing leetcode.com/problems/, leetcode.com/discuss/, or leetcode.com/company/. Pair with the `interviewcoder` skill (structured leetcode-style writeups from 1point3acres) and `blind` (anonymous workplace chatter) for the same companies.
development
Terminal Spotify playback/search via spogo (preferred) or spotify_player.
development
Search and read posts from interviewcoder.co — a Next.js-fronted aggregator of technical-interview writeups (largely sourced from 1point3acres) tagged by company, position, stage (Phone Screen / OA / Onsite / etc.), period, job type, and structured leetcode-style questions. Use when the user wants real interview questions for a specific company, recent writeups from a hiring loop, leetcode-style problems with tags and difficulty, or to look up a specific interviewcoder.co URL. Read-only, no auth, no API key. Triggers — "interviewcoder", "interviewcoder.co", "interview questions at [company]", "what's been asked at [company] recently", "interview writeup", and URLs containing interviewcoder.co.
tools
Small Yahoo Finance CLI for ticker info + N-year stock returns. Use when the user asks about: stock price, market cap, sector/industry classification, dividend yield, P/E ratio, beta, 52-week range, N-year stock return, company description for a public company. Triggers: 'yfinance', 'yfin', 'stock price', 'market cap of', 'how much has X stock returned', 'sector for ticker', 'industry classification'. Pairs with the levels-fyi skill for cross-checking public/private status (levels gives ticker, yfin returns live data).