[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EMWAMNK734NFQRER1S8NKA":3,"skill-same:01M6EMWAMNK734NFQRER1S8NKA":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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6EMWAMNK734NFQRER1S8NKA","google-slides-automation",null,"Lightweight Google Slides integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.","luokai0\u002Fai-agent-skills-by-luo-kai","luokai0","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F266954973?v=4","01M6E16VNT42JB8B3X3254QWJ7","luo kai","01M6E16VTFVP6S5XJF1V1MPV90",14,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F07-antigravity-awesome\u002Fgoogle-slides-automation\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿","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],"google","automation","google slides","google slides automation","slides","critical","MCP","full","community","write","read","access","OAuth","server","integration","authentication","mcp server","2026-11-10 10:12:30",false,"---\nname: google-slides-automation\ndescription: \"Lightweight Google Slides integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\"\nlicense: Apache-2.0\nrisk: critical\nsource: community\nmetadata:\n  author: sanjay3290\n  version: \"1.0\"\n---\n\n# Google Slides\n\nLightweight Google Slides 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## When to Use\n- You need to create, inspect, or modify Google Slides presentations from local automation.\n- The task involves reading slide text, adding\u002Fremoving slides, or batch updating presentation content.\n- You want Slides automation for Workspace documents without using an MCP server.\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\u002Fslides.py`. Auto-authenticates on first use if not logged in.\n\n```bash\n# Get all text content from a presentation\npython scripts\u002Fslides.py get-text \"1abc123xyz789\"\npython scripts\u002Fslides.py get-text \"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1abc123xyz789\u002Fedit\"\n\n# Find presentations by search query\npython scripts\u002Fslides.py find \"quarterly report\"\npython scripts\u002Fslides.py find \"project proposal\" --limit 5\n\n# Get presentation metadata (title, slide count, slide object IDs)\npython scripts\u002Fslides.py get-metadata \"1abc123xyz789\"\n```\n\n## Write Commands\n\n```bash\n# Create a new empty presentation\npython scripts\u002Fslides.py create \"Q4 Sales Report\"\n\n# Add a blank slide to the end\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\"\n\n# Add a slide with a specific layout\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\" --layout TITLE_AND_BODY\n\n# Add a slide at a specific position (0-based index)\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\" --layout TITLE --at 0\n\n# Find and replace text across all slides\npython scripts\u002Fslides.py replace-text \"1abc123xyz789\" \"old text\" \"new text\"\npython scripts\u002Fslides.py replace-text \"1abc123xyz789\" \"Draft\" \"Final\" --match-case\n\n# Delete a slide by object ID (use get-metadata to find IDs)\npython scripts\u002Fslides.py delete-slide \"1abc123xyz789\" \"g123abc456\"\n\n# Batch update (advanced - for formatting, inserting shapes, images, etc.)\npython scripts\u002Fslides.py batch-update \"1abc123xyz789\" '[{\"replaceAllText\":{\"containsText\":{\"text\":\"foo\"},\"replaceText\":\"bar\"}}]'\n```\n\n## Slide Layouts\n\nAvailable layouts for `add-slide --layout`:\n- `BLANK` - Empty slide (default)\n- `TITLE` - Title slide\n- `TITLE_AND_BODY` - Title with body text\n- `TITLE_AND_TWO_COLUMNS` - Title with two text columns\n- `TITLE_ONLY` - Title bar only\n- `SECTION_HEADER` - Section divider\n- `ONE_COLUMN_TEXT` - Single column text\n- `MAIN_POINT` - Main point highlight\n- `BIG_NUMBER` - Large number display\n\n## Presentation ID Format\n\nYou can use either:\n- Direct presentation ID: `1abc123xyz789`\n- Full Google Slides URL: `https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1abc123xyz789\u002Fedit`\n\nThe scripts automatically extract the ID from URLs.\n\n## Output Format\n\n### get-text\nReturns extracted text from all slides, including:\n- Presentation title\n- Text from shapes\u002Ftext boxes on each slide\n- Table data with cell contents\n\n### find\nReturns list of matching presentations:\n```json\n{\n  \"presentations\": [\n    {\"id\": \"1abc...\", \"name\": \"Q4 Report\", \"modifiedTime\": \"2024-01-15T...\"}\n  ],\n  \"nextPageToken\": \"...\"\n}\n```\n\n### get-metadata\nReturns presentation details:\n```json\n{\n  \"presentationId\": \"1abc...\",\n  \"title\": \"My Presentation\",\n  \"slideCount\": 15,\n  \"pageSize\": {\"width\": {...}, \"height\": {...}},\n  \"hasMasters\": true,\n  \"hasLayouts\": true\n}\n```\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-slides-skill-oauth`\n\nAutomatically refreshes expired tokens using Google's cloud function.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","# Google Slides\n\nLightweight Google Slides 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## When to Use\n- You need to create, inspect, or modify Google Slides presentations from local automation.\n- The task involves reading slide text, adding\u002Fremoving slides, or batch updating presentation content.\n- You want Slides automation for Workspace documents without using an MCP server.\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\u002Fslides.py`. Auto-authenticates on first use if not logged in.\n\n```bash\n# Get all text content from a presentation\npython scripts\u002Fslides.py get-text \"1abc123xyz789\"\npython scripts\u002Fslides.py get-text \"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1abc123xyz789\u002Fedit\"\n\n# Find presentations by search query\npython scripts\u002Fslides.py find \"quarterly report\"\npython scripts\u002Fslides.py find \"project proposal\" --limit 5\n\n# Get presentation metadata (title, slide count, slide object IDs)\npython scripts\u002Fslides.py get-metadata \"1abc123xyz789\"\n```\n\n## Write Commands\n\n```bash\n# Create a new empty presentation\npython scripts\u002Fslides.py create \"Q4 Sales Report\"\n\n# Add a blank slide to the end\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\"\n\n# Add a slide with a specific layout\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\" --layout TITLE_AND_BODY\n\n# Add a slide at a specific position (0-based index)\npython scripts\u002Fslides.py add-slide \"1abc123xyz789\" --layout TITLE --at 0\n\n# Find and replace text across all slides\npython scripts\u002Fslides.py replace-text \"1abc123xyz789\" \"old text\" \"new text\"\npython scripts\u002Fslides.py replace-text \"1abc123xyz789\" \"Draft\" \"Final\" --match-case\n\n# Delete a slide by object ID (use get-metadata to find IDs)\npython scripts\u002Fslides.py delete-slide \"1abc123xyz789\" \"g123abc456\"\n\n# Batch update (advanced - for formatting, inserting shapes, images, etc.)\npython scripts\u002Fslides.py batch-update \"1abc123xyz789\" '[{\"replaceAllText\":{\"containsText\":{\"text\":\"foo\"},\"replaceText\":\"bar\"}}]'\n```\n\n## Slide Layouts\n\nAvailable layouts for `add-slide --layout`:\n- `BLANK` - Empty slide (default)\n- `TITLE` - Title slide\n- `TITLE_AND_BODY` - Title with body text\n- `TITLE_AND_TWO_COLUMNS` - Title with two text columns\n- `TITLE_ONLY` - Title bar only\n- `SECTION_HEADER` - Section divider\n- `ONE_COLUMN_TEXT` - Single column text\n- `MAIN_POINT` - Main point highlight\n- `BIG_NUMBER` - Large number display\n\n## Presentation ID Format\n\nYou can use either:\n- Direct presentation ID: `1abc123xyz789`\n- Full Google Slides URL: `https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1abc123xyz789\u002Fedit`\n\nThe scripts automatically extract the ID from URLs.\n\n## Output Format\n\n### get-text\nReturns extracted text from all slides, including:\n- Presentation title\n- Text from shapes\u002Ftext boxes on each slide\n- Table data with cell contents\n\n### find\nReturns list of matching presentations:\n```json\n{\n  \"presentations\": [\n    {\"id\": \"1abc...\", \"name\": \"Q4 Report\", \"modifiedTime\": \"2024-01-15T...\"}\n  ],\n  \"nextPageToken\": \"...\"\n}\n```\n\n### get-metadata\nReturns presentation details:\n```json\n{\n  \"presentationId\": \"1abc...\",\n  \"title\": \"My Presentation\",\n  \"slideCount\": 15,\n  \"pageSize\": {\"width\": {...}, \"height\": {...}},\n  \"hasMasters\": true,\n  \"hasLayouts\": true\n}\n```\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-slides-skill-oauth`\n\nAutomatically refreshes expired tokens using Google's cloud function.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n",{"name":5,"risk":32,"source":35,"license":15,"metadata":49,"description":7},{"author":50,"version":51},"sanjay3290","1.0","main","4d2fb89cdfb75f3f6fd3c6c5ec9ad90ea129eb3c","ai-agent-skills\u002F21-external-registries\u002F07-antigravity-awesome\u002Fgoogle-slides-automation",2,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai","https:\u002F\u002Fgithub.com\u002Fluokai0","a solo builder.","2026-05-06 04:29:04",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill google-slides-automation",{"tool":66,"command":67},"bunx","bunx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill google-slides-automation",{"tool":69,"command":70},"pnpm","pnpm dlx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill google-slides-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F07-antigravity-awesome\u002Fgoogle-slides-automation\u002FSKILL.md",true,[],[75,101,118,142,175,212],{"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":82,"publishedAt":44},"01M6F2SKTE208174C7S7JJCZC7","write-contracts","Generates secure Aptos Move V2 smart contracts with Object model, Digital Asset integration, security patterns, and storage type guidance. Includes comprehensive storage decision framework for optimal data structure selection. Triggers on: 'write contract', 'create NFT collection', 'build marketplace', 'implement minting', 'generate Move module', 'create token contract', 'build DAO', 'implement staking'. Ask storage questions when: 'store', 'track', 'registry', 'mapping', 'list', 'collection'.","MIT","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fwrite-contracts\u002FSKILL.md",[],[36,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,32,100],"contracts","write contracts","storage","secure","create","generate","collection","model","decision","ask","smart-contracts","selection","objects","structure","nft","token","aptos","move",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":44},"01M6F2RFXJ6T9MKW0A7N7GM45B","web-search","通用网络搜索技能，支持多引擎搜索（百度、必应、DuckDuckGo），无需API密钥即可获取实时信息","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fweb-search-ex-skill\u002FSKILL.md",[],[108,109,110,111,112,113,114,115,116,117],"web","search","web search","搜索","baidu","bing","duckduckgo","百度","多引擎","internet",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":44},"01M6F2K968G1FZEZFPW2E6B222","solo-build","Execute implementation plan tasks with TDD workflow, auto-commit, and phase gates. Use when user says \"build it\", \"start building\", \"execute plan\", \"implement tasks\", \"ship it\", or references a track ID. Do NOT use for planning (use \u002Fplan) or scaffolding (use \u002Fscaffold).","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fsolo-build\u002FSKILL.md",[124],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[126,127,128,33,129,130,131,132,109,133,134,37,36,135,136,137,138,139,140,141],"build","solo","solo build","workflow","commit","tasks","code","Bash","plan","auto","references","context7","query","scaffolding","ship it","project",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":154,"publishedAt":44},"01M6F2GKN39SGHSPWYB3662YC8","react-email","Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Freact-email-skills\u002FSKILL.md",[148,151],{"categoryNo":149,"categoryName":150,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174],"react","email","react email","github","editor","components","react components","component","welcome","https","notifications","password","node","use","html","resend","visual","emails","rendering","with",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":193,"publishedAt":44},"01M6F2FBVGVDFSG8SSFJGXA40C","APITester Agent-Driven API Testing","Test API endpoints and document responses. Define tests in plain English, run them, get formatted results. Agent-driven Postman alternative.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fopenclaw-api-tester\u002FSKILL.md",[181,184,187,188],{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":185,"categoryName":186,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":189,"categoryName":190,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],"testing","api","api testing","driven","APITester Agent Driven API Testing","test","run","postman","results","plain english","tester","endpoints","document","get","define","tests","english","api-tester",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":79,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":218,"publishedAt":44},"01M6F273Y3NGAPVJZ608BC0G9G","hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running \u002Fhubspot-audit.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fhubspot-implementation-plan\u002FSKILL.md",[],[134,219,220,221,28,222,223,88,224,225,226,227,228,168,229,230,174,231],"implementation","hubspot","hubspot implementation plan","feasibility","cleanup","planning","report","audit","audit report","phased implementation","dependencies","processes","hubspot audit"]