@genspark/cli 1.4.2 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +23 -1
  2. package/dist/argsFile.d.ts +17 -0
  3. package/dist/argsFile.d.ts.map +1 -0
  4. package/dist/argsFile.js +38 -0
  5. package/dist/argsFile.js.map +1 -0
  6. package/dist/client.d.ts +10 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +19 -1
  9. package/dist/client.js.map +1 -1
  10. package/dist/config.d.ts +11 -8
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +100 -13
  13. package/dist/config.js.map +1 -1
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +290 -41
  17. package/dist/index.js.map +1 -1
  18. package/dist/localFiles.d.ts +62 -0
  19. package/dist/localFiles.d.ts.map +1 -0
  20. package/dist/localFiles.js +130 -0
  21. package/dist/localFiles.js.map +1 -0
  22. package/dist/logger.d.ts +8 -0
  23. package/dist/logger.d.ts.map +1 -1
  24. package/dist/logger.js +13 -0
  25. package/dist/logger.js.map +1 -1
  26. package/dist/mesh/checkupdate.js +3 -3
  27. package/dist/mesh/checkupdate.js.map +1 -1
  28. package/dist/runtime.d.ts +44 -0
  29. package/dist/runtime.d.ts.map +1 -0
  30. package/dist/runtime.js +62 -0
  31. package/dist/runtime.js.map +1 -0
  32. package/dist/types.d.ts +1 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/updater.d.ts +1 -0
  35. package/dist/updater.d.ts.map +1 -1
  36. package/dist/updater.js +10 -0
  37. package/dist/updater.js.map +1 -1
  38. package/docs/skills.md +24 -23
  39. package/package.json +1 -1
  40. package/skills/gsk-analyze-media/SKILL.md +2 -1
  41. package/skills/gsk-audio-generation/SKILL.md +1 -1
  42. package/skills/gsk-connector/SKILL.md +52 -0
  43. package/skills/gsk-create-task/SKILL.md +34 -1
  44. package/skills/gsk-github/SKILL.md +2 -0
  45. package/skills/gsk-gmail/SKILL.md +2 -0
  46. package/skills/gsk-google-calendar/SKILL.md +4 -1
  47. package/skills/gsk-google-chat/SKILL.md +4 -1
  48. package/skills/gsk-google-contacts/SKILL.md +2 -0
  49. package/skills/gsk-google-docs/SKILL.md +2 -0
  50. package/skills/gsk-google-drive/SKILL.md +3 -0
  51. package/skills/gsk-google-sheets/SKILL.md +4 -2
  52. package/skills/gsk-google-slides/SKILL.md +47 -0
  53. package/skills/gsk-hub/SKILL.md +15 -5
  54. package/skills/gsk-image-generation/SKILL.md +2 -2
  55. package/skills/gsk-microsoft-teams/SKILL.md +16 -11
  56. package/skills/gsk-notion/SKILL.md +2 -0
  57. package/skills/gsk-onedrive/SKILL.md +3 -0
  58. package/skills/gsk-outlook-calendar/SKILL.md +3 -1
  59. package/skills/gsk-outlook-contacts/SKILL.md +2 -0
  60. package/skills/gsk-outlook-email/SKILL.md +3 -10
  61. package/skills/gsk-salesforce/SKILL.md +2 -0
  62. package/skills/gsk-shared/SKILL.md +12 -1
  63. package/skills/gsk-sharepoint/SKILL.md +3 -0
  64. package/skills/gsk-sharepoint-upload/SKILL.md +2 -0
  65. package/skills/gsk-slack/SKILL.md +12 -7
  66. package/skills/gsk-task-continue/SKILL.md +4 -3
  67. package/skills/gsk-video-generation/SKILL.md +8 -7
  68. package/skills/gsk-youtube/SKILL.md +5 -4
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: gsk-google-slides
3
+ version: 1.0.0
4
+ description: 'Google Slides presentation operations. Actions: search, read, create,
5
+ batch_update, export.'
6
+ metadata:
7
+ category: general
8
+ requires:
9
+ bins:
10
+ - gsk
11
+ cliHelp: gsk slides --help
12
+ ---
13
+
14
+ # gsk-google-slides
15
+
16
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
+
18
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
19
+
20
+ Google Slides presentation operations. Actions: search, read, create, batch_update, export.
21
+
22
+ ## Usage
23
+
24
+ ```bash
25
+ gsk slides [options]
26
+ ```
27
+
28
+ **Aliases:** `slides`
29
+
30
+ ## Flags
31
+
32
+ | Flag | Required | Description |
33
+ |------|----------|-------------|
34
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search presentations by name; 'read': Read a presentation's slides and text elements; 'create': Create a new empty presentation; 'batch_update': Apply Slides API batchUpdate requests (add/edit slides, shapes, text, styles); 'export': Export a presentation to PPTX or PDF (string, one of: search, read, create, batch_update, export) |
35
+ | `--query` | No | [search] Search query to find presentations by name. (string) |
36
+ | `--limit` | No | [search] Maximum number of results to return (1-50). Default: 10 (integer) |
37
+ | `--presentation_id` | No | [read] The ID of the presentation to read. \| [batch_update] The ID of the presentation. \| [export] The ID of the Google Slides presentation to export. (string) |
38
+ | `--slide_ids` | No | [read] Optional: restrict the read to specific slide objectIds. (array) |
39
+ | `--include_raw` | No | [read] If true, also include the raw page elements (verbose). Default: false. (boolean) |
40
+ | `--title` | No | [create] Title of the new presentation. (string) |
41
+ | `--requests` | No | [batch_update] Array of batchUpdate request objects. Each object has one request type key. Common types: createSlide, deleteObject, duplicateObject, createShape, createImage, createTable, insertText, deleteText, updateTextStyle, updateParagraphStyle, updatePageElementTransform, updateShapeProperties, replaceAllText. Load the appropriate guide first. (array) |
42
+ | `--format` | No | [export] Export format. Default: 'pptx'. (string, one of: pptx, pdf) |
43
+ | `--filename` | No | [export] Optional custom filename (without extension). If not provided, the original presentation name is used. (string) |
44
+
45
+ ## See Also
46
+
47
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -2,8 +2,9 @@
2
2
  name: gsk-hub
3
3
  version: 1.0.0
4
4
  description: 'Genspark Hub (the user''s project spaces at genspark.ai/hub) — NOT HubSpot.
5
- Actions: list_hubs, read_hub. When the user says ''my Hub'', use this; for HubSpot
6
- CRM use `hubspot`.'
5
+ Read-only actions: list_hubs, read_hub, read_file, read_long_line, grep_files, get_file_url,
6
+ search_sessions, grep_session, read_session, read_long_line_session. When the user
7
+ says ''my Hub'', use this; for HubSpot CRM use `hubspot`.'
7
8
  metadata:
8
9
  category: general
9
10
  requires:
@@ -16,7 +17,7 @@ metadata:
16
17
 
17
18
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
18
19
 
19
- Genspark Hub (the user's project spaces at genspark.ai/hub) — NOT HubSpot. Actions: list_hubs, read_hub. When the user says 'my Hub', use this; for HubSpot CRM use `hubspot`.
20
+ Genspark Hub (the user's project spaces at genspark.ai/hub) — NOT HubSpot. Read-only actions: list_hubs, read_hub, read_file, read_long_line, grep_files, get_file_url, search_sessions, grep_session, read_session, read_long_line_session. When the user says 'my Hub', use this; for HubSpot CRM use `hubspot`.
20
21
 
21
22
  ## Usage
22
23
 
@@ -28,9 +29,18 @@ gsk hub [options]
28
29
 
29
30
  | Flag | Required | Description |
30
31
  |------|----------|-------------|
31
- | `<action>` (positional) | Yes | Action to perform. 'list_hubs': List the user's Genspark Hubs; 'read_hub': Read one hub's metadata, members, files, and projects (string, one of: list_hubs, read_hub) |
32
+ | `<action>` (positional) | Yes | Action to perform. 'list_hubs': List the user's Genspark Hubs; 'read_hub': Read one hub's metadata, members, files, and projects; 'read_file': Read a hub file's extracted text (line numbers, limit/offset pagination); 'read_long_line': Read the full content of a truncated file line; 'grep_files': Regex-search hub file text (optional include file filter); 'get_file_url': Get a shareable URL for the original hub file (raw bytes, for download / binary analysis); 'search_sessions': Find previous sessions in a hub by keyword (empty query = recent sessions); 'grep_session': Regex-search one hub session's conversation history; 'read_session': Read one hub session's conversation history (line numbers, limit/offset pagination); 'read_long_line_session': Read the full content of a truncated session line (string, one of: list_hubs, read_hub, read_file, read_long_line, grep_files, get_file_url, search_sessions, grep_session, read_session, read_long_line_session) |
32
33
  | `--include_archived` | No | [list_hubs] Also include archived hubs. Default: false. (boolean) |
33
- | `--hub_id` | No | [read_hub] Hub ID (from hub_list_hubs). (string) |
34
+ | `--hub_id` | No | [read_hub] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [read_file] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [read_long_line] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [grep_files] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [get_file_url] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [search_sessions] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [grep_session] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [read_session] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. \| [read_long_line_session] Hub ID (from hub_list_hubs). Optional when the calling project belongs to a hub — defaults to that hub. (string) |
35
+ | `--file_name` | No | [read_file] Exact file name from hub_read_hub's files list. \| [read_long_line] Exact file name from hub_read_hub's files list. \| [get_file_url] Exact file name from hub_read_hub's files list. (string) |
36
+ | `--limit` | No | [read_file] Number of lines to read (default 100, max 2000). \| [read_session] Number of lines to read (default 100, max 1000). (integer) |
37
+ | `--offset` | No | [read_file] Starting line number (1-indexed), for pagination. \| [read_session] Starting line number (1-indexed), for pagination. (integer) |
38
+ | `--line_number` | No | [read_long_line] The line number (1-indexed) of the truncated line. \| [read_long_line_session] The line number (1-indexed) of the truncated line. (integer) |
39
+ | `--char_offset` | No | [read_long_line] Starting character position (0-indexed, default 0), for paginating through very long lines. \| [read_long_line_session] Starting character position (0-indexed, default 0), for paginating through very long lines. (integer) |
40
+ | `--pattern` | No | [grep_files] Regular expression to search for in file content. \| [grep_session] Regular expression to search for in the session. (string) |
41
+ | `--include` | No | [grep_files] Optional file name filter (e.g. '*.pdf', '*.docx'). (string) |
42
+ | `--query` | No | [search_sessions] Keywords, e.g. 'API error', 'brand guidelines'. Empty returns recent sessions. (string) |
43
+ | `--id` | No | [grep_session] Session ID (from hub_search_sessions). \| [read_session] Session ID (from hub_search_sessions). \| [read_long_line_session] Session ID (from hub_search_sessions). (string) |
34
44
 
35
45
  ## See Also
36
46
 
@@ -28,13 +28,13 @@ gsk img [options]
28
28
 
29
29
  | Flag | Required | Description |
30
30
  |------|----------|-------------|
31
- | `-m`, `--model` | No | Default model: use nano-banana-2-flash-lite gpt-image-2: GPT Image 2 - Latest OpenAI image model. Superior text rendering, editing, and face preservation. Supports text-to-image and image editing with multi-image input. nano-banana-pro: [GEMINI NANO BANANA PRO] State of the Art (SOTA) for both generation and image editing. Multi-image fusion: Combine different images into one seamless new visual. Character & style consistency: Maintain the same subject or visual style across multiple generations. Conversational editing: Edit images with simple, natural language instructions. Perfect for creative use cases, marketing, training, advertising. Supports up to 14 images as reference input. Supports high resolution output up to 2K/4K. nano-banana-2: [GEMINI NANO BANANA 2] Gemini 3.1 Flash Image. Fast and efficient with advanced reasoning. Multi-image fusion with up to 14 reference images. Supports 0.5K/1K/2K/4K resolution. Google Search grounding for real-time data. Best for high-volume, speed-optimized workflows. fal-ai/bytedance/seedream/v5/lite: Bytedance Seedream v5 Lite model for text-to-image, image-to-image (single and multiple image editing) generation with native 2K resolution and excellent text layout.fal-ai/flux-2-pro: Flux 2 Pro model - higher quality version of Flux 2 with professional-grade output. Enhanced realism, superior text generation, and advanced editing capabilities. Ideal for high-quality realistic images and complex editing tasks.fal-ai/z-image/turbo: Z-Image Turbo model optimized for speed without sacrificing quality. Supports both text-to-image and image-to-image modes. Perfect for quick iterations, bulk generation, style transfer, and cost-effective projects.bbox-segment: A model for extracting subjects from images based on bbox region.fal-bria-rmbg: A model specialized for remove background from image. Should prioritize this tool if the user wants to remove background from image. fal-ai/recraft-clarity-upscale: A model specialized for upscale image. fal-ai/image-editing/text-removal: A specialized model for removing text and watermarks from images. Automatically detects and removes text while preserving the background and other visual elements. Use when users want to clean images, remove watermarks, or eliminate text overlays. flux-pro/outpaint: A model specialized for expand image to a specific aspect ratio. nano-banana-2-flash-lite: [GEMINI NANO BANANA 2 FLASH LITE] Fast, lightweight Gemini image model for text-to-image and image editing with multi-image input. Native 1K output. Best for speed-sensitive, high-volume workflows. (string, one of: gpt-image-2, nano-banana-pro, nano-banana-2, fal-ai/bytedance/seedream/v5/lite, fal-ai/flux-2-pro, fal-ai/z-image/turbo, bbox-segment, fal-bria-rmbg, fal-ai/recraft-clarity-upscale, fal-ai/image-editing/text-removal, flux-pro/outpaint, nano-banana-2-flash-lite) |
31
+ | `-m`, `--model` | No | If this parameter is omitted, nano-banana-2-flash-lite is used. Pick ONLY a model described below; never pick an undescribed model name unless the user explicitly asks for it by name. gpt-image-2: GPT Image 2 - Latest OpenAI image model. Superior text rendering, editing, and face preservation. Supports text-to-image and image editing with multi-image input. nano-banana-pro: [GEMINI NANO BANANA PRO] State of the Art (SOTA) for both generation and image editing. Multi-image fusion: Combine different images into one seamless new visual. Character & style consistency: Maintain the same subject or visual style across multiple generations. Conversational editing: Edit images with simple, natural language instructions. Perfect for creative use cases, marketing, training, advertising. Supports up to 14 images as reference input. Supports high resolution output up to 2K/4K. nano-banana-2: [GEMINI NANO BANANA 2] Gemini 3.1 Flash Image. Fast and efficient with advanced reasoning. Multi-image fusion with up to 14 reference images. Supports 0.5K/1K/2K/4K resolution. Google Search grounding for real-time data. Best for high-volume, speed-optimized workflows. fal-ai/bytedance/seedream/v5/lite: Bytedance Seedream v5 Lite model for text-to-image, image-to-image (single and multiple image editing) generation with native 2K resolution and excellent text layout.fal-ai/bytedance/seedream/v5/pro: Bytedance Seedream 5.0 Pro - flagship photorealistic model for text-to-image and multi-image editing (up to 10 reference images). High-density text/infographic layout, region-precise edits, native text in 14 languages, up to 2K output. qwen-image-3: Qwen Image 3 - Alibaba's latest image model for text-to-image and reference-image editing (1-3 reference images). Superior Chinese & English text rendering, precise prompt adherence, identity-preserving edits. Best for posters, bilingual typography, and instruction-based edits. fal-ai/flux-2-pro: Flux 2 Pro model - higher quality version of Flux 2 with professional-grade output. Enhanced realism, superior text generation, and advanced editing capabilities. Ideal for high-quality realistic images and complex editing tasks.fal-ai/z-image/turbo: Z-Image Turbo model optimized for speed without sacrificing quality. Supports both text-to-image and image-to-image modes. Perfect for quick iterations, bulk generation, style transfer, and cost-effective projects.bbox-segment: A model for extracting subjects from images based on bbox region.fal-bria-rmbg: A model specialized for remove background from image. Should prioritize this tool if the user wants to remove background from image. fal-ai/recraft-clarity-upscale: A model specialized for upscale image. fal-ai/image-editing/text-removal: A specialized model for removing text and watermarks from images. Automatically detects and removes text while preserving the background and other visual elements. Use when users want to clean images, remove watermarks, or eliminate text overlays. flux-pro/outpaint: A model specialized for expand image to a specific aspect ratio. nano-banana-2-flash-lite: [GEMINI NANO BANANA 2 FLASH LITE] Fast, lightweight Gemini image model for text-to-image and image editing with multi-image input. Native 1K output. Best for speed-sensitive, high-volume workflows. (string, one of: gpt-image-2, nano-banana-pro, nano-banana-2, fal-ai/bytedance/seedream/v5/lite, fal-ai/bytedance/seedream/v5/pro, qwen-image-3, fal-ai/flux-2-pro, fal-ai/z-image/turbo, bbox-segment, fal-bria-rmbg, fal-ai/recraft-clarity-upscale, fal-ai/image-editing/text-removal, flux-pro/outpaint, nano-banana-2-flash-lite) |
32
32
  | `<query>` (positional) | No | Detailed description of the image to generate. The prompt should be in English.However, any specific text that should appear within the image does not need to be translated.(e.g., 'A futuristic cityscape with flying cars and neon lights at night'). Omit when passing the prompt by `query_file` instead. (string) |
33
33
  | `--query_file` | No | Optional. Repo-relative path to a UTF-8 text file containing the prompt, used verbatim in place of `query` (lets you pass a long prompt by path instead of inlining it). Requires `repo_id`. When set, `query` may be omitted. (string) |
34
34
  | `--bbox` | No | BBox of the target object, for bbox segmentation modelFormat: [x1, y1, x2, y2], x1 and y1 are the top-left corner coordinates, x2 and y2 are the bottom-right corner coordinates. (array) |
35
35
  | `-i`, `--image_urls` | No | The URLs of the images to use as a reference for the image generation or editing. (default is [], if the task is based on one or more reference images, it is required) (array) |
36
36
  | `--repo_id` | No | Optional. Second Brain repo id (provided in the agent's system prompt). Required only when image_urls contains relative paths from a Second Brain project (e.g. 'assets/foo.png'). Absolute http(s) URLs and data: URLs do not need this parameter. (string) |
37
- | `-r`, `--aspect_ratio` | No | The aspect ratio of the image to generate. (string, one of: 1:1, 4:3, 16:9, 9:16, 3:4, 2:3, 3:2, auto) |
37
+ | `-r`, `--aspect_ratio` | No | The aspect ratio of the image to generate. Default 'auto'. When editing with image_urls (image-to-image), use 'auto' so the output keeps the reference image's aspect ratio — never switch between portrait and landscape unless the user explicitly asks. (string, one of: 1:1, 4:3, 16:9, 9:16, 3:4, 2:3, 3:2, auto) |
38
38
  | `-s`, `--image_size` | No | Image size resolution. Default is auto. (string, one of: auto, 0.5k, 1k, 2k, 3k, 4k) |
39
39
 
40
40
  ## Local File Support
@@ -3,7 +3,8 @@ name: gsk-microsoft-teams
3
3
  version: 1.0.0
4
4
  description: 'Microsoft Teams operations. Actions: send, list_channels, list_chats,
5
5
  read_chat, list_channel_messages, list_channel_replies, list_teams, list_members,
6
- search, search_users, create_chat, create_team, react, delete_message.'
6
+ search, search_users, create_chat, create_team, react, delete_message, download_attachment,
7
+ mark_chat_read.'
7
8
  metadata:
8
9
  category: general
9
10
  requires:
@@ -16,7 +17,9 @@ metadata:
16
17
 
17
18
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
18
19
 
19
- Microsoft Teams operations. Actions: send, list_channels, list_chats, read_chat, list_channel_messages, list_channel_replies, list_teams, list_members, search, search_users, create_chat, create_team, react, delete_message.
20
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
21
+
22
+ Microsoft Teams operations. Actions: send, list_channels, list_chats, read_chat, list_channel_messages, list_channel_replies, list_teams, list_members, search, search_users, create_chat, create_team, react, delete_message, download_attachment, mark_chat_read.
20
23
 
21
24
  ## Usage
22
25
 
@@ -30,25 +33,27 @@ gsk teams [options]
30
33
 
31
34
  | Flag | Required | Description |
32
35
  |------|----------|-------------|
33
- | `<action>` (positional) | Yes | Action to perform. 'send': Send a message in Teams (reply_to_message_id replies in a channel thread or quotes a chat message); 'list_channels': List hosted and shared channels for an associated team; 'list_chats': List recent chats; 'read_chat': Read a chat's recent messages by chat_id; 'list_channel_messages': List root messages in a channel; one traversal is not a deletion snapshot; 'list_channel_replies': List replies to a channel message; one traversal is not a deletion snapshot; 'list_teams': List direct teams and shared-channel host teams; 'search': Search messages; 'search_users': Search for users; 'create_chat': Create a new chat; 'react': Emoji-react to a chat or channel message (or remove your reaction); 'list_members': List ALL members of a team with roles and emails (full roster, internally paginated); 'create_team': Create a new team (you become owner) and optionally add members by email; 'delete_message': Soft-delete one of your own messages (chat, channel, or threaded reply) (string, one of: send, list_channels, list_chats, read_chat, list_channel_messages, list_channel_replies, list_teams, search, search_users, create_chat, react, list_members, create_team, delete_message) |
34
- | `--content` | No | [send] The message content to send. Accepts either Markdown or HTML. Markdown (e.g. '## Heading', '**bold**', '- item', tables) is automatically rendered to formatted HTML. You may also pass raw HTML directly: <a href='URL'>text</a> for links, <b>text</b> for bold, <i>text</i> for italic, <br> for line breaks, and other standard HTML tags. (string) |
35
- | `--chat_id` | No | [send] Optional chat ID to send the message to. If not specified or set to 'self', sends to yourself as a DM. Use chat IDs from microsoft_teams_search_messages results. \| [read_chat] The Teams chat ID (e.g. '19:...@thread.v2'). Required. \| [react] ID of the chat containing the message. Provide either chat_id, or team_id + channel_id for a channel message. \| [delete_message] ID of the chat containing the message. Provide either chat_id, or team_id + channel_id for a channel message. (string) |
36
+ | `<action>` (positional) | Yes | Action to perform. 'send': Send a message in Teams (reply_to_message_id replies in a channel thread or quotes a chat message); 'list_channels': List hosted and shared channels for an associated team; 'list_chats': List recent chats; 'read_chat': Read a chat's recent messages by chat_id; 'list_channel_messages': List root messages in a channel; one traversal is not a deletion snapshot; 'list_channel_replies': List replies to a channel message; one traversal is not a deletion snapshot; 'download_attachment': Download one attachment or inline hosted image from a message; returns a file URL; 'mark_chat_read': Mark a chat as read for the connected user (clears its unread badge; own read state only); 'list_teams': List direct teams and shared-channel host teams; 'search': Search messages; 'search_users': Search for users; 'create_chat': Create a new chat; 'react': Emoji-react to a chat or channel message (or remove your reaction); 'list_members': List ALL members of a team with roles and emails (full roster, internally paginated); 'create_team': Create a new team (you become owner) and optionally add members by email; 'delete_message': Soft-delete one of your own messages (chat, channel, or threaded reply) (string, one of: send, list_channels, list_chats, read_chat, list_channel_messages, list_channel_replies, download_attachment, mark_chat_read, list_teams, search, search_users, create_chat, react, list_members, create_team, delete_message) |
37
+ | `--content` | No | [send] The message content to send. Accepts either Markdown or HTML. Markdown (e.g. '## Heading', '**bold**', '- item', tables) is automatically rendered to formatted HTML. You may also pass raw HTML directly: <a href='URL'>text</a> for links, <b>text</b> for bold, <i>text</i> for italic, <br> for line breaks, and other standard HTML tags. INLINE IMAGES are supported: embed <img src="data:image/png;base64,..."> (any image/* data URI) and the bytes are automatically relocated into Microsoft Graph hostedContents so the image renders in the message — no manual Graph calls needed. (string) |
38
+ | `--chat_id` | No | [send] Optional chat ID to send the message to. If not specified or set to 'self', sends to yourself as a DM. Use chat IDs from microsoft_teams_search_messages results. \| [read_chat] The Teams chat ID (e.g. '19:...@thread.v2'). Required. \| [download_attachment] Chat ID ('19:…@thread.v2') for a chat message. Mutually exclusive with team_id/channel_id. \| [mark_chat_read] Chat ID ('19:…@thread.v2') to mark as read, from microsoft_teams_list_chats. \| [react] ID of the chat containing the message. Provide either chat_id, or team_id + channel_id for a channel message. \| [list_members] Chat ID ('19:…@thread.v2') to list a group chat's or DM's members instead of a team's. \| [delete_message] ID of the chat containing the message. Provide either chat_id, or team_id + channel_id for a channel message. (string) |
36
39
  | `--channel_type` | No | [send] Type of channel: 'teams_chat' for 1:1 or group chats, 'teams_channel' for team channels. Default: 'teams_chat' (string, one of: teams_chat, teams_channel) |
37
- | `--team_id` | No | [send] Required if channel_type is 'teams_channel'. The team ID where the channel belongs. \| [list_channels] Associated team ID from list_teams. \| [list_channel_messages] Host team ID from the selected list_channels result (host_team_id). \| [list_channel_replies] Host team ID from the selected list_channels result (host_team_id). \| [react] Team ID, for reacting to a channel message (together with channel_id). \| [list_members] ID of the team to list members of. \| [delete_message] Team ID, for deleting a channel message (together with channel_id). (string) |
38
- | `--channel_id` | No | [send] Required if channel_type is 'teams_channel'. The channel ID within the team. \| [list_channel_messages] Channel ID from the same selected list_channels result. \| [list_channel_replies] Channel ID from the same selected list_channels result. \| [react] Channel ID, for reacting to a channel message (together with team_id). \| [delete_message] Channel ID, for deleting a channel message (together with team_id). (string) |
40
+ | `--team_id` | No | [send] Required if channel_type is 'teams_channel'. The team ID where the channel belongs. \| [list_channels] Associated team ID from list_teams. \| [list_channel_messages] Host team ID from the selected list_channels result (host_team_id). \| [list_channel_replies] Host team ID from the selected list_channels result (host_team_id). \| [download_attachment] Team ID (GUID) for a channel message; requires channel_id. \| [react] Team ID, for reacting to a channel message (together with channel_id). \| [list_members] ID of the team to list members of. Mutually exclusive with chat_id. \| [delete_message] Team ID, for deleting a channel message (together with channel_id). (string) |
41
+ | `--channel_id` | No | [send] Required if channel_type is 'teams_channel'. The channel ID within the team. \| [list_channel_messages] Channel ID from the same selected list_channels result. \| [list_channel_replies] Channel ID from the same selected list_channels result. \| [download_attachment] Channel ID ('19:…@thread.tacv2') for a channel message; requires team_id. \| [react] Channel ID, for reacting to a channel message (together with team_id). \| [delete_message] Channel ID, for deleting a channel message (together with team_id). (string) |
39
42
  | `--importance` | No | [send] Message importance level that controls notification behavior. 'normal': Regular message, no special notification (default). 'high': Triggers notification without special emphasis. 'urgent': Triggers immediate notification with sound and alert. Default: 'normal' (string, one of: normal, high, urgent) |
40
43
  | `--notify` | No | [send] Whether to force notification by @mentioning yourself in the message. When true, adds a self-mention to ensure notification is triggered. Useful when sending reminders to yourself. Default: true (boolean) |
41
44
  | `--mention_user_ids` | No | [send] List of user IDs (GUIDs) to @mention in the message. Use search_users to find user IDs first. The message content should include {mention_N} placeholders where N is the index (0-based), e.g., '{mention_0} thank you' will @mention the first user in the list. (array) |
42
45
  | `--mention_user_names` | No | [send] Display names for mentioned users, in same order as mention_user_ids. If not provided, will use user IDs as display names. (array) |
43
- | `--reply_to_message_id` | No | [send] Optional ID of an existing message to reply to. For team channels: posts this message as a threaded reply under that root message. For chats: renders a quoted block of the referenced message above your text (like the Teams client's Reply action). Message IDs come from microsoft_teams_read_chat / microsoft_teams_list_channel_messages. (string) |
46
+ | `--reply_to_message_id` | No | [send] Optional ID of an existing message to reply to. For team channels: posts this message as a threaded reply under that root message. For chats: renders a quoted block of the referenced message above your text (like the Teams client's Reply action). Message IDs come from microsoft_teams_read_chat / microsoft_teams_list_channel_messages. \| [download_attachment] For a channel reply: the ROOT message ID the reply belongs to. (string) |
44
47
  | `--cursor` | No | [list_channels] Opaque next_cursor from the previous page. \| [list_chats] Pagination cursor returned in a previous response's ``next_cursor`` field. Pass it back verbatim to fetch the next page; omit on the first call. \| [read_chat] Pagination cursor from a previous response's ``next_cursor``; omit on the first call. \| [list_channel_messages] Opaque next_cursor from the previous page. \| [list_channel_replies] Opaque next_cursor from the previous page. \| [list_teams] Opaque next_cursor from the previous page. \| [search] Pagination cursor returned in a previous response's ``next_cursor`` field. Pass it back verbatim to fetch the next page; omit on the first call. Stop paging as soon as the returned hits satisfy your need. (string) |
45
48
  | `--topic` | No | [list_chats] Search for chats by topic/name (case-insensitive partial match). Use this to find a specific group chat by its name. Example: 'WorkflowTest' to find a chat with that topic. Filter is applied per-page; if no match on the current page, use ``next_cursor`` to keep searching. \| [create_chat] Topic/name for the group chat. Required for group chats (2+ members), ignored for 1:1 chats. (string) |
46
49
  | `--chat_type` | No | [list_chats] Filter by chat type. 'oneOnOne' for 1:1 chats, 'group' for group chats, 'meeting' for meeting chats, 'all' for all types. Default: 'all' (string, one of: oneOnOne, group, meeting, all) |
47
50
  | `--count` | No | [list_chats] Maximum number of chats to return on this call (page size, clamped to [1, 50]). Default: 50. To fetch beyond a single page, use the ``cursor`` argument with the previous response's ``next_cursor``. \| [search] The maximum number of messages to return on this call (page size, clamped to [1, 25]). Default: 25. To fetch beyond a single page, use the ``cursor`` argument with the previous response's ``next_cursor``. \| [search_users] Maximum number of users to return. Default: 10 (integer) |
48
51
  | `--limit` | No | [read_chat] Maximum messages to return on this call (clamped to [1, 50]). Default: 30. To fetch beyond a page, pass the previous response's ``next_cursor`` as ``cursor``. \| [list_channel_messages] Messages in this page, clamped to 1-50. Default: 30. \| [list_channel_replies] Messages in this page, clamped to 1-50. Default: 30. (integer) |
49
- | `--since` | No | [read_chat] Optional ISO-8601 floor (e.g. '2026-05-01T00:00:00Z'); only messages created at or after this instant are returned. \| [search] Optional ISO-8601 floor (e.g. '2026-05-01' or '2026-05-01T00:00:00Z'); only messages created at or after this instant are returned. (string) |
50
- | `--message_id` | No | [list_channel_replies] Root channel message ID whose replies should be listed. \| [react] ID of the message to react to. \| [delete_message] ID of the message to delete. (string) |
51
- | `--query` | No | [search] The search query using KQL (Keyword Query Language). **Query Behavior**: • Spaces = AND: 'project meeting' finds messages with BOTH terms • OR operator: 'project OR meeting' finds messages with EITHER term • KQL modifiers: 'from:john', 'hasAttachment:true', 'sent>2024-01-01', 'IsRead:false' • Examples: 'urgent project', 'bug OR issue', 'from:alice budget', 'hasAttachment:true report' \| [search_users] Search query - can be a name, email, or partial match. Example: 'John', 'john@company.com', 'Smith' (string) |
52
+ | `--since` | No | [read_chat] Optional ISO-8601 floor (e.g. '2026-05-01T00:00:00Z'); only messages created or modified at or after this instant are returned. \| [search] Optional ISO-8601 floor (e.g. '2026-05-01' or '2026-05-01T00:00:00Z'); only messages created at or after this instant are returned. (string) |
53
+ | `--message_id` | No | [list_channel_replies] Root channel message ID whose replies should be listed. \| [download_attachment] The message ID holding the attachment (for a channel reply: the reply's own ID). \| [react] ID of the message to react to. \| [delete_message] ID of the message to delete. (string) |
54
+ | `--hosted_content_id` | No | [download_attachment] hostedContents item ID for inline images pasted into the message. (string) |
55
+ | `--attachment_id` | No | [download_attachment] Attachment ID from the message's attachments list — for file attachments with a contentUrl. (string) |
56
+ | `--query` | No | [search] The search query using KQL (Keyword Query Language). **Query Behavior**: • Spaces = AND: 'project meeting' finds messages with BOTH terms • OR operator: 'project OR meeting' finds messages with EITHER term • KQL modifiers: 'from:john', 'hasAttachment:true', 'IsRead:false' • Date filters: prefer the ``since``/``until`` arguments; inline date ops ('sent>=2026-02-01 sent<=2026-03-05', 'sent:2026-02-01..2026-03-05') are also honored — both bounds are enforced • Examples: 'urgent project', 'bug OR issue', 'from:alice budget', 'hasAttachment:true report' \| [search_users] Search query - can be a name, email, or partial match. Example: 'John', 'john@company.com', 'Smith' (string) |
52
57
  | `--unread_only` | No | [search] Set to true to search for unread messages only. Default is false. (boolean) |
53
58
  | `--question` | No | [search] A specific question to answer based on the search results. (string) |
54
59
  | `--raw` | No | [search] Return structured JSON (``{success, count, messages, next_cursor}`` with the same message fields as ``microsoft_teams_read_chat``) instead of an LLM-summarized prose digest. ``success: false`` with ``error`` on failure, so callers can tell an empty result from an error. Default false. (boolean) |
@@ -14,6 +14,8 @@ metadata:
14
14
 
15
15
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
16
 
17
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
18
+
17
19
  Notion page operations. Actions: search, read, create.
18
20
 
19
21
  ## Usage
@@ -14,6 +14,8 @@ metadata:
14
14
 
15
15
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
16
 
17
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
18
+
17
19
  OneDrive file operations. Actions: list, search, read, upload, share.
18
20
 
19
21
  ## Usage
@@ -31,6 +33,7 @@ gsk onedrive [options]
31
33
  | `--folder_id` | No | [list] The folder item ID to list contents of. Get folder IDs from previous onedrive_list_files or onedrive_search results. \| [upload] Target folder item ID (from onedrive_list_files or onedrive_search). If omitted, ``folder_path`` is used; if both are omitted, the upload goes to the OneDrive root. (string) |
32
34
  | `--folder_path` | No | [list] The folder path relative to OneDrive root. Example: 'Documents/Projects' to list files in that subfolder. \| [upload] Target folder path relative to the OneDrive root, e.g. 'Documents/Reports'. The folder must already exist. Ignored when ``folder_id`` is provided. (string) |
33
35
  | `--limit` | No | [list] Maximum number of items to return (1-200). Default: 50 (integer) |
36
+ | `--all_pages` | No | [list] List every page in this folder. Use for complete programmatic inventory; default false. (boolean) |
34
37
  | `--query` | No | [search] The search query string. **Query Behavior**: • Spaces = AND: 'project report' finds files with BOTH terms • OR operator: 'project OR report' finds files with EITHER term • Empty string: '*' lists all files • Wildcards: 'report*' finds files starting with 'report' • Examples: 'budget.xlsx', 'meeting OR conference', '*.pdf', 'project 2024' (string) |
35
38
  | `--file_id` | No | [read] The ID of the file OR the OneDrive/SharePoint URL to read from OneDrive or SharePoint. Can be either a file ID (like '01W56PINYRO3...') or a full OneDrive/SharePoint URL (like 'https://domain-my.sharepoint.com/personal/user/Documents/file.pdf' or SharePoint driveItem IDs). For Teams attachments, use the 'file_id' value from Teams search results onedrive_file_params. \| [share] OneDrive item ID of the file or folder to share (from onedrive_list_files or onedrive_search). Mutually exclusive with ``file_path``. (string) |
36
39
  | `--question` | No | [read] The question to answer about the file content. (string) |
@@ -15,6 +15,8 @@ metadata:
15
15
 
16
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
17
 
18
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
19
+
18
20
  Outlook Calendar operations. Actions: list, free_busy, create, respond, modify, delete.
19
21
 
20
22
  ## Usage
@@ -27,7 +29,7 @@ gsk outlook_calendar [options]
27
29
 
28
30
  | Flag | Required | Description |
29
31
  |------|----------|-------------|
30
- | `<action>` (positional) | Yes | Action to perform. 'list': List upcoming calendar events; 'free_busy': Query free/busy availability for people (any org member) in a time window (find open meeting slots); 'create': Create a new calendar event. By default this returns a LOCAL DRAFT only — nothing lands in the calendar until the user confirms it in the Genspark UI. Callers without a confirmation UI (e.g. gsk) must pass --skip_confirmation to create the event directly; 'respond': RSVP (accept / decline / tentative) to an existing invite. Supports --comment and --proposed_new_time (Outlook-only counter-proposal); 'modify': Modify (Graph PATCH /me/events/{id}) an existing event in place without delete+create; 'delete': Delete a calendar event (string, one of: list, free_busy, create, respond, modify, delete) |
32
+ | `<action>` (positional) | Yes | Action to perform. 'list': List upcoming calendar events. Returns at most 'limit' (default 20) events; the response sets truncated=true when more events exist in the window; 'free_busy': Query free/busy availability for people (any org member) in a time window (find open meeting slots); 'create': Create a new calendar event. By default this returns a LOCAL DRAFT only — nothing lands in the calendar until the user confirms it in the Genspark UI. Callers without a confirmation UI (e.g. gsk) must pass --skip_confirmation to create the event directly; 'respond': RSVP (accept / decline / tentative) to an existing invite. Supports --comment and --proposed_new_time (Outlook-only counter-proposal); 'modify': Modify (Graph PATCH /me/events/{id}) an existing event in place without delete+create; 'delete': Delete a calendar event (string, one of: list, free_busy, create, respond, modify, delete) |
31
33
  | `--filter_query` | No | [list] Text to filter calendar events by subject. Empty for listing all events in the time range. (string) |
32
34
  | `--time_min` | No | [list] Optional. Start time for the calendar view (ISO 8601 timestamp). Defaults to 30 days ago. (string) |
33
35
  | `--time_max` | No | [list] Optional. End time for the calendar view (ISO 8601 timestamp). Defaults to 60 days from now. (string) |
@@ -14,6 +14,8 @@ metadata:
14
14
 
15
15
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
16
 
17
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
18
+
17
19
  Outlook Contacts operations. Actions: search.
18
20
 
19
21
  ## Usage
@@ -17,19 +17,12 @@ metadata:
17
17
 
18
18
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
19
19
 
20
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
21
+
20
22
  Outlook Email operations. Actions: search, read, list_folders, list_emails, list_email_changes, send, draft, reply, reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category, get_attachment, group_list, group_search, group_read, group_reply.
21
23
 
22
24
  ## Usage
23
25
 
24
- The durable ingest actions `list_folders`, `list_emails`, and
25
- `list_email_changes` require `--from_account <mailbox-address>`. Never omit it:
26
- the explicit mailbox is part of the stable source identity and cursor scope.
27
-
28
- ```bash
29
- gsk outlook list_folders --from_account person@example.com
30
- gsk outlook list_email_changes --folder_id <id> --from_account person@example.com
31
- ```
32
-
33
26
  ```bash
34
27
  gsk outlook [options]
35
28
  ```
@@ -40,7 +33,7 @@ gsk outlook [options]
40
33
 
41
34
  | Flag | Required | Description |
42
35
  |------|----------|-------------|
43
- | `<action>` (positional) | Yes | Action to perform. 'search': Search emails by query; 'read': Read a specific email by ID; 'list_folders': List structured Outlook mail folders; 'list_emails': List full structured emails in one folder; 'list_email_changes': List folder-scoped email upserts and tombstones using a delta cursor; 'send': Compose and send an email; 'draft': Save an email to the Drafts folder without sending; 'reply': Reply to an existing email; 'reply_draft': Create a reply draft without sending; 'forward': Forward an email to new recipients; 'delete': Delete an email; 'archive': Archive an email; 'move': Move an email to a different folder; 'mark_as_read': Mark an email as read or unread; 'add_category': Add a category to an email; 'remove_category': Remove a category from an email; 'get_attachment': Download an email attachment; 'group_list': List Microsoft 365 groups; 'group_search': Search group emails; 'group_read': Read a group email; 'group_reply': Reply to a group email (string, one of: search, read, list_folders, list_emails, list_email_changes, send, draft, reply, reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category, get_attachment, group_list, group_search, group_read, group_reply) |
36
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search emails by query; 'read': Read a specific email by ID; 'list_folders': List structured Outlook mail folders; 'list_emails': List structured emails with explicit body coverage; 'list_email_changes': List folder-scoped email upserts and tombstones with body coverage using a delta cursor; 'send': Compose and send an email; 'draft': Save an email to the Drafts folder without sending; 'reply': Reply to an existing email; 'reply_draft': Create a reply draft without sending; 'forward': Forward an email to new recipients; 'delete': Delete an email; 'archive': Archive an email; 'move': Move an email to a different folder; 'mark_as_read': Mark an email as read or unread; 'add_category': Add a category to an email; 'remove_category': Remove a category from an email; 'get_attachment': Download an email attachment; 'group_list': List Microsoft 365 groups; 'group_search': Search group emails; 'group_read': Read a group email; 'group_reply': Reply to a group email (string, one of: search, read, list_folders, list_emails, list_email_changes, send, draft, reply, reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category, get_attachment, group_list, group_search, group_read, group_reply) |
44
37
  | `--queryString` | No | [search] The search query using KQL (Keyword Query Language). Examples:\n- Simple: 'project meeting'\n- From Sender: 'from:boss@example.com'\n- With Subject: 'subject:"Weekly Report"'\n- Unread Emails: 'isRead=false'\n- Has Attachments: 'hasAttachments=true'\n- Cc Recipient: 'cc:user@example.com'\n- Important: 'importance:high'\n- Complex: 'from:admin@co.com AND (subject:urgent OR body:critical)'\nNote: Use after_date/before_date params for date filtering (recommended), or use KQL syntax like 'received:2024-06-01..2024-06-30' in queryString. (string) |
45
38
  | `--after_date` | No | [search] Filter emails received on or after this date (inclusive). Format: YYYY-MM-DD (e.g., '2024-01-01'). Works for both enterprise and personal accounts. (string) |
46
39
  | `--before_date` | No | [search] Filter emails received before this date (exclusive). Format: YYYY-MM-DD (e.g., '2024-01-31'). Works for both enterprise and personal accounts. (string) |
@@ -15,6 +15,8 @@ metadata:
15
15
 
16
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
17
 
18
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
19
+
18
20
  Salesforce DX CLI (`sf`) operations in a pre-authenticated sandbox. Actions: run (forwards any `sf` subcommand).
19
21
 
20
22
  ## Usage
@@ -24,7 +24,7 @@ Requires Node.js >= 18.
24
24
  ## Authentication
25
25
 
26
26
  ```bash
27
- # Log in via browser (saves API key to ~/.genspark-tool-cli/config.json)
27
+ # Log in via browser (saves the API key and effective API endpoint)
28
28
  gsk login
29
29
 
30
30
  # Or provide an API key directly
@@ -45,6 +45,7 @@ gsk me
45
45
  | `--timeout <ms>` | — | `1800000` | Request timeout (30 min default) |
46
46
  | `--output <format>` | — | `json` | Output format: `json` or `text` |
47
47
  | `--refresh` | — | — | Force refresh cached tool schemas |
48
+ | `--config <path>` | `GSK_CONFIG` | `~/.genspark-tool-cli/config.json` | Config profile path |
48
49
 
49
50
  ## Output Conventions
50
51
 
@@ -195,3 +196,13 @@ gsk drive upload --local_file ./doc.pdf --upload_path /docs/doc.pdf --override
195
196
  |------|-------------|
196
197
  | `--local_file <path>` | Local file path to upload (streaming, no size limit) |
197
198
  | `--override` | Overwrite existing file at the destination path |
199
+
200
+ ## Connectors (integrations)
201
+
202
+ For ANY third-party integration (email, chat, CRM, files, custom MCP
203
+ servers), use the unified flow in `../gsk-connector/SKILL.md`:
204
+ `gsk connector list` → `search` → `tools <id>` → `call <id> -t <tool> -a '<json>'`.
205
+ Never assume a connector is missing without running `gsk connector search` first.
206
+ The unified commands are rolling out behind a feature flag; if `gsk connector`
207
+ is unavailable (unknown-command error), use the per-service commands from the
208
+ `gsk-<service>` skills instead — they remain fully supported.
@@ -15,6 +15,8 @@ metadata:
15
15
 
16
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
17
 
18
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
19
+
18
20
  SharePoint site and file operations. Actions: list, search, read_content, read_file, upload.
19
21
 
20
22
  ## Usage
@@ -33,6 +35,7 @@ gsk sharepoint [options]
33
35
  | `--drive_id` | No | [list] The document library (drive) ID. Use this to list files in a specific document library. \| [upload] Document library (drive) ID. Combine with ``folder_id`` to target a specific folder. (string) |
34
36
  | `--folder_id` | No | [list] The folder item ID within a drive. Use this with drive_id to navigate into subfolders. Get folder IDs from previous sharepoint_list_files results. \| [upload] Folder item ID inside ``drive_id`` or the site's default drive. If omitted, the upload goes to the drive root. (string) |
35
37
  | `--limit` | No | [list] Maximum number of items to return (1-200). Default: 50 (integer) |
38
+ | `--all_pages` | No | [list] List every page in this folder. Use for complete programmatic inventory; default false. (boolean) |
36
39
  | `--query` | No | [search] The search query string using KQL syntax. **Query Behavior**: • Spaces = AND: 'project report' finds items with BOTH terms • OR operator: 'project OR report' finds items with EITHER term • Empty string: '*' returns all items • Mixed language: automatically optimized (e.g., '项目 project' → '项目 OR project') • Examples: 'budget 2024', 'meeting OR conference', 'from:john project', 'hasAttachment:true report' (string) |
37
40
  | `--entity_types` | No | [search] Types of SharePoint content to search. Defaults to all types. (array, default: `['site', 'listItem', 'list', 'driveItem']`) |
38
41
  | `--content_id` | No | [read_content] The ID of the SharePoint content to read. Can be a site ID, page ID, list ID, list item ID from SharePoint search results, or a SharePoint URL for direct file access. For Teams attachments, use the 'content_id' value from Teams search results onedrive_file_params. (string) |
@@ -14,6 +14,8 @@ metadata:
14
14
 
15
15
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
16
 
17
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
18
+
17
19
  Upload a file to a SharePoint document library.
18
20
 
19
21
  ## Usage
@@ -2,7 +2,7 @@
2
2
  name: gsk-slack
3
3
  version: 1.0.0
4
4
  description: 'Slack messaging operations. Actions: send, search, read, lookup, react,
5
- upload.'
5
+ upload, update, delete, permalink, connect_invites, connect_approve, connect_decline.'
6
6
  metadata:
7
7
  category: general
8
8
  requires:
@@ -15,7 +15,9 @@ metadata:
15
15
 
16
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
17
 
18
- Slack messaging operations. Actions: send, search, read, lookup, react, upload.
18
+ > **Note:** a unified `gsk connector` flow is rolling out (see `../gsk-connector/SKILL.md`: `gsk connector tools <id>` / `gsk connector call <id> -t <tool>`) and may not be enabled for every account yet. THIS command remains fully supported — use it directly, and it stays the fallback whenever `gsk connector` is unavailable.
19
+
20
+ Slack messaging operations. Actions: send, search, read, lookup, react, upload, update, delete, permalink, connect_invites, connect_approve, connect_decline.
19
21
 
20
22
  ## Usage
21
23
 
@@ -27,29 +29,32 @@ gsk slack [options]
27
29
 
28
30
  | Flag | Required | Description |
29
31
  |------|----------|-------------|
30
- | `<action>` (positional) | Yes | Action to perform. 'send': Send a message to a channel or user; 'search': Search messages by keyword; 'read': Read recent message history of a channel (or one thread); 'lookup': Look up users, channels, or groups; 'react': Emoji-react to a message (or remove your reaction); 'upload': Upload a file into a channel, group, or DM (string, one of: send, search, read, lookup, react, upload) |
32
+ | `<action>` (positional) | Yes | Action to perform. 'send': Send a message to a channel or user; 'search': Search messages by keyword; 'read': Read recent message history of a channel (or one thread); 'lookup': Look up users, channels, or groups; 'react': Emoji-react to a message (or remove your reaction); 'upload': Upload a file into a channel, group, or DM; 'update': Edit one of the user's own messages; 'delete': Delete one of the user's own messages; 'permalink': Get the permanent link for a message; 'connect_invites': List pending Slack Connect shared-channel invites (workspace owner/admin only); 'connect_approve': Approve a pending Slack Connect shared-channel invite by invite ID (workspace owner/admin only); 'connect_decline': Decline a pending Slack Connect shared-channel invite by invite ID (workspace owner/admin only) (string, one of: send, search, read, lookup, react, upload, update, delete, permalink, connect_invites, connect_approve, connect_decline) |
31
33
  | `--message` | No | [send] The message content to send. Supports Slack markdown formatting. (string) |
32
34
  | `--recipient` | No | [send] Optional recipient: 'self' (default), channel ID (e.g., 'C01234567'), or user ID (e.g., 'U01234567'). If not specified, sends to yourself. (string) |
33
35
  | `--title` | No | [send] Optional title for the message. If provided, creates a rich formatted message with a header. \| [upload] Optional title shown on the Slack file card. Defaults to the file name. (string) |
34
36
  | `--fields` | No | [send] Optional array of field objects with 'title' and 'value' keys to create a structured message layout. (array) |
35
37
  | `--thread_ts` | No | [send] Optional thread timestamp to reply in a thread. \| [read] Timestamp ('ts') of a thread's parent message. When set, returns that thread's replies instead of the channel timeline. \| [upload] Optional thread timestamp — share the file as a reply in this thread instead of the conversation root. (string) |
36
38
  | `--query` | No | [search] The search query. You can use modifiers like 'in:#channel', 'from:@user', 'has:link', 'before:yyyy-mm-dd'. (string) |
37
- | `--count` | No | [search] The maximum number of messages to return. Default is 100. (integer) |
39
+ | `--count` | No | [search] The maximum number of messages to return. Default is 100. \| [connect_invites] Maximum number of invites to return (default 100). (integer) |
38
40
  | `--sort` | No | [search] Sort order of results. 'score' for relevance or 'timestamp' for time. Default is 'score'. (string) |
39
41
  | `--question` | No | [search] A specific question to answer based on the search results. (string) |
40
- | `--channel` | No | [read] Conversation ID (channel 'C…', private group 'G…', or DM 'D…') or a channel name (e.g. '#general' or 'general'). IDs come from the lookup action. \| [react] Conversation ID containing the message (channel 'C…', private group 'G…', or DM 'D…'). \| [upload] Target conversation ID (channel 'C…', private group 'G…', or DM 'D…') the file is shared into. (string) |
42
+ | `--channel` | No | [read] Conversation ID (channel 'C…', private group 'G…', or DM 'D…') or a channel name (e.g. '#general' or 'general'). IDs come from the lookup action. \| [react] Conversation ID containing the message (channel 'C…', private group 'G…', or DM 'D…'). \| [upload] Target conversation ID (channel 'C…', private group 'G…', or DM 'D…') the file is shared into. \| [update] Conversation ID containing the message (channel 'C…', private group 'G…', or DM 'D…'). \| [delete] Conversation ID containing the message (channel 'C…', private group 'G…', or DM 'D…'). \| [permalink] Conversation ID containing the message (channel 'C…', private group 'G…', or DM 'D…'). (string) |
41
43
  | `--limit` | No | [read] Maximum messages to return (default 20, max 100). \| [lookup] Maximum number of results to return. Default: 50 (integer) |
42
- | `--cursor` | No | [read] Pagination cursor from a previous call's next_cursor to fetch older messages. (string) |
44
+ | `--cursor` | No | [read] Pagination cursor from a previous call's next_cursor to fetch older messages. \| [connect_invites] Pagination cursor from a previous response's 'next_cursor'; omit on the first call. (string) |
43
45
  | `--lookup_type` | No | [lookup] What to look up: 'users' for team members, 'channels' for channels/conversations, 'all' for both. (string, one of: users, channels, all) |
44
46
  | `--search_query` | No | [lookup] Optional search query to filter results by name. Case-insensitive partial match on name, display name, or real name. (string) |
45
47
  | `--include_bots` | No | [lookup] Whether to include bot users in results. Default: false (boolean) |
46
- | `--timestamp` | No | [react] The message's 'ts' value (e.g. '1752600000.000100'). (string) |
48
+ | `--timestamp` | No | [react] The message's 'ts' value (e.g. '1752600000.000100'). \| [update] The message's 'ts' value (e.g. '1752600000.000100'). Must be a message the connected user authored. \| [delete] The message's 'ts' value (e.g. '1752600000.000100'). Must be a message the connected user authored. \| [permalink] The message's 'ts' value (e.g. '1752600000.000100'). (string) |
47
49
  | `--reaction` | No | [react] Slack emoji name without colons, e.g. 'thumbsup', '+1', 'heart', 'joy'. (string) |
48
50
  | `--remove` | No | [react] Set true to remove your existing reaction of this emoji instead of adding it. Default: false. (boolean) |
49
51
  | `--content` | No | [upload] Text content to upload as a file (UTF-8). Provide exactly one of 'content' or 'file_path'. (string) |
50
52
  | `--file_path` | No | [upload] File to upload: a local server file path, a Genspark file-wrapper URL (https://…/api/files/s/<code>), or an AI Drive path (aidrive://…). Provide exactly one of 'content' or 'file_path'. (string) |
51
53
  | `--file_name` | No | [upload] File name shown in Slack (include the extension, e.g. 'report.pdf'). Required with 'content'; defaults to the path basename for 'file_path'. (string) |
52
54
  | `--initial_comment` | No | [upload] Optional message text posted together with the file. (string) |
55
+ | `--text` | No | [update] The full replacement text (mrkdwn) — Slack replaces the whole message body, not a diff. (string) |
56
+ | `--invite_id` | No | [connect_approve] The Slack Connect invite ID (e.g. 'I…'), from the connect_invites list. \| [connect_decline] The Slack Connect invite ID (e.g. 'I…'), from the connect_invites list. (string) |
57
+ | `--target_team` | No | [connect_approve] Optional team/enterprise ID of the other party in the invitation. \| [connect_decline] Optional team/enterprise ID of the other party in the invitation. (string) |
53
58
 
54
59
  ## See Also
55
60
 
@@ -5,8 +5,9 @@ description: Continue an existing task project you previously created with creat
5
5
  by sending a follow-up instruction — use this to edit, revise, or extend an existing
6
6
  deliverable (e.g. 'add a slide on pricing', 'shorten the intro') instead of create_task,
7
7
  which mints and bills a brand-new task. Works for any create_task task type (slides,
8
- docs, sheets, deep_research, website, ...). The project must belong to you. Runs
9
- the agent to completion and returns the task_url plus the updated result artifacts.
8
+ docs, sheets, deep_research, website, ...). The project must belong to you or be
9
+ shared with you with edit (write) permission. Runs the agent to completion and returns
10
+ the task_url plus the updated result artifacts.
10
11
  metadata:
11
12
  category: general
12
13
  requires:
@@ -19,7 +20,7 @@ metadata:
19
20
 
20
21
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
21
22
 
22
- Continue an existing task project you previously created with create_task by sending a follow-up instruction — use this to edit, revise, or extend an existing deliverable (e.g. 'add a slide on pricing', 'shorten the intro') instead of create_task, which mints and bills a brand-new task. Works for any create_task task type (slides, docs, sheets, deep_research, website, ...). The project must belong to you. Runs the agent to completion and returns the task_url plus the updated result artifacts.
23
+ Continue an existing task project you previously created with create_task by sending a follow-up instruction — use this to edit, revise, or extend an existing deliverable (e.g. 'add a slide on pricing', 'shorten the intro') instead of create_task, which mints and bills a brand-new task. Works for any create_task task type (slides, docs, sheets, deep_research, website, ...). The project must belong to you or be shared with you with edit (write) permission. Runs the agent to completion and returns the task_url plus the updated result artifacts.
23
24
 
24
25
  ## Usage
25
26
 
@@ -32,18 +32,19 @@ gsk video [options]
32
32
  | `<query>` (positional) | No | Detailed, self-contained description of the video to generate, written in English. This text is sent to the video model verbatim as the generation prompt, so put all the visual detail here — but NEVER output settings: text like '16:9' or '4 seconds' in the prompt may be rendered literally into the scene. Pass aspect ratio via the `aspect_ratio` parameter and length via `duration`. duration is recommended to be 5 ~ 10 seconds. For image-to-image transitions (user provides start and end frames) e.g., 'A timelapse of a flower blooming in a garden'. Omit when passing the prompt by `query_file` instead. (string) |
33
33
  | `--query_file` | No | Optional. Repo-relative path to a UTF-8 text file containing the prompt, used verbatim in place of `query` (lets you pass a long prompt by path instead of inlining it). Requires `repo_id`. When set, `query` may be omitted. (string) |
34
34
  | `--file_name` | No | The name of the video to generate. (string, null) |
35
- | `-m`, `--model` | Yes | The model to use for video generation. kling/v3: Latest Kling V3 with audio. Pro/Standard quality modes. Supported ratios: 16:9, 9:16, 1:1. Duration: 3-15s. gemini/veo3.1: Gemini Veo 3.1 - Latest version with enhanced quality and features. Supports text-to-video and image-to-video generation with improved quality. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode (faster generation) and hd_mode (1080p quality). gemini/veo3.1/reference-to-video: Gemini Veo 3.1 Reference-to-Video mode. Generate video using multiple reference images to guide the generation. Requires 1+ reference images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options. gemini/veo3.1/first-last-frame-to-video: Veo 3.1 First-Last Frame mode. Generate video by specifying first and last frames for precise transitions. Requires exactly 2 images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports fast_mode and hd_mode options.minimax/hailuo-2.3/standard: MiniMax Hailuo-2.3 Standard model for high-quality video generation. Supports both text-to-video and image-to-video generation with improved quality. Supports first & last frame control for precise video transitions. Fast generation (about 4min one video), cost-effective option. Supported ratios: 16:9, 9:16. Duration: 6s, 10s wan/v2.7: Wan v2.7 with enhanced motion smoothness and scene fidelity. Supports text-to-video, image-to-video, reference-to-video, and edit-video. Ratios: 16:9, 9:16, 1:1. Duration: 5s. Resolution: 480p, 720p vidu/q3: Vidu Q3 model with enhanced quality and audio generation. Supports both text-to-video and image-to-video generation. Supported ratios: 16:9, 9:16, 4:3, 3:4, 1:1. Duration: 1-16s. Resolution: 720p, 1080prunway/gen4_turbo: A model for generate video with high quality, fast.Supported ratios: 5:3, 3:5. Only support i2v. Duration: 5s, 10spixverse/v6: PixVerse V6 latest model with lifelike motion, richer skin detail, real emotions. Full cinematic control including choreography and camera. Supports text-to-video, image-to-video, transition, and video extend generation. VFX, time-lapse, transformation scenes, product demos, 360° views, multi-shot storytelling. Extend: pass video_url to extend an existing video. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8s. fal-ai/bytedance/seedance-2.0: Bytedance Seedance 2.0 model for highest quality video generation with native audio and lip-sync. Supports text-to-video and image-to-video with first/last frame control. Supported ratios: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Duration: 4-15s. Resolution: 480p, 720p. Also supports reference-to-video with up to 9 images, 3 videos, or 3 audio refs via settings.fal-ai/bytedance-upscaler/upscale/video: ByteDance Video Upscaler for enhancing video quality. Upscales videos to higher resolutions (2k) Requires video_url parameter. Does NOT generate new videos. Use when user wants to improve quality of existing videos.xai/grok-imagine-video: xAI Grok Imagine Video model for high-quality video generation. Supports both text-to-video and image-to-video generation. 720p HD output. Flexible duration 1-15 seconds. Supported ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21. Duration: 1-15s. xai/grok-imagine-video/video-extension: xAI Grok Imagine Video Extension for extending existing videos. Requires video_url parameter with source video URL (MP4, 2-15s). 720p HD output. Duration: 2-10s. Ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21.alibaba/happy-horse: Alibaba Happy Horse text-to-video model. High-quality video generation from text. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/reference-to-video: Alibaba Happy Horse reference-to-video. Generate video from 1-9 reference images; address subjects in the prompt as character1..character9 (order matches image_urls). Requires image_urls. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/video-edit: Alibaba Happy Horse video-edit. Edit a source video using a text prompt; optional 1-5 reference images addressed as @Image1..@Image5. Requires video_url (MP4/MOV, 3-60s). Output preserves source aspect ratio, capped at 15s. Resolution: 720p, 1080p.gemini/omni-flash: Google's multimodal video model with native audio. Supports text-to-video, image-to-video (1 image as first frame), reference-to-video (set reference_mode with image_urls to use images as subject/style references — even a single image; 2+ images are references by default), and video editing (pass video_url to edit an existing clip — restyle, restage, add objects). Bind image roles in the prompt with <FIRST_FRAME> / <IMAGE_REF_0>. Ratios: 16:9, 9:16. Duration: 3-10s. Resolution: 720p. (string, one of: kling/v3, gemini/veo3.1, gemini/veo3.1/reference-to-video, gemini/veo3.1/first-last-frame-to-video, minimax/hailuo-2.3/standard, wan/v2.7, vidu/q3, runway/gen4_turbo, pixverse/v6, fal-ai/bytedance/seedance-2.0, fal-ai/bytedance-upscaler/upscale/video, xai/grok-imagine-video, xai/grok-imagine-video/video-extension, alibaba/happy-horse, alibaba/happy-horse/reference-to-video, alibaba/happy-horse/video-edit, gemini/omni-flash) |
35
+ | `-m`, `--model` | Yes | The model to use for video generation. kling/v3: Latest Kling V3. Supports native audio, but generates a SILENT video unless audio_enable=true. Pro/Standard/Turbo tiers (set via the tier parameter; turbo is the fastest arm but has no audio and no first/last-frame control). Supported ratios: 16:9, 9:16, 1:1. Duration: 3-15s. gemini/veo3.1: Gemini Veo 3.1 - Latest version with enhanced quality and features. Supports text-to-video and image-to-video generation with improved quality. Duration: 8s. Supported ratios: 16:9, 9:16. Supports tier (standard \| fast) and hd_mode (1080p quality). gemini/veo3.1/reference-to-video: Gemini Veo 3.1 Reference-to-Video mode. Generate video using multiple reference images to guide the generation. Requires 1+ reference images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports tier (standard \| fast) and hd_mode options. gemini/veo3.1/first-last-frame-to-video: Veo 3.1 First-Last Frame mode. Generate video by specifying first and last frames for precise transitions. Requires exactly 2 images. Duration: 8s. Supported ratios: 16:9, 9:16. Supports tier (standard \| fast) and hd_mode options.minimax/h3: MiniMax H3 next-generation 2K video model. Supports text-to-video, image-to-video with first/last frame control, and reference-to-video (up to 9 reference images, 3 reference videos, 3 reference audio clips refer to them in the prompt as 'Image 1', 'Video 1', 'Audio 1', not @-style). Keyframes and references are mutually exclusive. Supported ratios: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Duration: 5-15s. Resolution: 2K. wan/v2.7: Wan v2.7 with enhanced motion smoothness and scene fidelity. Supports text-to-video, image-to-video, reference-to-video, and edit-video. Ratios: 16:9, 9:16, 1:1. Duration: 5s. Resolution: 480p, 720p vidu/q3: Vidu Q3 model with enhanced quality and audio generation. Supports text-to-video, image-to-video, and reference-to-video (reference_mode with 1-4 image_urls keeps subjects/scenes consistent; no turbo tier in reference mode). tier=turbo runs the faster turbo arm at half the price. Supported ratios: 16:9, 9:16, 4:3, 3:4, 1:1. Duration: 1-16s. Resolution: 720p, 1080prunway/gen4_turbo: A model for generate video with high quality, fast.Supported ratios: 5:3, 3:5. Only support i2v. Duration: 5s, 10spixverse/v6: PixVerse V6 latest model with lifelike motion, richer skin detail, real emotions. Full cinematic control including choreography and camera. Supports text-to-video, image-to-video, transition, and video extend generation. VFX, time-lapse, transformation scenes, product demos, 360° views, multi-shot storytelling. Extend: pass video_url to extend an existing video. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8s. pixverse/c1: PixVerse C1 with native audio (audio_enable=true), text-to-video, image-to-video, transitions (2 images = first/last frame) and reference-to-video (reference_mode with 1-7 image_urls; address them in the prompt as @image1..@image7). No video extend. Supported ratios: 16:9, 9:16, 4:3, 3:4, 1:1, 3:2, 2:3, 21:9. Duration: 1-15s. Resolution: 360p, 540p, 720p, 1080p. fal-ai/bytedance/seedance-2.0: Bytedance Seedance 2.0 model for highest quality video generation with native audio and lip-sync. Supports text-to-video and image-to-video with first/last frame control. Supported ratios: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Duration: 4-15s. Resolution: 480p, 720p; hd_mode renders native 1080p (~2.25x cost; fast/mini tiers stay 720p). tier picks the variant: standard, fast, or mini (cheapest, ~half the standard price). Also supports reference-to-video with up to 9 images, 3 videos, or 3 audio refs via settings.fal-ai/bytedance-upscaler/upscale/video: ByteDance Video Upscaler for enhancing video quality. Upscales videos to higher resolutions (2k) Requires video_url parameter. Does NOT generate new videos. Use when user wants to improve quality of existing videos.xai/grok-imagine-video: xAI Grok Imagine Video v1.5 for high-quality video generation. Supports both text-to-video and image-to-video generation. 480p/720p/1080p output. Flexible duration 1-15 seconds. Supported ratios: 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16. Duration: 1-15s. xai/grok-imagine-video/video-extension: xAI Grok Imagine Video Extension for extending existing videos. Requires video_url parameter with source video URL (MP4, 2-15s). 720p HD output. Duration: 2-10s. Ratios: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, 9:21.alibaba/happy-horse: Alibaba Happy Horse video model. High-quality generation from text, or image-to-video from a single first-frame image (one image_url without reference_mode). Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/reference-to-video: Alibaba Happy Horse reference-to-video. Generate video from 1-9 reference images; address subjects in the prompt as character1..character9 (order matches image_urls). Requires image_urls. Supported ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5. Duration: 3-15s. Resolution: 720p, 1080p.alibaba/happy-horse/video-edit: Alibaba Happy Horse video-edit. Edit a source video using a text prompt; optional 1-5 reference images addressed as @Image1..@Image5. Requires video_url (MP4/MOV, 3-60s). Output preserves source aspect ratio, capped at 15s. Resolution: 720p, 1080p.gemini/omni-flash: Google's multimodal video model with native audio. Supports text-to-video, image-to-video (1 image as first frame), reference-to-video (set reference_mode with image_urls to use images as subject/style references — even a single image; 2+ images are references by default), and video editing (pass video_url to edit an existing clip — restyle, restage, add objects). Bind image roles in the prompt with <FIRST_FRAME> / <IMAGE_REF_0>. Ratios: 16:9, 9:16. Duration: 3-10s. Resolution: 720p. (string, one of: kling/v3, gemini/veo3.1, gemini/veo3.1/reference-to-video, gemini/veo3.1/first-last-frame-to-video, minimax/h3, wan/v2.7, vidu/q3, runway/gen4_turbo, pixverse/v6, pixverse/c1, fal-ai/bytedance/seedance-2.0, fal-ai/bytedance-upscaler/upscale/video, xai/grok-imagine-video, xai/grok-imagine-video/video-extension, alibaba/happy-horse, alibaba/happy-horse/reference-to-video, alibaba/happy-horse/video-edit, gemini/omni-flash) |
36
36
  | `-i`, `--image_urls` | No | The URLs of the images to use as reference key frames for the video generation. For single image models, provide 1 image. For multi-image models (like kling/v1.6/pro/elements), provide 1-4 images in sequence order. For start-end models (like vidu, pixverse), provide exactly 2 images (start and end frames). (default is [], if the task is based on one or more reference images, it is required) IMPORTANT: without reference_mode, the first image becomes the video's literal opening frame — identity markers visible in it (flags, jerseys, text, logos, faces) persist in the output and the text prompt CANNOT override them. When generating a batch of subject-specific clips (per-country / per-person / per-product), each clip needs an image matching its own subject — never reuse another subject's image. (array) |
37
- | `-r`, `--aspect_ratio` | No | The aspect ratio of the video to generate. For image-to-video (i2v) generation, this should match the aspect ratio of your input image(s). Ratios unsupported by the chosen model fall back to its default. (string, one of: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21, 5:4, 4:5, 5:3, 3:5) |
37
+ | `-r`, `--aspect_ratio` | No | The aspect ratio of the video to generate. For image-to-video (i2v) generation, this should match the aspect ratio of your input image(s). Ratios unsupported by the chosen model fall back to its default (5:4 and 4:5 are only supported by alibaba/happy-horse; 3:2 and 2:3 by pixverse/c1 and grok-imagine-video). OMIT this parameter for MiniMax H3's native adaptive framing (adaptive is not an enum value). (string, one of: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21, 5:4, 4:5) |
38
38
  | `-d`, `--duration` | No | The duration of the video to generate in seconds. (number, default: `5`) |
39
39
  | `-a`, `--audio_url` | No | Audio URL for audio integration in video generation. - Optional for Wan v2.5 model (custom audio: music or speech, WAV/MP3, 3-10s, up to 15MB) - Required for OmniHuman model (audio-driven animation) Leave empty if no audio is needed. (string, default: ``) |
40
40
  | `--video_url` | No | Source video URL for video extension. Required for Grok Imagine Video Extension (extend existing video). Supports both web URLs and AI Drive paths (starting with '/' or 'aidrive://') (string, default: ``) |
41
- | `--video_urls` | No | Reference video URLs for reference-to-video models. For Wan v2.7 and Seedance 2.0 reference-to-video: provide 1-3 reference videos and refer to them in the prompt as @Video1, @Video2, @Video3. Seedance 2.0 also needs reference_mode plus at least one image_url; combined video duration 2-15s. (array, default: `[]`) |
42
- | `--audio_urls` | No | Reference audio URLs for Seedance 2.0 reference-to-video. Provide up to 3 audio clips (MP3/WAV) and refer to them in the prompt as @Audio1, @Audio2, @Audio3 (e.g. to drive lip-sync or match a voice). Combined duration must not exceed 15s. Requires reference_mode plus at least one image_url (image_urls is what activates the seedance-2.0/ref route). Distinct from audio_url, the single-clip Wan v2.5 / OmniHuman field. (array, default: `[]`) |
41
+ | `--video_urls` | No | Reference video URLs for reference-to-video models. For Wan v2.7 and Seedance 2.0 reference-to-video: provide 1-3 reference videos and refer to them in the prompt as @Video1, @Video2, @Video3. Seedance 2.0 also needs reference_mode plus at least one image_url; combined video duration 2-15s. For MiniMax H3: up to 3 motion reference videos (each 2-15s, ≤15s combined), referred to in the prompt as 'Video 1' etc. (array, default: `[]`) |
42
+ | `--audio_urls` | No | Reference audio URLs for reference-to-video models. For Seedance 2.0: provide up to 3 audio clips (MP3/WAV) and refer to them in the prompt as @Audio1, @Audio2, @Audio3 (e.g. to drive lip-sync or match a voice). Combined duration must not exceed 15s. Requires reference_mode plus at least one image_url (image_urls is what activates the seedance-2.0/ref route). For MiniMax H3: up to 3 audio references (each 2-15s, ≤15s combined; 'Audio 1' prompt style), must be paired with at least one reference image or video. Distinct from audio_url, the single-clip Wan v2.5 / OmniHuman field. (array, default: `[]`) |
43
43
  | `--repo_id` | No | Optional. Second Brain repo id (provided in the agent's system prompt). Required only when image_urls / audio_url / video_url / video_urls contain relative paths from a Second Brain project (e.g. 'assets/clip.mp4'). Absolute http(s) URLs and data: URLs do not need this parameter. (string) |
44
- | `--fast_mode` | No | Enable fast mode for quicker generation at lower cost. Applicable to Veo 3.1 and Seedance 2.0 models. Default: false. (boolean, default: `False`) |
45
- | `--hd_mode` | No | Enable HD (1080p) mode for higher quality output. Only applicable to Veo 3.1 models. Higher cost (2x). Default: false. (boolean, default: `False`) |
46
- | `--reference_mode` | No | Enable reference-to-video mode: provided images guide character/style rather than being used as the first frame. Requires image_urls. For Seedance 2.0: routes to seedance-2.0/ref (combinable with fast_mode, supports up to 9 reference images plus optional reference video/audio). For Veo 3.1 base model: upgrades to veo3.1/reference-to-video. Ignored on other models. Default: false. (boolean, default: `False`) |
44
+ | `--audio_enable` | No | Set true when the user wants audio, voiceover, or narration. kling/v3 outputs a SILENT video unless true (audio costs more per second). Omit to keep each model's default (kling: off; seedance/veo: on). (boolean) |
45
+ | `--tier` | No | Model tier (options are model-specific — check get_model_info tier_options). Seedance 2.0: standard \| fast (quicker/cheaper, 720p cap) \| mini (cheapest, ~half the standard price, 720p cap). Veo 3 / Veo 3.1 family: standard \| fast (quicker, lower cost). Kling V3: pro \| standard \| turbo (fastest, no audio/frame control). Kling O3/Motion Control: pro \| standard. Vidu Q3: standard \| turbo (half price). Models without tiers ignore it. (string, one of: standard, fast, mini, pro, turbo) |
46
+ | `--hd_mode` | No | Enable HD (1080p) mode for higher quality output. Applicable to Veo 3.1 (2x cost) and Seedance 2.0 standard/reference (~2.25x cost; fast tier stays 720p). Default: false. (boolean, default: `False`) |
47
+ | `--reference_mode` | No | Enable reference-to-video mode: provided images guide character/style rather than being used as the first frame. Requires image_urls. For Seedance 2.0: routes to seedance-2.0/ref (combinable with the fast/mini tiers, supports up to 9 reference images plus optional reference video/audio). For Veo 3.1 base model: upgrades to veo3.1/reference-to-video. For MiniMax H3: treats images as subject/style references instead of keyframes (any video_urls/audio_urls also force reference mode). For Vidu Q3: routes to the reference-to-video mix endpoint (1-4 reference images). For PixVerse C1: 1-7 subject references (@image1..@image7 in the prompt). Ignored on other models. Default: false. (boolean, default: `False`) |
47
48
 
48
49
  ## Local File Support
49
50
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: gsk-youtube
3
3
  version: 1.0.0
4
- description: 'YouTube operations. Actions: search, transcript, comments.'
4
+ description: 'YouTube operations. Actions: search (find videos by keyword), transcript
5
+ (read a video''s spoken content by video id), comments.'
5
6
  metadata:
6
7
  category: general
7
8
  requires:
@@ -14,7 +15,7 @@ metadata:
14
15
 
15
16
  **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
17
 
17
- YouTube operations. Actions: search, transcript, comments.
18
+ YouTube operations. Actions: search (find videos by keyword), transcript (read a video's spoken content by video id), comments.
18
19
 
19
20
  ## Usage
20
21
 
@@ -28,8 +29,8 @@ gsk yt [options]
28
29
 
29
30
  | Flag | Required | Description |
30
31
  |------|----------|-------------|
31
- | `<action>` (positional) | Yes | Action to perform. 'search': Search for YouTube videos by keyword; 'transcript': Extract transcript and metadata from a YouTube video; 'comments': Scrape comments from a YouTube video (string, one of: search, transcript, comments) |
32
- | `--query` | No | [search] The query to search video (string) |
32
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search YouTube videos by a keyword query; 'transcript': Get a video's transcript and metadata by video id — the video-understanding tool (subtitle text, no visual frames); 'comments': Scrape comments from a YouTube video (string, one of: search, transcript, comments) |
33
+ | `--query` | No | [search] Keyword query to find videos (string) |
33
34
  | `--video_id` | No | [transcript] The video id of the youtube video. (string) |
34
35
  | `--provide_download_link` | No | [transcript] Whether to provide a download link for the video transcript. (boolean) |
35
36
  | `--video_url` | No | [comments] YouTube video URL. Supports youtube.com/watch?v=, youtu.be/, and youtube.com/shorts/ formats. (string) |