skills/google-sheets/SKILL.md
Create spreadsheets, read data, and manage Google Sheets. Use when asked to create sheets, add data to spreadsheets, lookup rows, update cells, or manage sheet data.
npx skillsauth add orthogonal-sh/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.
Create spreadsheets, read data, add rows, and manage Google Sheets. Connect your Google account to work with spreadsheet data, perform lookups, and automate sheet operations.
orth CLICreate a new Google Sheets spreadsheet.
orth run google-sheets /create-spreadsheet --body '{
"title": "Project Tracker"
}'
Parameters:
title (required) - Title for the new spreadsheetRetrieve all sheet names and IDs from a spreadsheet.
orth run google-sheets /get-sheet-names --body '{
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
}'
Parameters:
spreadsheet_id (required) - Google Sheets spreadsheet IDAdd a new row to a specific sheet.
orth run google-sheets /add-row --body '{
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"sheet_id": 0,
"insert_index": 2
}'
Parameters:
spreadsheet_id (required) - Google Sheets spreadsheet IDsheet_id (required) - Sheet ID (numeric gid, not sheet name)insert_index - Row index to insert at (0-based)inherit_from_before - Inherit formatting from row above (true/false)Search for rows matching a query in the spreadsheet.
orth run google-sheets /lookup-row --body '{
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"query": "John Doe",
"range": "Sheet1!A1:Z1000"
}'
Parameters:
spreadsheet_id (required) - Google Sheets spreadsheet IDquery (required) - Text to search for in the sheetrange - Range to search in (A1 notation, e.g., "Sheet1!A1:Z100")case_sensitive - Case-sensitive search (true/false)Retrieve data from specific ranges in the spreadsheet.
orth run google-sheets /get-values --body '{
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"ranges": ["Sheet1!A1:C10", "Sheet2!A1:B5"]
}'
Parameters:
spreadsheet_id (required) - Google Sheets spreadsheet IDranges (required) - Array of ranges in A1 notation to retrieveUpdate data in specific cells or ranges.
orth run google-sheets /update-values --body '{
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"sheet_name": "Sheet1",
"values": [["Name", "Age", "Email"], ["John Doe", "30", "[email protected]"]],
"first_cell_location": "A1"
}'
Parameters:
spreadsheet_id (required) - Google Sheets spreadsheet IDsheet_name (required) - Name of the sheet to updatevalues (required) - 2D array of values to writefirst_cell_location - Starting cell location (A1 notation, defaults to A1)valueInputOption - How values are interpreted (USER_ENTERED, RAW)includeValuesInResponse - Return updated values in response (true/false)Create project tracking sheet:
orth run google-sheets /create-spreadsheet -b '{"title":"Q1 Project Dashboard"}'
Get all sheet names:
orth run google-sheets /get-sheet-names -b '{"spreadsheet_id":"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"}'
Add empty row:
orth run google-sheets /add-row -b '{"spreadsheet_id":"1ABC...","sheet_id":0,"insert_index":5}'
Search for customer:
orth run google-sheets /lookup-row -b '{"spreadsheet_id":"1ABC...","query":"[email protected]","range":"Customers!A:Z"}'
Get header row:
orth run google-sheets /get-values -b '{"spreadsheet_id":"1ABC...","ranges":["Sheet1!1:1"]}'
Get specific columns:
orth run google-sheets /get-values -b '{"spreadsheet_id":"1ABC...","ranges":["Sheet1!A:A","Sheet1!C:C"]}'
Add new data row:
orth run google-sheets /update-values -b '{"spreadsheet_id":"1ABC...","sheet_name":"Sheet1","values":[["New Customer","John Smith","[email protected]","2024-03-15"]],"first_cell_location":"A2"}'
Update multiple cells:
orth run google-sheets /update-values -b '{"spreadsheet_id":"1ABC...","sheet_name":"Data","values":[["Updated","Value"],["Another","Update"]],"first_cell_location":"B5","valueInputOption":"USER_ENTERED"}'
Add headers to new sheet:
orth run google-sheets /update-values -b '{"spreadsheet_id":"1ABC...","sheet_name":"Customers","values":[["Name","Email","Phone","Date Added"]],"first_cell_location":"A1"}'
Google Sheets uses A1 notation for cell references:
Basic ranges:
A1 - Single cellA1:B2 - 2x2 rangeA:A - Entire column A1:1 - Entire row 1A1:Z - Column A to Z in row 1Sheet references:
Sheet1!A1:B2 - Range in specific sheet'My Sheet'!A1 - Sheet with spaces (use quotes)Open ranges:
A1:C - From A1 to end of column CA1:1 - From A1 to end of row 1[["row1col1", "row1col2"], ["row2col1", "row2col2"]]testing
Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".
business
Send messages and manage Slack channels. Use when asked to send Slack messages, post to channels, list channels, or fetch message history.
development
Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.
development
Take screenshots of websites and web pages