@genspark/cli 1.0.11 → 1.0.12

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 (34) hide show
  1. package/docs/skills.md +22 -11
  2. package/package.json +1 -1
  3. package/skills/gsk-audio-generation/SKILL.md +1 -1
  4. package/skills/gsk-audio-processing/SKILL.md +47 -0
  5. package/skills/gsk-batch-crawl-url-and-answer/SKILL.md +37 -0
  6. package/skills/gsk-claw-share-link/SKILL.md +39 -0
  7. package/skills/gsk-github/SKILL.md +52 -0
  8. package/skills/gsk-gmail/SKILL.md +70 -0
  9. package/skills/gsk-google-calendar/SKILL.md +50 -0
  10. package/skills/gsk-google-contacts/SKILL.md +51 -0
  11. package/skills/gsk-google-docs/SKILL.md +40 -0
  12. package/skills/gsk-google-drive/SKILL.md +47 -0
  13. package/skills/gsk-google-sheets/SKILL.md +45 -0
  14. package/skills/gsk-meeting/SKILL.md +43 -0
  15. package/skills/gsk-microsoft-teams/SKILL.md +53 -0
  16. package/skills/gsk-notion/SKILL.md +39 -0
  17. package/skills/gsk-onedrive/SKILL.md +44 -0
  18. package/skills/gsk-outlook-calendar/SKILL.md +53 -0
  19. package/skills/gsk-outlook-contacts/SKILL.md +36 -0
  20. package/skills/gsk-outlook-email/SKILL.md +82 -0
  21. package/skills/gsk-shared/SKILL.md +1 -1
  22. package/skills/gsk-sharepoint/SKILL.md +51 -0
  23. package/skills/gsk-slack/SKILL.md +46 -0
  24. package/skills/gsk-video-generation/SKILL.md +4 -3
  25. package/skills/gsk-voice-cloning/SKILL.md +42 -0
  26. package/skills/gsk-calendar-create/SKILL.md +0 -42
  27. package/skills/gsk-calendar-list/SKILL.md +0 -36
  28. package/skills/gsk-email-list/SKILL.md +0 -38
  29. package/skills/gsk-email-read/SKILL.md +0 -36
  30. package/skills/gsk-email-search/SKILL.md +0 -39
  31. package/skills/gsk-email-send/SKILL.md +0 -64
  32. package/skills/gsk-meeting-get/SKILL.md +0 -34
  33. package/skills/gsk-meeting-list/SKILL.md +0 -34
  34. package/skills/gsk-meeting-search/SKILL.md +0 -39
package/docs/skills.md CHANGED
@@ -2,31 +2,41 @@
2
2
 
3
3
  > Auto-generated by `python -m backend.genspark_tool_cli.generate_skills`. Do not edit manually.
4
4
 
5
- **Total skills:** 28
5
+ **Total skills:** 39
6
6
 
7
- ## Service Skills (28)
7
+ ## Service Skills (39)
8
8
 
9
9
  | Skill | Description |
10
10
  |-------|-------------|
11
11
  | [gsk-aidrive](../skills/gsk-aidrive/SKILL.md) | AI-Drive file storage and management. Actions: ls, mkdir, rm, move, get_readable_url, download_video, download_audio, do |
12
12
  | [gsk-analyze-media](../skills/gsk-analyze-media/SKILL.md) | Analyze various types of media content including images, audio, and video. |
13
13
  | [gsk-audio-generation](../skills/gsk-audio-generation/SKILL.md) | Generate audio content including TTS, sound effects, and music. |
14
+ | [gsk-audio-processing](../skills/gsk-audio-processing/SKILL.md) | Preprocess audio: remove background noise, extract specific sounds, or enhance quality. |
14
15
  | [gsk-audio-transcribe](../skills/gsk-audio-transcribe/SKILL.md) | Transcribe audio files to text with word-level timestamps. |
15
- | [gsk-calendar-create](../skills/gsk-calendar-create/SKILL.md) | Create a new calendar event in Google Calendar or Outlook. |
16
- | [gsk-calendar-list](../skills/gsk-calendar-list/SKILL.md) | List upcoming calendar events from Google Calendar or Outlook. |
16
+ | [gsk-batch-crawl-url-and-answer](../skills/gsk-batch-crawl-url-and-answer/SKILL.md) | Crawl multiple URLs in parallel and answer specific questions from each. More efficient than calling crawler multiple ti |
17
+ | [gsk-claw-share-link](../skills/gsk-claw-share-link/SKILL.md) | Generate a time-limited share URL for a file on a Genspark Claw VM. Use when the user is not in the web UI and you need |
17
18
  | [gsk-crawler](../skills/gsk-crawler/SKILL.md) | Crawl and extract content from web pages. Supports HTML, PDF, and documents. |
18
19
  | [gsk-create-task](../skills/gsk-create-task/SKILL.md) | Create and execute tasks using specialized AI agents. Supports super_agent, podcasts, docs, slides, deep_research, websi |
19
- | [gsk-email-list](../skills/gsk-email-list/SKILL.md) | List emails from a folder (inbox, sent, drafts, etc.). |
20
- | [gsk-email-read](../skills/gsk-email-read/SKILL.md) | Read a specific email by its ID. |
21
- | [gsk-email-search](../skills/gsk-email-search/SKILL.md) | Search emails using a query string. Works with Gmail (GQL) and Outlook (KQL) accounts. |
22
- | [gsk-email-send](../skills/gsk-email-send/SKILL.md) | Send a new email message via Gmail or Outlook. |
23
20
  | [gsk-get-service-url](../skills/gsk-get-service-url/SKILL.md) | Get the public HTTPS URL for a service running on the sandbox. Use this to access web servers, APIs, or applications fro |
21
+ | [gsk-github](../skills/gsk-github/SKILL.md) | GitHub operations. Actions: list_repos, search_issues, create_issue, update_issue. |
22
+ | [gsk-gmail](../skills/gsk-gmail/SKILL.md) | Gmail operations. Actions: search, read, send, reply, forward, delete, archive, move, mark_as_read, add_label, remove_la |
23
+ | [gsk-google-calendar](../skills/gsk-google-calendar/SKILL.md) | Google Calendar operations. Actions: list, create, delete. |
24
+ | [gsk-google-contacts](../skills/gsk-google-contacts/SKILL.md) | Google Contacts operations. Actions: search, get, create, update. |
25
+ | [gsk-google-docs](../skills/gsk-google-docs/SKILL.md) | Google Docs document operations. Actions: create, read, append, search. |
26
+ | [gsk-google-drive](../skills/gsk-google-drive/SKILL.md) | Google Drive file operations. Actions: search, read, upload. |
27
+ | [gsk-google-sheets](../skills/gsk-google-sheets/SKILL.md) | Google Sheets spreadsheet operations. Actions: create, read, write, append, search, export. |
24
28
  | [gsk-image-generation](../skills/gsk-image-generation/SKILL.md) | Generate images using AI models. Supports text-to-image and image editing. |
25
29
  | [gsk-image-search](../skills/gsk-image-search/SKILL.md) | Search for images on the web. Returns image URLs, titles, and source information. |
26
- | [gsk-meeting-get](../skills/gsk-meeting-get/SKILL.md) | Get details of a specific meeting note. |
27
- | [gsk-meeting-list](../skills/gsk-meeting-list/SKILL.md) | List meeting notes ordered by creation date. |
28
- | [gsk-meeting-search](../skills/gsk-meeting-search/SKILL.md) | Search meeting notes by keyword using full-text search. |
30
+ | [gsk-meeting](../skills/gsk-meeting/SKILL.md) | Meeting notes operations. Actions: list, search, get. |
31
+ | [gsk-microsoft-teams](../skills/gsk-microsoft-teams/SKILL.md) | Microsoft Teams operations. Actions: send, list_channels, list_chats, list_teams, search, search_users, create_chat. |
32
+ | [gsk-notion](../skills/gsk-notion/SKILL.md) | Notion page operations. Actions: search, read, create. |
33
+ | [gsk-onedrive](../skills/gsk-onedrive/SKILL.md) | OneDrive file operations. Actions: list, search, read. |
34
+ | [gsk-outlook-calendar](../skills/gsk-outlook-calendar/SKILL.md) | Outlook Calendar operations. Actions: list, create, delete. |
35
+ | [gsk-outlook-contacts](../skills/gsk-outlook-contacts/SKILL.md) | Outlook Contacts operations. Actions: search. |
36
+ | [gsk-outlook-email](../skills/gsk-outlook-email/SKILL.md) | Outlook Email operations. Actions: search, read, send, reply, reply_draft, forward, delete, archive, move, mark_as_read, |
29
37
  | [gsk-phone-call](../skills/gsk-phone-call/SKILL.md) | Make an AI phone call on your behalf. Validates user prerequisites (membership, phone setup, credits) and resolves conta |
38
+ | [gsk-sharepoint](../skills/gsk-sharepoint/SKILL.md) | SharePoint site and file operations. Actions: list, search, read_content, read_file. |
39
+ | [gsk-slack](../skills/gsk-slack/SKILL.md) | Slack messaging operations. Actions: send, search, lookup. |
30
40
  | [gsk-social-instagram](../skills/gsk-social-instagram/SKILL.md) | Search and retrieve data from Instagram: posts, users, comments, and connections. |
31
41
  | [gsk-social-reddit](../skills/gsk-social-reddit/SKILL.md) | Search and retrieve data from Reddit: posts, comments, users, and subreddits. |
32
42
  | [gsk-social-twitter](../skills/gsk-social-twitter/SKILL.md) | Search and retrieve data from Twitter/X: posts, users, comments, retweets, and more. |
@@ -35,4 +45,5 @@
35
45
  | [gsk-understand-images](../skills/gsk-understand-images/SKILL.md) | Analyze and understand images. Supports multiple images and custom analysis instructions. |
36
46
  | [gsk-video-generation](../skills/gsk-video-generation/SKILL.md) | Generate videos using AI models. Supports text-to-video and image-to-video generation. |
37
47
  | [gsk-vm-email-send](../skills/gsk-vm-email-send/SKILL.md) | Send an email from your OpenClaw VM's email address. Recipient must be in the VM's email allowlist or be your own login |
48
+ | [gsk-voice-cloning](../skills/gsk-voice-cloning/SKILL.md) | Clone a voice from an audio sample using Minimax. Returns a voice ID for use with Minimax TTS. |
38
49
  | [gsk-web-search](../skills/gsk-web-search/SKILL.md) | Search the web. Returns search results with titles, snippets, and URLs. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genspark/cli",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "CLI tool for Genspark Tool API - search, crawl, analyze images, generate media",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,7 +29,7 @@ gsk audio [options]
29
29
  | Flag | Required | Description |
30
30
  |------|----------|-------------|
31
31
  | `<query>` (positional) | No | For text-to-speech generation: - For google/gemini-2.5-pro-preview-tts: Can use script_url field or query field. When using multi-speaker, include speaker prefixes like 'Speaker1: Hello there! Speaker2: Hi back!' - For elevenlabs/v3-tts: Supports both single and multi-speaker generation. For multi-speaker, include speaker prefixes like 'Speaker 1: Hello there! Speaker 2: Hi back!' - For other TTS models (Minimax): Use plain text without character names (e.g., use 'That's not what she meant, fatass.' instead of 'STAN: That's not what she meant, fatass.' as the character name will be pronounced). For sound effects, provide a detailed description of the audio to generate (e.g., 'A keyboard typing sound, rain, wind, etc.').For background music, provide a detailed description of the music to generate.must be in English if choosing CassetteAI/music-generator music generation.(e.g., 'Smooth chill hip-hop beat with mellow piano melodies, deep bass, and soft drums, perfect for a night drive. Key: D Minor, Tempo: 90 BPM.'). (string) |
32
- | `-m`, `--model` | Yes | The model to use for audio generation. google/gemini-2.5-pro-preview-tts: Best, high-quality, realistic tone text-to-speech model. Supports one or multiple speakers in one generation with speaker prefixes (e.g., 'Speaker1: text, Speaker2: text').elevenlabs/v3-tts: Advanced multilingual text-to-speech model with multi-speaker dialogue support. Supports emotional tags like [excited], [whispers], [laughs]. Best for expressive content and conversations.fal-ai/elevenlabs/tts/multilingual-v2: High-quality multilingual text-to-speech model. For English, this is a preferred model.fal-ai/minimax/speech-2.8-hd: High-quality multilingual text-to-speech model. For Chinese, 'Chinese,Yue', Japanese, Korean, this is a preferred model. Note: Only one speaker can be used per generation. For multiple characters, please generate them one by one in sequence. elevenlabs/sound-effects: Sound effect generation model. Minimum duration is 0.1 seconds, maximum is 22 seconds.elevenlabs/music: ElevenLabs music generation model. Supports both instrumental music AND songs with vocals/singing. NOTE: Does NOT support custom lyrics - lyrics are auto-generated. Minimum duration is 10 seconds, maximum is 5 minutes (300 seconds). Professional music production quality.elevenlabs/voice-clone: ElevenLabs voice cloning model. Clone a voice from audio samples. Returns voice ID for use in TTS generation.elevenlabs/voice-changer: ElevenLabs voice changer model. Transform audio from one voice to another. Requires source audio and target voice ID.CassetteAI/music-generator: Background music generation model. minimum duration is 10 seconds, maximum is up to 180 seconds.mureka/song-generator: Professional song generation with lyrics. Supports style prompts, reference tracks, vocal and melody inputs. Generate full songs with vocals. Maximum duration is 180 seconds.mureka/instrumental-generator: Instrumental music generation. Create background music and instrumental tracks without vocals. Supports style prompts and reference tracks. Maximum duration is 180 seconds.fal-ai/lyria2: using Google's Lyria 2 text-to-music model. The model is good at generating music for sound effects and lyrics-free music.maximum duration is 30 seconds.fal-ai/minimax-music/v2.5: Song generation with lyrics using MiniMax Music 2.5. High-fidelity audio with humanized vocals. Supports markers (Verse), (Chorus), (Bridge), (Outro), (Instrumental intro). Requires both style prompt and lyrics. (string, one of: google/gemini-2.5-pro-preview-tts, fal-ai/elevenlabs/tts/multilingual-v2, elevenlabs/v3-tts, elevenlabs/sound-effects, elevenlabs/music, elevenlabs/voice-clone, elevenlabs/voice-changer, CassetteAI/music-generator, fal-ai/minimax/speech-2.8-hd, fal-ai/minimax-music/v2.5, mureka/song-generator, mureka/instrumental-generator, fal-ai/lyria2) |
32
+ | `-m`, `--model` | Yes | The model to use for audio generation. google/gemini-2.5-pro-preview-tts: Best, high-quality, realistic tone text-to-speech model. Supports one or multiple speakers in one generation with speaker prefixes (e.g., 'Speaker1: text, Speaker2: text').elevenlabs/v3-tts: Advanced multilingual text-to-speech model with multi-speaker dialogue support. Supports emotional tags like [excited], [whispers], [laughs]. Best for expressive content and conversations.fal-ai/elevenlabs/tts/multilingual-v2: High-quality multilingual text-to-speech model. For English, this is a preferred model.fal-ai/minimax/speech-2.8-hd: High-quality multilingual text-to-speech model. For Chinese, 'Chinese,Yue', Japanese, Korean, this is a preferred model. Note: Only one speaker can be used per generation. For multiple characters, please generate them one by one in sequence. elevenlabs/sound-effects: Sound effect generation model. Minimum duration is 0.1 seconds, maximum is 22 seconds.elevenlabs/music: ElevenLabs music generation model. Supports both instrumental music AND songs with vocals/singing. NOTE: Does NOT support custom lyrics - lyrics are auto-generated. Minimum duration is 10 seconds, maximum is 5 minutes (300 seconds). Professional music production quality.elevenlabs/voice-clone: ElevenLabs voice cloning model. Clone a voice from audio samples. Returns voice ID for use in TTS generation.elevenlabs/voice-changer: ElevenLabs voice changer model. Transform audio from one voice to another. Requires source audio and target voice ID.CassetteAI/music-generator: Background music generation model. minimum duration is 10 seconds, maximum is up to 180 seconds.mureka/song-generator: Professional song generation with lyrics. Supports style prompts, reference tracks, vocal and melody inputs. Generate full songs with vocals. Maximum duration is 180 seconds.mureka/instrumental-generator: Instrumental music generation. Create background music and instrumental tracks without vocals. Supports style prompts and reference tracks. Maximum duration is 180 seconds.fal-ai/minimax/voice-clone: Voice cloning model. Clone a voice from a sample audio and generate speech from text prompts.fal-ai/lyria2: using Google's Lyria 2 text-to-music model. The model is good at generating music for sound effects and lyrics-free music.maximum duration is 30 seconds.fal-ai/minimax-music/v2.5: Song generation with lyrics using MiniMax Music 2.5. High-fidelity audio with humanized vocals. Supports markers (Verse), (Chorus), (Bridge), (Outro), (Instrumental intro). Requires both style prompt and lyrics. (string, one of: google/gemini-2.5-pro-preview-tts, fal-ai/elevenlabs/tts/multilingual-v2, elevenlabs/v3-tts, elevenlabs/sound-effects, elevenlabs/music, elevenlabs/voice-clone, elevenlabs/voice-changer, CassetteAI/music-generator, fal-ai/minimax/speech-2.8-hd, fal-ai/minimax-music/v2.5, mureka/song-generator, mureka/instrumental-generator, fal-ai/minimax/voice-clone, fal-ai/lyria2) |
33
33
  | `-r`, `--requirements` | No | Required parameters for TTS generation. If you know the speaker name, you can also pass it in the requirementsDetailed description of how the TTS should be generated, including voice characteristics, emotion, pacing, accent, tone, etc. For example: 'A calm, professional female voice with British accent reading at moderate pace'.or 'Speaker1: Algenib, Speaker2: Kore' if you want to use specific speakersThis will be used by the agent to determine the appropriate voice and style parameters (string) |
34
34
  | `--previous_audio_params` | No | Required parameters for TTS generation. The `generated_audios[].params` object from previous generation,get from previous tool call, when you need to fix the voice of a specific character, it will be useful. (object) |
35
35
  | `-d`, `--duration` | No | The desired duration of the generated audio in seconds. Only applicable for sound effects generation.Default is 0, which means the model will determine the appropriate duration.For background music generation, set default to 30 seconds. (number, default: `0`) |
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: gsk-audio-processing
3
+ version: 1.0.0
4
+ description: 'Preprocess audio: remove background noise, extract specific sounds,
5
+ or enhance quality.'
6
+ metadata:
7
+ category: general
8
+ requires:
9
+ bins:
10
+ - gsk
11
+ cliHelp: gsk audio-process --help
12
+ ---
13
+
14
+ # gsk-audio-processing
15
+
16
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
+
18
+ Preprocess audio: remove background noise, extract specific sounds, or enhance quality.
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ gsk audio-process [options]
24
+ ```
25
+
26
+ **Aliases:** `audio-process`, `ap`
27
+
28
+ ## Flags
29
+
30
+ | Flag | Required | Description |
31
+ |------|----------|-------------|
32
+ | `<audio_url>` (positional) | Yes | URL or path to the audio file to process. Required for all models. (string) |
33
+ | `-m`, `--model` | Yes | elevenlabs/audio-isolation: Remove background noise, music, and non-speech elements from audio. Isolates clean vocals/speech. Best for cleaning up recordings before voice cloning. fal-ai/sam-audio/separate: Extract specific sounds from audio using a text prompt (e.g. 'singing voice', 'piano', 'drums'). Returns both the extracted sound and the residual. nova-sr: Enhance audio quality via super-resolution. Upscales to 48kHz sample rate. Good as a final post-processing step. (string, one of: elevenlabs/audio-isolation, fal-ai/sam-audio/separate, nova-sr) |
34
+ | `-p`, `--prompt` | No | Text prompt describing which sound to extract. Required for fal-ai/sam-audio/separate. Examples: 'singing voice', 'speech', 'piano', 'drums', 'background music'. (string) |
35
+ | `-f`, `--output_format` | No | Output audio format. For fal-ai/sam-audio: 'wav' or 'mp3'. For nova-sr: 'mp3', 'wav', 'aac', 'ogg', 'flac'. Default: 'mp3'. (string, default: `mp3`) |
36
+
37
+ ## Local File Support
38
+
39
+ Parameters that accept URLs (`<audio_url>`) also accept local file paths. The CLI automatically uploads local files before sending to the API.
40
+
41
+ ## Output File
42
+
43
+ Use `-o <path>` / `--output-file <path>` to download the generated result directly to a local file.
44
+
45
+ ## See Also
46
+
47
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: gsk-batch-crawl-url-and-answer
3
+ version: 1.0.0
4
+ description: 'Crawl multiple URLs in parallel and answer specific questions from each.
5
+ More efficient than calling crawler multiple times. Input: list of {url, questions_to_answer}
6
+ jobs.'
7
+ metadata:
8
+ category: general
9
+ requires:
10
+ bins:
11
+ - gsk
12
+ cliHelp: gsk batch-crawl --help
13
+ ---
14
+
15
+ # gsk-batch-crawl-url-and-answer
16
+
17
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
18
+
19
+ Crawl multiple URLs in parallel and answer specific questions from each. More efficient than calling crawler multiple times. Input: list of {url, questions_to_answer} jobs.
20
+
21
+ ## Usage
22
+
23
+ ```bash
24
+ gsk batch-crawl [options]
25
+ ```
26
+
27
+ **Aliases:** `batch-crawl`
28
+
29
+ ## Flags
30
+
31
+ | Flag | Required | Description |
32
+ |------|----------|-------------|
33
+ | `<jobs>` (positional) | Yes | A list of objects, each containing a URL to crawl and a list of questions to answer from that URL. (array) |
34
+
35
+ ## See Also
36
+
37
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: gsk-claw-share-link
3
+ version: 1.0.0
4
+ description: Generate a time-limited share URL for a file on a Genspark Claw VM. Use
5
+ when the user is not in the web UI and you need to share a generated file.
6
+ metadata:
7
+ category: claw
8
+ requires:
9
+ bins:
10
+ - gsk
11
+ cliHelp: gsk claw share_link --help
12
+ ---
13
+
14
+ # gsk-claw-share-link
15
+
16
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
+
18
+ Generate a time-limited share URL for a file on a Genspark Claw VM. Use when the user is not in the web UI and you need to share a generated file.
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ gsk claw share_link [options]
24
+ ```
25
+
26
+ **Aliases:** `share-link`
27
+
28
+ ## Flags
29
+
30
+ | Flag | Required | Description |
31
+ |------|----------|-------------|
32
+ | `-n`, `--vm_name` | Yes | Name of the VM that hosts the file. (string) |
33
+ | `<path>` (positional) | Yes | Absolute file path on the VM (e.g. /home/user/report.pdf). (string) |
34
+ | `-e`, `--expires_minutes` | No | Link validity in minutes, 1–1440. Default 10. (integer) |
35
+ | `-p`, `--password` | No | Optional password to protect the share link. Recipients must enter this password to view the file. Must be at least 8 characters with letters, digits, and special characters (e.g. 'xK9#mP2q'). Do NOT use simple dictionary words. (string) |
36
+
37
+ ## See Also
38
+
39
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: gsk-github
3
+ version: 1.0.0
4
+ description: 'GitHub operations. Actions: list_repos, search_issues, create_issue,
5
+ update_issue.'
6
+ metadata:
7
+ category: general
8
+ requires:
9
+ bins:
10
+ - gsk
11
+ cliHelp: gsk github --help
12
+ ---
13
+
14
+ # gsk-github
15
+
16
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
+
18
+ GitHub operations. Actions: list_repos, search_issues, create_issue, update_issue.
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ gsk github [options]
24
+ ```
25
+
26
+ ## Flags
27
+
28
+ | Flag | Required | Description |
29
+ |------|----------|-------------|
30
+ | `<action>` (positional) | Yes | Action to perform. 'list_repos': List repositories for the authenticated user; 'search_issues': Search issues and pull requests; 'create_issue': Create a new issue; 'update_issue': Update an existing issue (string, one of: list_repos, search_issues, create_issue, update_issue) |
31
+ | `--visibility` | No | [list_repos] Filter by repository visibility. Default: all. (string, one of: all, public, private) |
32
+ | `--affiliation` | No | [list_repos] Comma-separated list of affiliation types: owner, collaborator, organization_member. Default: owner,collaborator,organization_member. (string) |
33
+ | `--sort` | No | [list_repos] How to sort the results. Default: updated. \| [search_issues] How to sort results. Default: best match. (string, one of: created, updated, pushed, full_name) |
34
+ | `--direction` | No | [list_repos] Sort direction. Default: desc (except for full_name). (string, one of: asc, desc) |
35
+ | `--per_page` | No | [list_repos] Number of results per page (max 100). Default: 30. \| [search_issues] Number of results per page (max 100). Default: 30. (integer) |
36
+ | `--page` | No | [list_repos] Page number of the results. Default: 1. \| [search_issues] Page number of the results. Default: 1. (integer) |
37
+ | `--q` | No | [search_issues] Search query using GitHub search syntax. Examples: 'repo:owner/repo is:issue is:open', 'author:username', 'label:bug', 'state:closed' (string) |
38
+ | `--repo` | No | [search_issues] Repository in 'owner/repo' format to search within. Will be added to the query. \| [create_issue] The name of the repository (without the owner prefix). \| [update_issue] The name of the repository (without the owner prefix). (string) |
39
+ | `--state` | No | [search_issues] Filter by issue state. Will be added to the query. \| [update_issue] State of the issue. Use 'closed' to close the issue, 'open' to reopen it. (string, one of: open, closed, all) |
40
+ | `--labels` | No | [search_issues] Comma-separated list of labels to filter by. \| [create_issue] Labels to associate with this issue (e.g., ['bug', 'enhancement']). \| [update_issue] Labels to set on this issue (replaces existing labels). (string) |
41
+ | `--assignee` | No | [search_issues] Filter by assignee username. (string) |
42
+ | `--order` | No | [search_issues] Sort order. Default: desc. (string, one of: asc, desc) |
43
+ | `--owner` | No | [create_issue] The account owner of the repository (username or organization name). \| [update_issue] The account owner of the repository (username or organization name). (string) |
44
+ | `--title` | No | [create_issue] The title of the issue (required). \| [update_issue] New title of the issue. (string) |
45
+ | `--body` | No | [create_issue] The contents/description of the issue. Supports Markdown. \| [update_issue] New contents/description of the issue. Supports Markdown. (string) |
46
+ | `--assignees` | No | [create_issue] Logins/usernames of users to assign to this issue. \| [update_issue] Logins/usernames to assign to this issue (replaces existing assignees). (array) |
47
+ | `--milestone` | No | [create_issue] The milestone number to associate with this issue. \| [update_issue] The milestone number to associate with this issue. Set to null to remove milestone. (integer) |
48
+ | `--issue_number` | No | [update_issue] The number of the issue to update (required). (integer) |
49
+
50
+ ## See Also
51
+
52
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: gsk-gmail
3
+ version: 1.0.0
4
+ description: 'Gmail operations. Actions: search, read, send, reply, forward, delete,
5
+ archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment,
6
+ list_send_as.'
7
+ metadata:
8
+ category: general
9
+ requires:
10
+ bins:
11
+ - gsk
12
+ cliHelp: gsk gmail --help
13
+ ---
14
+
15
+ # gsk-gmail
16
+
17
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
18
+
19
+ Gmail operations. Actions: search, read, send, reply, forward, delete, archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment, list_send_as.
20
+
21
+ ## Usage
22
+
23
+ ```bash
24
+ gsk gmail [options]
25
+ ```
26
+
27
+ ## Flags
28
+
29
+ | Flag | Required | Description |
30
+ |------|----------|-------------|
31
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search emails by query; 'read': Read a specific email by ID; 'send': Compose and send an email; 'reply': Reply to an existing email; 'forward': Forward an email to new recipients; 'delete': Delete an email; 'archive': Archive an email; 'move': Move an email to a different label/folder; 'mark_as_read': Mark an email as read or unread; 'add_label': Add a label to an email; 'remove_label': Remove a label from an email; 'create_label': Create a new Gmail label; 'get_attachment': Download an email attachment; 'list_send_as': List available send-as aliases (string, one of: search, read, send, reply, forward, delete, archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment, list_send_as) |
32
+ | `--query` | No | [search] Query to filter emails using Gmail search syntax. Examples:\n- Simple: 'meeting'\n- From Sender: 'from:boss@example.com'\n- Subject: 'subject:report'\n- In Folder: 'in:spam', 'in:inbox', 'in:trash', 'in:sent'\n- Label: 'label:important'\n- Unread: 'is:unread'\n- Unread in Spam: 'in:spam is:unread'\n- Has Attachment: 'has:attachment'\n- Date Range: 'after:2024/01/01 before:2024/01/31'\n- Newer Than: 'newer_than:7d' (7 days)\n- Older Than: 'older_than:1m' (1 month)\nNote: Some queries like 'is:recent' are invalid. (string) |
33
+ | `--after_date` | No | [search] Filter emails received after this date (inclusive). Format: YYYY/MM/DD (e.g., '2024/01/01'). This is equivalent to adding 'after:YYYY/MM/DD' to the query. (string) |
34
+ | `--before_date` | No | [search] Filter emails received before this date (exclusive). Format: YYYY/MM/DD (e.g., '2024/01/31'). This is equivalent to adding 'before:YYYY/MM/DD' to the query. (string) |
35
+ | `--next_page_token` | No | [search] Next page token to retrieve more emails (optional). (string) |
36
+ | `--auto_paginate` | No | [search] If true, automatically fetches multiple pages until reaching max_total_results (default: 500). Returns ALL emails matching the query. (boolean) |
37
+ | `--max_total_results` | No | [search] Maximum total results to fetch when auto_paginate is true. Default: 500, Maximum: 500. (integer) |
38
+ | `--from_account` | No | [search] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [read] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [send] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [reply] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [forward] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [delete] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [archive] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [move] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [mark_as_read] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [add_label] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [remove_label] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [create_label] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [get_attachment] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [list_send_as] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. (string) |
39
+ | `--id` | No | [read] The ID of the email to retrieve and read (string) |
40
+ | `--title` | No | [read] The title of the email to retrieve and read (string) |
41
+ | `--question` | No | [read] Question to answer guiding how to process the email content (string) |
42
+ | `--download_attachments` | No | [read] Whether need to download attachments from the email to analysis (boolean) |
43
+ | `--aidrive_path` | No | [read] Path in AIDrive where attachments should be saved. Default is /gmail_attachments/ \| [get_attachment] The path in AIDrive to save the attachment. Default: /gmail_attachments/ (string) |
44
+ | `--to` | No | [send] Email address(es) of the recipient(s). For multiple recipients, separate with commas. \| [forward] Email address(es) of the recipient(s). For multiple recipients, separate with commas. (string) |
45
+ | `--subject` | No | [send] The email subject line (string) |
46
+ | `--body` | No | [send] The email body content. **IMPORTANT**: The format of this field MUST match the content_type parameter: - If content_type='text/plain': Use plain text - If content_type='text/html': Use HTML format with tags like <h1>, <p>, <ul>, <li>, etc. **Note**: Email clients DO NOT support Markdown rendering. If you have Markdown content and want formatted display, you must convert it to HTML and set content_type='text/html'. \| [reply] The reply message body. **IMPORTANT**: The format of this field MUST match the content_type parameter: - If content_type='text/plain': Use plain text - If content_type='text/html': Use HTML format with tags like <h1>, <p>, <ul>, <li>, etc. **Note**: Email clients DO NOT support Markdown rendering. If you have Markdown content and want formatted display, you must convert it to HTML and set content_type='text/html'. \| [forward] Optional: Additional message to include above the forwarded content. This is your personal note to the recipients. (string) |
47
+ | `--cc` | No | [send] Optional: CC email address(es). For multiple recipients, separate with commas. \| [forward] Optional: CC email address(es). For multiple recipients, separate with commas. (string) |
48
+ | `--bcc` | No | [send] Optional: BCC email address(es). For multiple recipients, separate with commas. (string) |
49
+ | `--content_type` | No | [send] Content type of the email body. Default: text/html (recommended) **CRITICAL**: This parameter defines the format of the 'body' field: - 'text/plain': body should be plain text only - 'text/html': body MUST be valid HTML (e.g., '<h1>Title</h1><p>Content</p>') **Common mistake**: Setting content_type='text/html' but providing Markdown text (# Title, **bold**). This will display raw Markdown symbols in the email. Always convert Markdown to HTML before passing to this tool. \| [reply] Content type of the reply body. Default: text/html (recommended) **CRITICAL**: This parameter defines the format of the 'body' field: - 'text/plain': body should be plain text only - 'text/html': body MUST be valid HTML (e.g., '<h1>Title</h1><p>Content</p>') **Common mistake**: Setting content_type='text/html' but providing Markdown text. This will display raw Markdown symbols. Always convert Markdown to HTML first. \| [forward] Content type of the body. Default: text/html (recommended) **CRITICAL**: This parameter defines the format of the 'body' field: - 'text/plain': body should be plain text only - 'text/html': body MUST be valid HTML (e.g., '<h1>Title</h1><p>Content</p>') **Common mistake**: Setting content_type='text/html' but providing Markdown text. This will display raw Markdown symbols. Always convert Markdown to HTML first. (string, one of: text/plain, text/html) |
50
+ | `--from_address` | No | [send] Send-as email address to use as the sender. Use this to send as a group/alias address (e.g., 'feedback@company.com'). Must be configured in Gmail's 'Send mail as' settings. \| [reply] Send-as email address to use as the sender. Use this to reply as a group/alias address (e.g., 'feedback@company.com'). Must be configured in Gmail's 'Send mail as' settings. \| [forward] Send-as email address to use as the sender. Use this to forward as a group/alias address. Must be configured in Gmail's 'Send mail as' settings. (string) |
51
+ | `--skip_confirmation` | No | [send] If true, skip user confirmation and send immediately. Default is false (require confirmation before sending). \| [reply] If true, skip user confirmation and send immediately. Default is false (require confirmation before sending). \| [forward] If true, skip user confirmation and send immediately. Default is false (require confirmation before sending). \| [delete] If true, skip user confirmation and delete immediately. Default is false (require confirmation before deleting). \| [move] If true, skip user confirmation and move immediately. Default is false (require confirmation before moving). (boolean, default: `False`) |
52
+ | `--auto_skip_confirmation` | No | [send] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [reply] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [forward] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [delete] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. \| [move] Set to true ONLY if the workflow step has [AUTO_SKIP_CONFIRMATION] marker. This indicates the node is configured to always skip confirmation. (boolean, default: `False`) |
53
+ | `--message_id` | No | [reply] The Gmail message ID to reply to \| [forward] The Gmail message ID to forward \| [delete] The Gmail message ID to delete \| [archive] The Gmail message ID to archive \| [move] The Gmail message ID to move \| [mark_as_read] (Deprecated, use message_ids) A single Gmail message ID to mark \| [add_label] The Gmail message ID to add label to \| [remove_label] The Gmail message ID to remove label from \| [get_attachment] The Gmail message ID containing the attachment (string) |
54
+ | `--reply_all` | No | [reply] Whether to reply to all recipients (TO and CC). Default: true (reply to all recipients including CC) (boolean) |
55
+ | `--include_attachments` | No | [forward] Whether to include original email attachments in the forward. Default: true (boolean, default: `True`) |
56
+ | `--label_name` | No | [move] The target label name. Use '/' for nested labels (e.g., 'Work/Projects'). The label will be created if it doesn't exist. \| [add_label] The label name to add. Can be a new label or an existing one. \| [remove_label] The label name to remove \| [create_label] The name of the label to create. Use '/' for nested labels (e.g., 'Parent/Child'). (string) |
57
+ | `--remove_from_inbox` | No | [move] Whether to remove the email from INBOX. Default: true (standard 'move' behavior). Set to false to just add the label without removing from inbox. (boolean) |
58
+ | `--create_if_not_exists` | No | [move] Whether to create the label if it doesn't exist. Default: true (boolean) |
59
+ | `--message_ids` | No | [mark_as_read] The Gmail message ID(s) to mark. Can be a single ID string or an array of IDs. |
60
+ | `--is_read` | No | [mark_as_read] Set to true to mark as read, false to mark as unread. Default: true (boolean) |
61
+ | `--label_list_visibility` | No | [create_label] The visibility of the label in the label list. Default: labelShow (string, one of: labelShow, labelShowIfUnread, labelHide) |
62
+ | `--message_list_visibility` | No | [create_label] The visibility of messages with this label. Default: show (string, one of: show, hide) |
63
+ | `--background_color` | No | [create_label] The background color of the label in hex format (e.g., '#16a765'). Optional. (string) |
64
+ | `--text_color` | No | [create_label] The text color of the label in hex format (e.g., '#ffffff'). Optional. (string) |
65
+ | `--filename` | No | [get_attachment] The filename of the attachment to retrieve. Use '*' to get all attachments. (string) |
66
+ | `--save_to_aidrive` | No | [get_attachment] Whether to save the attachment to AIDrive. Default: true (boolean) |
67
+
68
+ ## See Also
69
+
70
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: gsk-google-calendar
3
+ version: 1.0.0
4
+ description: 'Google Calendar operations. Actions: list, create, delete.'
5
+ metadata:
6
+ category: general
7
+ requires:
8
+ bins:
9
+ - gsk
10
+ cliHelp: gsk google_calendar --help
11
+ ---
12
+
13
+ # gsk-google-calendar
14
+
15
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
+
17
+ Google Calendar operations. Actions: list, create, delete.
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gsk google_calendar [options]
23
+ ```
24
+
25
+ ## Flags
26
+
27
+ | Flag | Required | Description |
28
+ |------|----------|-------------|
29
+ | `<action>` (positional) | Yes | Action to perform. 'list': List upcoming calendar events; 'create': Create a new calendar event; 'delete': Delete a calendar event (string, one of: list, create, delete) |
30
+ | `--filter_query` | No | [list] Text to filter calendar events, empty for listing all events (string) |
31
+ | `--time_min` | No | [list] Optional. Start time of the search range (RFC3339 timestamp) (string) |
32
+ | `--time_max` | No | [list] Optional. End time of the search range (RFC3339 timestamp) (string) |
33
+ | `--from_account` | No | [list] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. \| [delete] Optional: Email address of the Gmail account to use. Use this when the user has multiple Gmail accounts connected. If not specified, uses the default Gmail account. (string) |
34
+ | `--summary` | No | [create] The title of the event (string) |
35
+ | `--location` | No | [create] The location of the event (string) |
36
+ | `--description` | No | [create] Description or details of the event. Supports restricted HTML formatting (safe subset rendered via Vue v-html): <a>, <b>, <strong>, <i>, <em>, <u>, <br>, <p>, <ul>, <ol>, <li>, <span>, <img>. Use for links, bold, italics, lists, line breaks, images. (string) |
37
+ | `--time_zone` | No | [create] Time zone for the event (e.g., 'GMT-07:00') (string) |
38
+ | `--time_zone_name` | No | [create] Time zone name for the event (e.g., 'America/Los_Angeles') (string) |
39
+ | `--start_time` | No | [create] Start time of the event in ISO 8601 format, must include correct timezone offset (e.g., 'yyyy-mm-ddThh:mm:ss+hh:mm') (string) |
40
+ | `--end_time` | No | [create] End time of the event in ISO 8601 format, must include correct timezone offset (e.g., 'yyyy-mm-ddThh:mm:ss-hh:mm') (string) |
41
+ | `--attendees` | No | [create] List of email addresses of attendees (array) |
42
+ | `--calendar_id` | No | [create] The calendar identifier. Use 'primary' for the user's primary calendar or provide a specific calendar email address (string) |
43
+ | `--event_id` | No | [create] The event identifier. If the request is to modify an existing event, provide the event_id of the event to be modified. If the request is to create a new event, leave this field empty. \| [delete] The Google Calendar event ID to delete (string) |
44
+ | `--recurrence` | No | [create] Recurrence rules (e.g., ['RRULE:FREQ=DAILY;COUNT=2']) (array) |
45
+ | `--send_notifications` | No | [create] Whether to send email notifications to attendees (boolean) |
46
+ | `--delete_series` | No | [delete] If true and the event is recurring, delete the entire series. If false, only delete the single instance. Default is false. (boolean, default: `False`) |
47
+
48
+ ## See Also
49
+
50
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: gsk-google-contacts
3
+ version: 1.0.0
4
+ description: 'Google Contacts operations. Actions: search, get, create, update.'
5
+ metadata:
6
+ category: general
7
+ requires:
8
+ bins:
9
+ - gsk
10
+ cliHelp: gsk contacts --help
11
+ ---
12
+
13
+ # gsk-google-contacts
14
+
15
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
+
17
+ Google Contacts operations. Actions: search, get, create, update.
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gsk contacts [options]
23
+ ```
24
+
25
+ **Aliases:** `contacts`
26
+
27
+ ## Flags
28
+
29
+ | Flag | Required | Description |
30
+ |------|----------|-------------|
31
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search contacts by name, email, or phone; 'get': Get details of a specific contact; 'create': Create a new contact; 'update': Update an existing contact (string, one of: search, get, create, update) |
32
+ | `--query` | No | [search] Search query to find contacts. Searches across names, email addresses, phone numbers, and notes. (string) |
33
+ | `--limit` | No | [search] Maximum number of results to return (1-100). Default: 20 (integer) |
34
+ | `--account_id` | No | [search] Optional. The Gmail account ID to search (e.g., 'gmail-user@example.com'). If not provided, uses the default Gmail account. \| [get] Optional. The Gmail account ID (e.g., 'gmail-user@example.com'). If not provided, uses the default Gmail account. \| [create] Optional. The Gmail account ID (e.g., 'gmail-user@example.com'). If not provided, uses the default Gmail account. \| [update] Optional. The Gmail account ID (e.g., 'gmail-user@example.com'). If not provided, uses the default Gmail account. (string) |
35
+ | `--resource_name` | No | [get] The resource name of the contact to retrieve (e.g., 'people/c123456789'). This is returned from search results. \| [update] The resource name of the contact to update (e.g., 'people/c123456789'). Required. (string) |
36
+ | `--given_name` | No | [create] First name of the contact. \| [update] First name of the contact. (string) |
37
+ | `--family_name` | No | [create] Last name of the contact. \| [update] Last name of the contact. (string) |
38
+ | `--middle_name` | No | [create] Middle name of the contact. \| [update] Middle name of the contact. (string) |
39
+ | `--emails` | No | [create] List of email addresses. Each with 'value' and optional 'type' (home/work/other). \| [update] List of email addresses. Replaces all existing emails. (array) |
40
+ | `--phones` | No | [create] List of phone numbers. Each with 'value' and optional 'type' (home/work/mobile/other). \| [update] List of phone numbers. Replaces all existing phones. (array) |
41
+ | `--organization` | No | [create] Company or organization name. \| [update] Company or organization name. (string) |
42
+ | `--job_title` | No | [create] Job title at the organization. \| [update] Job title at the organization. (string) |
43
+ | `--department` | No | [create] Department at the organization. \| [update] Department at the organization. (string) |
44
+ | `--addresses` | No | [create] List of addresses with street, city, region, postal_code, country. \| [update] List of addresses. Replaces all existing addresses. (array) |
45
+ | `--birthday` | No | [create] Birthday with year (optional), month, and day. \| [update] Birthday with year (optional), month, and day. (object) |
46
+ | `--notes` | No | [create] Notes or biography for the contact. \| [update] Notes or biography for the contact. (string) |
47
+ | `--urls` | No | [create] List of URLs (websites, social profiles, etc.). \| [update] List of URLs. Replaces all existing URLs. (array) |
48
+
49
+ ## See Also
50
+
51
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: gsk-google-docs
3
+ version: 1.0.0
4
+ description: 'Google Docs document operations. Actions: create, read, append, search.'
5
+ metadata:
6
+ category: general
7
+ requires:
8
+ bins:
9
+ - gsk
10
+ cliHelp: gsk docs --help
11
+ ---
12
+
13
+ # gsk-google-docs
14
+
15
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
+
17
+ Google Docs document operations. Actions: create, read, append, search.
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gsk docs [options]
23
+ ```
24
+
25
+ **Aliases:** `docs`
26
+
27
+ ## Flags
28
+
29
+ | Flag | Required | Description |
30
+ |------|----------|-------------|
31
+ | `<action>` (positional) | Yes | Action to perform. 'create': Create a new document; 'read': Read content from a document; 'append': Append content to a document; 'search': Search documents by name (string, one of: create, read, append, search) |
32
+ | `--title` | No | [create] Title of the new document. (string) |
33
+ | `--content` | No | [create] Optional initial text content for the document. \| [append] The text content to append to the document. (string) |
34
+ | `--document_id` | No | [read] The ID of the document to read. \| [append] The ID of the document to append to. (string) |
35
+ | `--query` | No | [search] Search query to find documents by name or content. (string) |
36
+ | `--limit` | No | [search] Maximum number of results to return (1-50). Default: 10 (integer) |
37
+
38
+ ## See Also
39
+
40
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: gsk-google-drive
3
+ version: 1.0.0
4
+ description: 'Google Drive file operations. Actions: search, read, upload.'
5
+ metadata:
6
+ category: general
7
+ requires:
8
+ bins:
9
+ - gsk
10
+ cliHelp: gsk gdrive --help
11
+ ---
12
+
13
+ # gsk-google-drive
14
+
15
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
16
+
17
+ Google Drive file operations. Actions: search, read, upload.
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ gsk gdrive [options]
23
+ ```
24
+
25
+ **Aliases:** `gdrive`
26
+
27
+ ## Flags
28
+
29
+ | Flag | Required | Description |
30
+ |------|----------|-------------|
31
+ | `<action>` (positional) | Yes | Action to perform. 'search': Search files by name, type, or owner; 'read': Read and extract content from a file; 'upload': Upload a file to Google Drive (string, one of: search, read, upload) |
32
+ | `--query` | No | [search] Use keywords simply, terms will be combined into advanced search query in the later process.For example, if user ask for 'tax related documents', just use 'tax' as the query,DO NOT use advanced search query like 'name contains 'tax'' or 'fullText contains 'tax''. (string) |
33
+ | `--mime_type` | No | [search] Filter by MIME type for 'search' (e.g., 'application/pdf'). \| [upload] The MIME type of the file (optional, will be auto-detected from file_name extension). Examples: 'text/plain', 'text/csv', 'application/json', 'image/png'. (string) |
34
+ | `--owner` | No | [search] Filter by file owner (email address) for 'search' action (string) |
35
+ | `--folder_id` | No | [search] Search within a specific folder for 'search' action \| [upload] Google Drive folder ID to upload to. Optional, uploads to root if not specified. (string) |
36
+ | `--trashed` | No | [search] Include trashed files in search results for 'search' action (boolean) |
37
+ | `--file_id` | No | [read] The ID of the file to read from Google Drive. (string) |
38
+ | `--question` | No | [read] The question to answer about the file content. (string) |
39
+ | `--content` | No | [upload] Text content to create as a file. Use this for creating text-based files (e.g., .txt, .md, .csv, .json, .html). Either 'content' or 'file_path' is required. (string) |
40
+ | `--file_path` | No | [upload] Local file path to upload. Either 'content' or 'file_path' is required. (string) |
41
+ | `--file_name` | No | [upload] File name in Google Drive (include extension, e.g., 'report.txt'). MIME type will be auto-detected from extension if not specified. (string) |
42
+ | `--convert_to_google_format` | No | [upload] Whether to convert to Google Workspace format (e.g., .docx → Google Docs, .xlsx → Google Sheets, .pptx → Google Slides). Default: false (boolean, default: `False`) |
43
+ | `--share_publicly` | No | [upload] Whether to share the file publicly for viewing. Default: false (boolean, default: `False`) |
44
+
45
+ ## See Also
46
+
47
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: gsk-google-sheets
3
+ version: 1.0.0
4
+ description: 'Google Sheets spreadsheet operations. Actions: create, read, write,
5
+ append, search, export.'
6
+ metadata:
7
+ category: general
8
+ requires:
9
+ bins:
10
+ - gsk
11
+ cliHelp: gsk sheets --help
12
+ ---
13
+
14
+ # gsk-google-sheets
15
+
16
+ **PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
17
+
18
+ Google Sheets spreadsheet operations. Actions: create, read, write, append, search, export.
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ gsk sheets [options]
24
+ ```
25
+
26
+ **Aliases:** `sheets`
27
+
28
+ ## Flags
29
+
30
+ | Flag | Required | Description |
31
+ |------|----------|-------------|
32
+ | `<action>` (positional) | Yes | Action to perform. 'create': Create a new spreadsheet; 'read': Read data from a spreadsheet; 'write': Write data to a specific range; 'append': Append rows to a spreadsheet; 'search': Search spreadsheets by name; 'export': Export a spreadsheet to CSV or other format (string, one of: create, read, write, append, search, export) |
33
+ | `--title` | No | [create] Title of the new spreadsheet. (string) |
34
+ | `--sheet_names` | No | [create] Names of sheets to create. Default: ['Sheet1'] (array) |
35
+ | `--initial_data` | No | [create] Optional initial data for the first sheet. 2D array where each inner array is a row. (array) |
36
+ | `--spreadsheet_id` | No | [read] The ID of the spreadsheet to read from. \| [write] The ID of the spreadsheet to write to. \| [append] The ID of the spreadsheet to append to. \| [export] The ID of the Google Sheets spreadsheet to export. (string) |
37
+ | `--range` | No | [read] The A1 notation range to read (e.g., 'Sheet1!A1:D10', 'A1:B5'). Default: reads first sheet entirely. \| [write] The A1 notation range to write to (e.g., 'Sheet1!A1:D10'). The range should match the size of the data. \| [append] The A1 notation of a range to search for data table. New rows will be appended after the last row in this table. Example: 'Sheet1!A:D' or 'Sheet1' (string) |
38
+ | `--values` | No | [write] 2D array of values to write. Each inner array is a row. Example: [['Name', 'Age'], ['Alice', '30'], ['Bob', '25']] \| [append] 2D array of values to append. Each inner array is a row. Example: [['Alice', '30'], ['Bob', '25']] (array) |
39
+ | `--query` | No | [search] Search query to find spreadsheets by name or content. (string) |
40
+ | `--limit` | No | [search] Maximum number of results to return (1-50). Default: 10 (integer) |
41
+ | `--filename` | No | [export] Optional custom filename for the exported file (without extension). If not provided, the original spreadsheet name will be used. (string) |
42
+
43
+ ## See Also
44
+
45
+ - [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags