[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-9343c689-8356-46ee-aede-23895633b45e":3,"$fONbjx0ipJ6wvUVNICEcaGnMNEVyHbMS1ztsOMX-nGJM":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"9343c689-8356-46ee-aede-23895633b45e","google-slides-automation","轻量级Google Slides集成，独立OAuth认证。无需MCP服务器。完全读写访问。","cat_design_graphic","mod_design","sickn33,design","---\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","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,84,1636,"2026-05-16 13:21:14",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"设计创意","design","mdi-palette-outline","UI 设计、生成艺术、品牌视觉等创意 Skill",3,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"视觉创意","graphic","mdi-brush","海报、Logo、插画等视觉创作",2,48,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"0d210b57-fd9e-4e38-a6eb-933e256ca7b4","1.0.0","google-slides-automation.zip",2044,"uploads\u002Fskills\u002F9343c689-8356-46ee-aede-23895633b45e\u002Fgoogle-slides-automation.zip","92c611731a6182710486f14a4be7bf4e0482cb953407a2ba5cabdf6d37653d8d","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":4470}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]