[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M713PCE024V375PJDRE0AN9D":3,"skill-same:01M713PCE024V375PJDRE0AN9D":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":14,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M713PCE024V375PJDRE0AN9D","google-sheets-automation",null,"Lightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fgoogle-sheets-automation\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"sheets","automation","google sheets automation","google","google sheets","full","write","integration","read","server","with","mcp server","unknown","OAuth","access","MCP","authentication","standalone","community","2026-11-10 10:12:30",false,"---\nname: google-sheets-automation\ndescription: \"Lightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\"\nrisk: unknown\nsource: community\nlicense: Apache-2.0\nmetadata:\n  author: sanjay3290\n  version: \"1.0\"\n---\n\n# Google Sheets\n\nLightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\n\n> **Requires Google Workspace account.** Personal Gmail accounts are not supported.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts\u002Fauth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts\u002Fauth.py status\n```\n\nLogout when needed:\n```bash\npython scripts\u002Fauth.py logout\n```\n\n## Read Commands\n\nAll operations via `scripts\u002Fsheets.py`. Auto-authenticates on first use if not logged in.\n\n```bash\n# Get spreadsheet content as plain text (default)\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID\n\n# Get spreadsheet content as CSV\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format csv\n\n# Get spreadsheet content as JSON\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format json\n\n# Get values from a specific range (A1 notation)\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"Sheet1!A1:D10\"\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"A1:C5\"\n\n# Find spreadsheets by search query\npython scripts\u002Fsheets.py find \"budget 2024\"\npython scripts\u002Fsheets.py find \"sales report\" --limit 5\n\n# Get spreadsheet metadata (sheets, dimensions, etc.)\npython scripts\u002Fsheets.py get-metadata SPREADSHEET_ID\n```\n\n## Write Commands\n\n```bash\n# Update a range of cells with values (JSON 2D array)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B2\" '[[\"Hello\",\"World\"],[\"Foo\",\"Bar\"]]'\n\n# Update with RAW input (no formula parsing, treats everything as literal text)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B1\" '[[\"=SUM(A1:A5)\",\"text\"]]' --raw\n\n# Append rows after the last data row\npython scripts\u002Fsheets.py append-rows SPREADSHEET_ID \"Sheet1!A:Z\" '[[\"New Row Col A\",\"New Row Col B\"]]'\n\n# Clear values from a range (keeps formatting)\npython scripts\u002Fsheets.py clear-range SPREADSHEET_ID \"Sheet1!A1:B10\"\n\n# Batch update (advanced - for formatting, merging, etc.)\npython scripts\u002Fsheets.py batch-update SPREADSHEET_ID '[{\"updateCells\":{\"range\":{\"sheetId\":0},\"fields\":\"userEnteredValue\"}}]'\n```\n\n## Spreadsheet ID\n\nYou can use either:\n- The spreadsheet ID: `1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms`\n- The full URL: `https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms\u002Fedit`\n\nThe script automatically extracts the ID from URLs.\n\n## Output Formats\n\n### Text (default)\nHuman-readable format with pipe separators:\n```\nSpreadsheet Title: Sales Data\nSheet Name: Q1\nName | Revenue | Units\nProduct A | 10000 | 50\nProduct B | 15000 | 75\n```\n\n### CSV\nStandard CSV format, suitable for further processing:\n```\nName,Revenue,Units\nProduct A,10000,50\nProduct B,15000,75\n```\n\n### JSON\nStructured data format:\n```json\n{\n  \"Q1\": [\n    [\"Name\", \"Revenue\", \"Units\"],\n    [\"Product A\", \"10000\", \"50\"]\n  ]\n}\n```\n\n## A1 Notation Examples\n\n- `Sheet1!A1:B10` - Range A1 to B10 on Sheet1\n- `Sheet1!A:A` - All of column A on Sheet1\n- `Sheet1!1:1` - All of row 1 on Sheet1\n- `A1:C5` - Range on the first sheet\n\n## Value Input Options\n\n- **USER_ENTERED** (default): Values are parsed as if typed by a user. Numbers, dates, and formulas are interpreted.\n- **RAW** (`--raw` flag): Values are stored exactly as provided. No parsing of formulas or number formatting.\n\n## Token Management\n\nTokens stored securely using the system keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Locker\n- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)\n\nService name: `google-sheets-skill-oauth`\n\nTokens automatically refresh when expired using Google's cloud function.\n\n\n## When to Use\nUse this skill when tackling tasks related to its primary domain or functionality as described above.\n","# Google Sheets\n\nLightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\n\n> **Requires Google Workspace account.** Personal Gmail accounts are not supported.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts\u002Fauth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts\u002Fauth.py status\n```\n\nLogout when needed:\n```bash\npython scripts\u002Fauth.py logout\n```\n\n## Read Commands\n\nAll operations via `scripts\u002Fsheets.py`. Auto-authenticates on first use if not logged in.\n\n```bash\n# Get spreadsheet content as plain text (default)\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID\n\n# Get spreadsheet content as CSV\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format csv\n\n# Get spreadsheet content as JSON\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format json\n\n# Get values from a specific range (A1 notation)\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"Sheet1!A1:D10\"\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"A1:C5\"\n\n# Find spreadsheets by search query\npython scripts\u002Fsheets.py find \"budget 2024\"\npython scripts\u002Fsheets.py find \"sales report\" --limit 5\n\n# Get spreadsheet metadata (sheets, dimensions, etc.)\npython scripts\u002Fsheets.py get-metadata SPREADSHEET_ID\n```\n\n## Write Commands\n\n```bash\n# Update a range of cells with values (JSON 2D array)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B2\" '[[\"Hello\",\"World\"],[\"Foo\",\"Bar\"]]'\n\n# Update with RAW input (no formula parsing, treats everything as literal text)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B1\" '[[\"=SUM(A1:A5)\",\"text\"]]' --raw\n\n# Append rows after the last data row\npython scripts\u002Fsheets.py append-rows SPREADSHEET_ID \"Sheet1!A:Z\" '[[\"New Row Col A\",\"New Row Col B\"]]'\n\n# Clear values from a range (keeps formatting)\npython scripts\u002Fsheets.py clear-range SPREADSHEET_ID \"Sheet1!A1:B10\"\n\n# Batch update (advanced - for formatting, merging, etc.)\npython scripts\u002Fsheets.py batch-update SPREADSHEET_ID '[{\"updateCells\":{\"range\":{\"sheetId\":0},\"fields\":\"userEnteredValue\"}}]'\n```\n\n## Spreadsheet ID\n\nYou can use either:\n- The spreadsheet ID: `1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms`\n- The full URL: `https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms\u002Fedit`\n\nThe script automatically extracts the ID from URLs.\n\n## Output Formats\n\n### Text (default)\nHuman-readable format with pipe separators:\n```\nSpreadsheet Title: Sales Data\nSheet Name: Q1\nName | Revenue | Units\nProduct A | 10000 | 50\nProduct B | 15000 | 75\n```\n\n### CSV\nStandard CSV format, suitable for further processing:\n```\nName,Revenue,Units\nProduct A,10000,50\nProduct B,15000,75\n```\n\n### JSON\nStructured data format:\n```json\n{\n  \"Q1\": [\n    [\"Name\", \"Revenue\", \"Units\"],\n    [\"Product A\", \"10000\", \"50\"]\n  ]\n}\n```\n\n## A1 Notation Examples\n\n- `Sheet1!A1:B10` - Range A1 to B10 on Sheet1\n- `Sheet1!A:A` - All of column A on Sheet1\n- `Sheet1!1:1` - All of row 1 on Sheet1\n- `A1:C5` - Range on the first sheet\n\n## Value Input Options\n\n- **USER_ENTERED** (default): Values are parsed as if typed by a user. Numbers, dates, and formulas are interpreted.\n- **RAW** (`--raw` flag): Values are stored exactly as provided. No parsing of formulas or number formatting.\n\n## Token Management\n\nTokens stored securely using the system keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Locker\n- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)\n\nService name: `google-sheets-skill-oauth`\n\nTokens automatically refresh when expired using Google's cloud function.\n\n\n## When to Use\nUse this skill when tackling tasks related to its primary domain or functionality as described above.\n",{"name":5,"risk":39,"source":45,"license":15,"metadata":51,"description":7},{"author":52,"version":53},"sanjay3290","1.0","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fgoogle-sheets-automation","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill google-sheets-automation",{"tool":66,"command":67},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill google-sheets-automation",{"tool":69,"command":70},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill google-sheets-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fgoogle-sheets-automation\u002FSKILL.md",true,[],[75,99,123,133,146,163],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":87,"publishedAt":46},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[88,89,90,91,92,93,94,95,96,97,98,37],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":46},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[106,107,108,109,110,111,90,112,113,114,115,116,117,118,119,30,120,35,121,122],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","install","across","api",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":46},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[130,131,106,117,118,119,30,110,90,35,132,121,122,116,114,113,112,120,111,109],"trend radar","radar","pulse",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":46},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[140,141,142,143,144,145],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":155,"publishedAt":46},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[152],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[148,96,156,157,158,37,117,159,160,161,108,162,120],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":46},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[165,170,171,172,120,173,160,174,175,176,177,178],"status","play","go","latest","github","discover","control","cmd","volume"]