@genspark/cli 1.0.13 → 1.0.16
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.
- package/dist/commands/design.d.ts +37 -0
- package/dist/commands/design.d.ts.map +1 -0
- package/dist/commands/design.js +990 -0
- package/dist/commands/design.js.map +1 -0
- package/dist/index.js +134 -2
- package/dist/index.js.map +1 -1
- package/docs/skills.md +6 -5
- package/package.json +1 -1
- package/skills/gsk-design/SKILL.md +110 -0
- package/skills/gsk-gmail/SKILL.md +12 -10
- package/skills/gsk-outlook-email/SKILL.md +13 -11
- package/skills/gsk-sharepoint/SKILL.md +12 -7
- package/skills/gsk-sharepoint-upload/SKILL.md +45 -0
- package/skills/gsk-video-generation/SKILL.md +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsk-design
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Hand off design work from Claude Code (or any AI coding agent) to
|
|
5
|
+
Genspark Designer V2. Launches a local bridge so a visual design agent in the
|
|
6
|
+
browser can read your project, build the UI, and write the result back into
|
|
7
|
+
your repo.
|
|
8
|
+
metadata:
|
|
9
|
+
category: general
|
|
10
|
+
requires:
|
|
11
|
+
bins:
|
|
12
|
+
- gsk
|
|
13
|
+
cliHelp: gsk design --help
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# gsk-design
|
|
17
|
+
|
|
18
|
+
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
19
|
+
|
|
20
|
+
`gsk design` hands a design task off to Genspark's visual designer agent. You stay in your terminal; the design agent runs in the browser and has read access to the current project so it can match your brand, copy, and existing layouts. When it's done, it writes a handoff bundle (HTML/CSS/assets + a build prompt) back into your working directory under `.cc-bridge-out/handoff_<timestamp>/`. You then ingest that handoff into your project.
|
|
21
|
+
|
|
22
|
+
## When to use
|
|
23
|
+
|
|
24
|
+
Use `gsk design` when the user wants a **polished visual artifact** built — a landing page, hero section, marketing page, slide deck, dashboard layout, or any UI that benefits from a dedicated design pass. The design agent is good at:
|
|
25
|
+
|
|
26
|
+
- Translating a brief into a coherent visual language (typography, color, spacing, motion)
|
|
27
|
+
- Producing brand-consistent layouts that read like a real product, not a wireframe
|
|
28
|
+
- Generating production-ready HTML/CSS you can drop into your codebase
|
|
29
|
+
|
|
30
|
+
**Do NOT use** for:
|
|
31
|
+
|
|
32
|
+
- Small in-place edits ("change this button color", "fix this margin") — just edit the CSS yourself.
|
|
33
|
+
- Backend or logic work.
|
|
34
|
+
- Debugging an existing layout — the design agent rebuilds, it doesn't repair.
|
|
35
|
+
|
|
36
|
+
A useful rule of thumb: if the user could plausibly describe the result with a single Dribbble shot, `gsk design` is the right tool. If they're describing a code change, it isn't.
|
|
37
|
+
|
|
38
|
+
## Prerequisites
|
|
39
|
+
|
|
40
|
+
- `gsk login` (or `GSK_API_KEY` env var) — see `gsk-shared`.
|
|
41
|
+
- Node.js ≥ 22 — the bridge daemon runs on Node.
|
|
42
|
+
- A browser on this machine — the design agent runs in the browser the daemon opens.
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
gsk design [path] [options]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Aliases:** `design`
|
|
51
|
+
|
|
52
|
+
## Flags
|
|
53
|
+
|
|
54
|
+
| Flag | Required | Description |
|
|
55
|
+
|------|----------|-------------|
|
|
56
|
+
| `[path]` (positional) | No | Working directory for the design session. Defaults to the current directory. The design agent's file-read tools are scoped to this directory. |
|
|
57
|
+
| `--prompt <text>` | No | Initial build prompt sent to the design agent as the autostart message. If omitted, the agent waits for the user to type a brief in the browser. Prefer passing one — it skips a manual step and makes the run reproducible. |
|
|
58
|
+
| `--launch-url <url>` | No | Override the design page URL. Default: `https://www.genspark.ai/agents?type=design`. Useful for dev/staging or self-hosted Genspark deployments. |
|
|
59
|
+
| `--allow-build-tools` | No | Expand the `cc_exec` allowlist from read-only inspection (`ls`, `cat`, `head`, `wc`, …) to include build tools (`git`, `npm`, `python`, `rg`, …). Leave off unless the design agent needs to actually run scripts. |
|
|
60
|
+
| `--no-open` | No | Print the launch URL but don't open the browser. Used when you want to copy the URL manually or when you're scripting the bridge from a parent agent. |
|
|
61
|
+
|
|
62
|
+
## What happens when you run it
|
|
63
|
+
|
|
64
|
+
1. Two HTTP servers come up on `127.0.0.1` (loopback only — never exposed externally).
|
|
65
|
+
2. The launch URL is opened in the user's default browser; the URL embeds a one-shot nonce that the page redeems to obtain a bearer token for this session.
|
|
66
|
+
3. The design agent in the browser now has six tools scoped to this bridge session:
|
|
67
|
+
- **`cc_ls`** — list files in your project
|
|
68
|
+
- **`cc_read`** — read a file
|
|
69
|
+
- **`cc_grep`** — search across files
|
|
70
|
+
- **`cc_exec`** — run a command from the allowlist
|
|
71
|
+
- **`cc_copy_to_project`** — write a file *into* the Genspark project (used while the agent is iterating)
|
|
72
|
+
- **`back_to_cc`** — write the final handoff into your repo and end the session
|
|
73
|
+
4. The user (or the autostart prompt) tells the design agent what to build. It iterates in the right-hand canvas, occasionally reading files from your project for brand context.
|
|
74
|
+
5. When the agent calls `back_to_cc`, a handoff directory appears at `./.cc-bridge-out/handoff_<timestamp>/` in your working dir, containing the produced files plus a `_prompt.txt` describing how to wire them into the codebase.
|
|
75
|
+
6. The bridge closes; you can `Ctrl-C` the `gsk design` process (or just close the browser tab).
|
|
76
|
+
|
|
77
|
+
## Example: deterministic, one-shot run
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd /path/to/my-app
|
|
81
|
+
gsk design \
|
|
82
|
+
--prompt "Design a hero section for our pricing page. Brand colors live in src/styles/tokens.css. The product is called Lumen — an AI-native invoicing tool for freelancers. Match the existing landing page tone."
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
After the design agent finishes:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
ls .cc-bridge-out/handoff_*/
|
|
89
|
+
# → hero.html hero.css _prompt.txt
|
|
90
|
+
cat .cc-bridge-out/handoff_*/_prompt.txt
|
|
91
|
+
# Read the integration notes, then move the files into your project as instructed.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Tips for the prompt
|
|
95
|
+
|
|
96
|
+
- **Anchor it to real files.** "Match `src/styles/tokens.css`" or "use the navigation from `components/Nav.vue`" gives the agent ground truth.
|
|
97
|
+
- **Name the product and the audience.** "for freelance invoicing" beats "for our app" — the design agent picks better defaults when it knows the domain.
|
|
98
|
+
- **Specify the shape.** "A 3-column pricing table with monthly/annual toggle" yields a usable page; "make pricing nice" yields a mood board.
|
|
99
|
+
|
|
100
|
+
## Security notes
|
|
101
|
+
|
|
102
|
+
- The bridge binds `127.0.0.1` only.
|
|
103
|
+
- The default `cc_exec` allowlist is read-only — file inspection commands only, no mutating tools.
|
|
104
|
+
- `--allow-build-tools` opens build CLIs (git/npm/python/etc.) but still blocks shell metacharacters, inline-code flags (`-c`, `--exec`), and newlines. Don't enable unless the prompt actually needs to run scripts.
|
|
105
|
+
- Path inputs are normalized; `..` escape, absolute paths, symlink-out are rejected.
|
|
106
|
+
- The handoff dir (`.cc-bridge-out/`) is auto-`.gitignore`'d by the daemon on first write.
|
|
107
|
+
|
|
108
|
+
## See Also
|
|
109
|
+
|
|
110
|
+
- [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsk-gmail
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: 'Gmail operations. Actions: search, read, send, reply, forward,
|
|
5
|
-
archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment,
|
|
4
|
+
description: 'Gmail operations. Actions: search, read, send, draft, reply, forward,
|
|
5
|
+
delete, archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment,
|
|
6
6
|
list_send_as.'
|
|
7
7
|
metadata:
|
|
8
8
|
category: general
|
|
@@ -16,7 +16,7 @@ metadata:
|
|
|
16
16
|
|
|
17
17
|
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
18
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.
|
|
19
|
+
Gmail operations. Actions: search, read, send, draft, reply, forward, delete, archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment, list_send_as.
|
|
20
20
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
@@ -28,28 +28,30 @@ gsk gmail [options]
|
|
|
28
28
|
|
|
29
29
|
| Flag | Required | Description |
|
|
30
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) |
|
|
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; 'draft': Save an email to the Drafts folder without sending; '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, draft, reply, forward, delete, archive, move, mark_as_read, add_label, remove_label, create_label, get_attachment, list_send_as) |
|
|
32
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
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
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
35
|
| `--next_page_token` | No | [search] Next page token to retrieve more emails (optional). (string) |
|
|
36
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
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) |
|
|
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. \| [draft] Sender email account to use. \| [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
39
|
| `--id` | No | [read] The ID of the email to retrieve and read (string) |
|
|
40
40
|
| `--title` | No | [read] The title of the email to retrieve and read (string) |
|
|
41
41
|
| `--question` | No | [read] Question to answer guiding how to process the email content (string) |
|
|
42
42
|
| `--download_attachments` | No | [read] Whether need to download attachments from the email to analysis (boolean) |
|
|
43
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) |
|
|
44
|
+
| `--to` | No | [send] Email address(es) of the recipient(s). For multiple recipients, separate with commas. \| [draft] Recipient email address(es), comma-separated. \| [forward] Email address(es) of the recipient(s). For multiple recipients, separate with commas. (string) |
|
|
45
|
+
| `--subject` | No | [send] The email subject line \| [draft] 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'. \| [draft] Email body content (plain text or 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. \| [draft] CC recipient(s), comma-separated. \| [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. \| [draft] BCC recipient(s), comma-separated. (string) |
|
|
49
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
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
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
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
|
+
| `--attachments` | No | [send] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [draft] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [reply] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [forward] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). (array) |
|
|
54
|
+
| `--body_type` | No | [draft] Body format: 'html' (default) or 'text'. (string) |
|
|
53
55
|
| `--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
56
|
| `--reply_all` | No | [reply] Whether to reply to all recipients (TO and CC). Default: true (reply to all recipients including CC) (boolean) |
|
|
55
57
|
| `--include_attachments` | No | [forward] Whether to include original email attachments in the forward. Default: true (boolean, default: `True`) |
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsk-outlook-email
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: 'Outlook Email operations. Actions: search, read, send,
|
|
5
|
-
forward, delete, archive, move, mark_as_read, add_category, remove_category,
|
|
6
|
-
group_list, group_search, group_read, group_reply.'
|
|
4
|
+
description: 'Outlook Email operations. Actions: search, read, send, draft, reply,
|
|
5
|
+
reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category,
|
|
6
|
+
get_attachment, group_list, group_search, group_read, group_reply.'
|
|
7
7
|
metadata:
|
|
8
8
|
category: general
|
|
9
9
|
requires:
|
|
@@ -16,7 +16,7 @@ metadata:
|
|
|
16
16
|
|
|
17
17
|
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
18
18
|
|
|
19
|
-
Outlook Email operations. Actions: search, read, send, reply, reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category, get_attachment, group_list, group_search, group_read, group_reply.
|
|
19
|
+
Outlook Email operations. Actions: search, read, 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.
|
|
20
20
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ gsk outlook [options]
|
|
|
30
30
|
|
|
31
31
|
| Flag | Required | Description |
|
|
32
32
|
|------|----------|-------------|
|
|
33
|
-
| `<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; '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, send, reply, reply_draft, forward, delete, archive, move, mark_as_read, add_category, remove_category, get_attachment, group_list, group_search, group_read, group_reply) |
|
|
33
|
+
| `<action>` (positional) | Yes | Action to perform. 'search': Search emails by query; 'read': Read a specific email by ID; '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, 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) |
|
|
34
34
|
| `--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) |
|
|
35
35
|
| `--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) |
|
|
36
36
|
| `--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) |
|
|
@@ -40,21 +40,23 @@ gsk outlook [options]
|
|
|
40
40
|
| `--max_total_results` | No | [search] Maximum total results to fetch when auto_paginate is true. Default: 500, Maximum: 500. \| [group_search] Maximum total results to fetch across all groups when auto_paginate is true. Default: 500, Maximum: 500. (integer) |
|
|
41
41
|
| `--folder` | No | [search] The mail folder to search in. Options:\n- 'inbox': Inbox folder (default)\n- 'junkemail' or 'spam': Junk/Spam folder\n- 'deleteditems' or 'trash': Deleted Items folder\n- 'drafts': Drafts folder\n- 'sentitems' or 'sent': Sent Items folder\n- 'archive': Archive folder\n- 'all': Search across all folders (uses Search API) (string) |
|
|
42
42
|
| `--search_mode` | No | [search] Search mode to use:\n- 'auto' (default): Automatically choose best method\n- 'kql': Use Microsoft Search API with full KQL syntax (enterprise only, supports 'isread:false from:john subject:meeting')\n- 'filter': Use $filter for property filtering (supports 'isRead eq false', works with folder parameter) (string, one of: auto, kql, filter) |
|
|
43
|
-
| `--from_account` | No | [search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [send] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [reply_draft] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [forward] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [delete] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [archive] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [move] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [mark_as_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [add_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [remove_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [get_attachment] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_list] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. (string) |
|
|
43
|
+
| `--from_account` | No | [search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [send] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [draft] Sender email account to use. \| [reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [reply_draft] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [forward] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [delete] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [archive] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [move] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [mark_as_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [add_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [remove_category] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [get_attachment] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_list] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_search] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_read] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. \| [group_reply] Optional: Email address of the Outlook account to use. Use this when the user has multiple Outlook accounts connected. If not specified, uses the default Outlook account. (string) |
|
|
44
44
|
| `--id` | No | [read] The ID of the email to retrieve and read (string) |
|
|
45
45
|
| `--title` | No | [read] The title of the email to retrieve and read \| [group_read] The title of the email thread to retrieve. (string) |
|
|
46
46
|
| `--question` | No | [read] Question to answer guiding how to process the email content \| [group_read] Question to answer guiding how to process the email content (string) |
|
|
47
47
|
| `--download_attachments` | No | [read] Whether need to download attachments from the email to analysis (boolean) |
|
|
48
48
|
| `--aidrive_path` | No | [read] Path in AIDrive where attachments should be saved. Default is /outlook_attachments/ \| [get_attachment] The path in AIDrive to save the attachment. Default: /outlook_attachments/ (string) |
|
|
49
|
-
| `--to` | No | [send] A list of email addresses for primary recipients. At least one recipient is required. \| [reply] Optional: A list of email addresses for primary recipients. If not provided, defaults to the original sender. By default (reply_all=true), all original recipients are included in CC. \| [reply_draft] Optional: A list of email addresses for primary recipients. If not provided, defaults to the original sender. By default (reply_all), all original recipients are included in CC. \| [forward] A list of email addresses for primary recipients to forward the email to. \| [group_reply] Optional list of recipient email addresses to add as new participants. These recipients will be notified about the reply. (array) |
|
|
50
|
-
| `--subject` | No | [send] The email subject line. (string) |
|
|
51
|
-
| `--body` | No | [send] The email body content. **IMPORTANT**: The format MUST match the content_type parameter: - If content_type='text': Use plain text - If content_type='html': Use HTML format with tags like <h1>, <p>, <ul>, etc. **Note**: Email clients DO NOT support Markdown. Convert Markdown to HTML if needed. \| [reply] The reply message body. **IMPORTANT**: The format MUST match the content_type parameter: - If content_type='text': Use plain text - If content_type='html': Use HTML format with tags like <h1>, <p>, <ul>, etc. **Note**: Email clients DO NOT support Markdown. Convert Markdown to HTML if needed. \| [reply_draft] The reply content in HTML format. Use HTML tags for formatting (e.g., <br>, <b>, <i>). \| [forward] Optional: Additional message to include above the forwarded content. This is your personal note to recipients. (string) |
|
|
52
|
-
| `--cc` | No | [send] Optional: A list of email addresses for CC recipients. \| [reply] Optional: A list of email addresses for CC recipients. If not provided and 'reply_all' is true (default), includes original CC and TO recipients. If 'reply_all' is false, no CC recipients are added. \| [reply_draft] Optional: A list of email addresses for CC recipients. If not provided and 'reply_type' is 'reply_all' (default), includes original CC and TO recipients. If 'reply_type' is 'reply', no CC recipients are added. \| [forward] Optional: A list of email addresses for CC recipients. (array) |
|
|
53
|
-
| `--bcc` | No | [send] Optional: A list of email addresses for BCC recipients. \| [reply] Optional: A list of email addresses for BCC recipients. \| [reply_draft] Optional: A list of email addresses for BCC recipients. \| [forward] Optional: A list of email addresses for BCC recipients. (array) |
|
|
49
|
+
| `--to` | No | [send] A list of email addresses for primary recipients. At least one recipient is required. \| [draft] Recipient email address(es), comma-separated. \| [reply] Optional: A list of email addresses for primary recipients. If not provided, defaults to the original sender. By default (reply_all=true), all original recipients are included in CC. \| [reply_draft] Optional: A list of email addresses for primary recipients. If not provided, defaults to the original sender. By default (reply_all), all original recipients are included in CC. \| [forward] A list of email addresses for primary recipients to forward the email to. \| [group_reply] Optional list of recipient email addresses to add as new participants. These recipients will be notified about the reply. (array) |
|
|
50
|
+
| `--subject` | No | [send] The email subject line. \| [draft] Email subject line. (string) |
|
|
51
|
+
| `--body` | No | [send] The email body content. **IMPORTANT**: The format MUST match the content_type parameter: - If content_type='text': Use plain text - If content_type='html': Use HTML format with tags like <h1>, <p>, <ul>, etc. **Note**: Email clients DO NOT support Markdown. Convert Markdown to HTML if needed. \| [draft] Email body content (plain text or HTML). \| [reply] The reply message body. **IMPORTANT**: The format MUST match the content_type parameter: - If content_type='text': Use plain text - If content_type='html': Use HTML format with tags like <h1>, <p>, <ul>, etc. **Note**: Email clients DO NOT support Markdown. Convert Markdown to HTML if needed. \| [reply_draft] The reply content in HTML format. Use HTML tags for formatting (e.g., <br>, <b>, <i>). \| [forward] Optional: Additional message to include above the forwarded content. This is your personal note to recipients. (string) |
|
|
52
|
+
| `--cc` | No | [send] Optional: A list of email addresses for CC recipients. \| [draft] CC recipient(s), comma-separated. \| [reply] Optional: A list of email addresses for CC recipients. If not provided and 'reply_all' is true (default), includes original CC and TO recipients. If 'reply_all' is false, no CC recipients are added. \| [reply_draft] Optional: A list of email addresses for CC recipients. If not provided and 'reply_type' is 'reply_all' (default), includes original CC and TO recipients. If 'reply_type' is 'reply', no CC recipients are added. \| [forward] Optional: A list of email addresses for CC recipients. (array) |
|
|
53
|
+
| `--bcc` | No | [send] Optional: A list of email addresses for BCC recipients. \| [draft] BCC recipient(s), comma-separated. \| [reply] Optional: A list of email addresses for BCC recipients. \| [reply_draft] Optional: A list of email addresses for BCC recipients. \| [forward] Optional: A list of email addresses for BCC recipients. (array) |
|
|
54
54
|
| `--from_mailbox` | No | [send] Optional: The email address to send from (e.g., team@company.com). If not specified, the email will be sent from the current user's mailbox. Requires 'Mail.Send.Shared' permission for shared/group mailboxes. \| [reply] Optional: The email address to send the reply from (e.g., team@genspark.ai). If not specified, the reply will be sent from the current user's mailbox. Requires 'Mail.Send.Shared' permission for shared/group mailboxes. \| [reply_draft] Optional: The email address to create the draft from (e.g., team@genspark.ai). If not specified, the draft will be created in the current user's mailbox. Requires 'Mail.Send.Shared' permission for shared/group mailboxes. \| [forward] Optional: The email address to send from (e.g., team@genspark.ai). If not specified, forwards from the current user's mailbox. Requires 'Mail.Send.Shared' permission for shared/group mailboxes. (string) |
|
|
55
55
|
| `--content_type` | No | [send] Content type of the body. Default: text/html (recommended) **CRITICAL**: body field format MUST match this parameter: - 'text/plain': body should be plain text - 'text/html': body MUST be valid HTML (not Markdown) Always convert Markdown to HTML before passing to this tool. \| [reply] Content type of the reply body. Default: text/html (recommended) **CRITICAL**: body field format MUST match this parameter: - 'text/plain': body should be plain text - 'text/html': body MUST be valid HTML (not Markdown) Always convert Markdown to HTML before passing to this tool. \| [forward] Content type of the body. Default: text/html \| [group_reply] The format of the content. Use 'text/plain' for plain text or 'text/html' for HTML content. Default is 'text/plain'. (string, one of: text/plain, text/html) |
|
|
56
56
|
| `--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`) |
|
|
57
57
|
| `--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`) |
|
|
58
|
+
| `--attachments` | No | [send] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [draft] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [reply] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [reply_draft] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [forward] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). \| [group_reply] Optional file attachments. Each item is either a local file path (read inline by the gsk CLI — the bytes ride in the request body as base64 and are not persisted to blob storage) or an already-hosted URL (file-wrapper URL or other public https). Files are delivered as real email attachments (not links): inline base64 for items ≤3 MB, Microsoft Graph upload session for larger Outlook attachments. CLI alias: --attach / --attachment (repeatable). CLI inline cap: 5 MiB per local file — larger files must be uploaded via 'gsk upload' first and passed as a URL. Per-message raw-payload cap: 18 MiB for Gmail (Gmail's 25 MB send cap is on the base64-encoded RFC 822 message; 18 MiB raw leaves headroom for ~33% encoding overhead) and 150 MB for Outlook (via Graph upload session). (array) |
|
|
59
|
+
| `--body_type` | No | [draft] Body format: 'html' (default) or 'text'. (string) |
|
|
58
60
|
| `--message_id` | No | [reply] The Outlook message ID to reply to. \| [forward] The Outlook message ID to forward. \| [delete] The Outlook message ID to delete \| [archive] The Outlook message ID to archive \| [move] The Outlook message ID to move \| [mark_as_read] (Deprecated, use message_ids) A single Outlook message ID to mark \| [add_category] The Outlook message ID to add category to \| [remove_category] The Outlook message ID to remove category from \| [get_attachment] The Outlook message ID containing the attachment (string) |
|
|
59
61
|
| `--reply_all` | No | [reply] Optional: If true (default), reply to all original recipients (TO and CC). If false, reply only to the original sender. (boolean, default: `True`) |
|
|
60
62
|
| `--include_original` | No | [reply] Optional: Whether to include the original email content as a quote in the reply. Defaults to true. \| [reply_draft] Optional: Whether to include the original email content as a quote in the draft. Defaults to true. (boolean, default: `True`) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: gsk-sharepoint
|
|
3
3
|
version: 1.0.0
|
|
4
4
|
description: 'SharePoint site and file operations. Actions: list, search, read_content,
|
|
5
|
-
read_file.'
|
|
5
|
+
read_file, upload.'
|
|
6
6
|
metadata:
|
|
7
7
|
category: general
|
|
8
8
|
requires:
|
|
@@ -15,7 +15,7 @@ metadata:
|
|
|
15
15
|
|
|
16
16
|
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
17
17
|
|
|
18
|
-
SharePoint site and file operations. Actions: list, search, read_content, read_file.
|
|
18
|
+
SharePoint site and file operations. Actions: list, search, read_content, read_file, upload.
|
|
19
19
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
@@ -27,11 +27,11 @@ gsk sharepoint [options]
|
|
|
27
27
|
|
|
28
28
|
| Flag | Required | Description |
|
|
29
29
|
|------|----------|-------------|
|
|
30
|
-
| `<action>` (positional) | Yes | Action to perform. 'list': List files in a site or library; 'search': Search across sites; 'read_content': Read content from a list item or page; 'read_file': Read and extract content from a file (string, one of: list, search, read_content, read_file) |
|
|
31
|
-
| `--sharepoint_url` | No | [list] A SharePoint URL to list files from. Can be a site URL, document library URL (AllItems.aspx), or a folder URL. Example: 'https://company.sharepoint.com/sites/TeamSite/Shared Documents/Forms/AllItems.aspx' (string) |
|
|
32
|
-
| `--site_id` | No | [list] The SharePoint site ID. Use this to list the default document library of a specific site. Get site IDs from sharepoint_search results. \| [read_content] Site ID from SharePoint search results siteInfo. Required for listItem content type. (string) |
|
|
33
|
-
| `--drive_id` | No | [list] The document library (drive) ID. Use this to list files in a specific document library. (string) |
|
|
34
|
-
| `--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. (string) |
|
|
30
|
+
| `<action>` (positional) | Yes | Action to perform. 'list': List files in a site or library; 'search': Search across sites; 'read_content': Read content from a list item or page; 'read_file': Read and extract content from a file; 'upload': Upload a file to a site or library (string, one of: list, search, read_content, read_file, upload) |
|
|
31
|
+
| `--sharepoint_url` | No | [list] A SharePoint URL to list files from. Can be a site URL, document library URL (AllItems.aspx), or a folder URL. Example: 'https://company.sharepoint.com/sites/TeamSite/Shared Documents/Forms/AllItems.aspx' \| [upload] Target folder URL on SharePoint. Example: 'https://company.sharepoint.com/sites/Team/Shared Documents/Reports'. The tool resolves this to a drive + folder. (string) |
|
|
32
|
+
| `--site_id` | No | [list] The SharePoint site ID. Use this to list the default document library of a specific site. Get site IDs from sharepoint_search results. \| [read_content] Site ID from SharePoint search results siteInfo. Required for listItem content type. \| [upload] SharePoint site ID. The file is uploaded to the default document library; combine with ``folder_id`` to target a subfolder. (string) |
|
|
33
|
+
| `--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
|
+
| `--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
35
|
| `--limit` | No | [list] Maximum number of items to return (1-200). Default: 50 (integer) |
|
|
36
36
|
| `--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
37
|
| `--entity_types` | No | [search] Types of SharePoint content to search. Defaults to all types. (array, default: `['site', 'listItem', 'list', 'driveItem']`) |
|
|
@@ -41,6 +41,11 @@ gsk sharepoint [options]
|
|
|
41
41
|
| `--list_id` | No | [read_content] List ID from SharePoint search results siteInfo. Required for listItem content type. (string) |
|
|
42
42
|
| `--list_item_id` | No | [read_content] List item ID from SharePoint search results siteInfo. Required for listItem content type. (string) |
|
|
43
43
|
| `--file_id` | No | [read_file] The ID of the file OR the SharePoint URL to read from Microsoft OneDrive/SharePoint/Teams. Can be either a file ID (like '01W56PINYRO3...') or a full SharePoint URL (like 'https://domain.sharepoint.com/...'). (string) |
|
|
44
|
+
| `--file_path` | No | [upload] Local file path to upload. Mutually exclusive with ``content``. (string) |
|
|
45
|
+
| `--content` | No | [upload] Text content to upload as the file body (encoded as UTF-8). Useful for creating .txt/.md/.json/.csv files without a local copy. Mutually exclusive with ``file_path``. (string) |
|
|
46
|
+
| `--file_name` | No | [upload] File name to create on SharePoint, including the extension (e.g. 'report.pdf'). Required when ``content`` is used; if omitted with ``file_path``, the basename of the local file is used. (string) |
|
|
47
|
+
| `--mime_type` | No | [upload] MIME type of the file. Auto-detected from the file extension if omitted. (string) |
|
|
48
|
+
| `--conflict_behavior` | No | [upload] How to handle a name conflict on SharePoint: 'rename' appends a suffix (default), 'replace' overwrites, 'fail' returns an error. (string, one of: rename, replace, fail) |
|
|
44
49
|
|
|
45
50
|
## Local File Support
|
|
46
51
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsk-sharepoint-upload
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Upload a file to a SharePoint document library.
|
|
5
|
+
metadata:
|
|
6
|
+
category: sharepoint
|
|
7
|
+
requires:
|
|
8
|
+
bins:
|
|
9
|
+
- gsk
|
|
10
|
+
cliHelp: gsk sharepoint upload --help
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# gsk-sharepoint-upload
|
|
14
|
+
|
|
15
|
+
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
16
|
+
|
|
17
|
+
Upload a file to a SharePoint document library.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
gsk sharepoint upload [options]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Flags
|
|
26
|
+
|
|
27
|
+
| Flag | Required | Description |
|
|
28
|
+
|------|----------|-------------|
|
|
29
|
+
| `<file_path>` (positional) | No | Local file path to upload. Mutually exclusive with ``content``. (string) |
|
|
30
|
+
| `--content` | No | Text content to upload as the file body (encoded as UTF-8). Useful for creating .txt/.md/.json/.csv files without a local copy. Mutually exclusive with ``file_path``. (string) |
|
|
31
|
+
| `-n`, `--file_name` | No | File name to create on SharePoint, including the extension (e.g. 'report.pdf'). Required when ``content`` is used; if omitted with ``file_path``, the basename of the local file is used. (string) |
|
|
32
|
+
| `-u`, `--sharepoint_url` | No | Target folder URL on SharePoint. Example: 'https://company.sharepoint.com/sites/Team/Shared Documents/Reports'. The tool resolves this to a drive + folder. (string) |
|
|
33
|
+
| `-s`, `--site_id` | No | SharePoint site ID. The file is uploaded to the default document library; combine with ``folder_id`` to target a subfolder. (string) |
|
|
34
|
+
| `-d`, `--drive_id` | No | Document library (drive) ID. Combine with ``folder_id`` to target a specific folder. (string) |
|
|
35
|
+
| `-f`, `--folder_id` | No | Folder item ID inside ``drive_id`` or the site's default drive. If omitted, the upload goes to the drive root. (string) |
|
|
36
|
+
| `--mime_type` | No | MIME type of the file. Auto-detected from the file extension if omitted. (string) |
|
|
37
|
+
| `--conflict_behavior` | No | How to handle a name conflict on SharePoint: 'rename' appends a suffix (default), 'replace' overwrites, 'fail' returns an error. (string, one of: rename, replace, fail) |
|
|
38
|
+
|
|
39
|
+
## Local File Support
|
|
40
|
+
|
|
41
|
+
Parameters that accept URLs (`--sharepoint_url`) also accept local file paths. The CLI automatically uploads local files before sending to the API.
|
|
42
|
+
|
|
43
|
+
## See Also
|
|
44
|
+
|
|
45
|
+
- [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
|
|
@@ -31,7 +31,7 @@ gsk video [options]
|
|
|
31
31
|
|------|----------|-------------|
|
|
32
32
|
| `<query>` (positional) | Yes | Detailed description of the video to generate. 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'. (string) |
|
|
33
33
|
| `--file_name` | No | The name of the video to generate. (string, null) |
|
|
34
|
-
| `-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, 10sofficial/pixverse/v5: A model for generate video with high quality, fast.fast(30s one video) but expensive. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8sAdditional features: 1. Generating smooth video transitions between two specified keyframes (start and end frames). pixverse/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.sora-2: OpenAI Sora 2 video generation model for fast, creative videos. Supports text-to-video, image-to-video (reference frame), and video remixing. Designed for speed and experimentation. Supported ratios: 16:9, 9:16. Duration: 4s, 8s, 12ssora-2-pro: OpenAI Sora 2 Pro for production-quality videos. Higher fidelity than sora-2, best for cinematic footage and marketing assets. Supports 720p and 1080p resolutions. Supported ratios: 16:9, 9:16. Duration: 4s, 8sfal-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. (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, official/pixverse/v5, pixverse/v6, fal-ai/bytedance/seedance-2.0, sora-2, sora-2-pro, fal-ai/bytedance-upscaler/upscale/video, xai/grok-imagine-video, xai/grok-imagine-video/video-extension) |
|
|
34
|
+
| `-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, 10sofficial/pixverse/v5: A model for generate video with high quality, fast.fast(30s one video) but expensive. Supported ratios: 16:9, 9:16, 4:3, 1:1, 3:4. Duration: 5s, 8sAdditional features: 1. Generating smooth video transitions between two specified keyframes (start and end frames). pixverse/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.sora-2: OpenAI Sora 2 video generation model for fast, creative videos. Supports text-to-video, image-to-video (reference frame), and video remixing. Designed for speed and experimentation. Supported ratios: 16:9, 9:16. Duration: 4s, 8s, 12ssora-2-pro: OpenAI Sora 2 Pro for production-quality videos. Higher fidelity than sora-2, best for cinematic footage and marketing assets. Supports 720p and 1080p resolutions. Supported ratios: 16:9, 9:16. Duration: 4s, 8sfal-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. 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. 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. (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, official/pixverse/v5, pixverse/v6, fal-ai/bytedance/seedance-2.0, sora-2, sora-2-pro, 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) |
|
|
35
35
|
| `-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) (array) |
|
|
36
36
|
| `-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). (string, one of: 16:9, 9:16, 4:3, 1:1, 9:21) |
|
|
37
37
|
| `-d`, `--duration` | No | The duration of the video to generate in seconds. (number, default: `5`) |
|