@genspark/cli 1.0.12 → 1.0.13
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/README.md +107 -133
- package/dist/config.d.ts +25 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +54 -22
- package/dist/config.js.map +1 -1
- package/dist/index.js +94 -10
- package/dist/index.js.map +1 -1
- package/docs/skills.md +59 -2
- package/package.json +1 -1
- package/skills/gsk-audio-generation/SKILL.md +3 -3
- package/skills/gsk-create-task/SKILL.md +1 -1
- package/skills/gsk-image-generation/SKILL.md +1 -1
- package/skills/gsk-salesforce/SKILL.md +38 -0
- package/skills/gsk-vd/SKILL.md +228 -0
- package/skills/gsk-video-generation/SKILL.md +3 -2
- package/skills/gsk-youtube/SKILL.md +44 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsk-vd
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Virtual Developer — drive a VD project (issues, VMs, templates, shell exec, GitHub) from the CLI / local OpenCode. Gated behind gk_vd_project_agent and requires vd_project_id to be configured."
|
|
5
|
+
metadata:
|
|
6
|
+
category: virtual-developer
|
|
7
|
+
requires:
|
|
8
|
+
bins:
|
|
9
|
+
- gsk
|
|
10
|
+
cliHelp: gsk vd --help
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# gsk-vd — Virtual Developer CLI
|
|
14
|
+
|
|
15
|
+
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` first for auth, global flags, and output conventions.
|
|
16
|
+
|
|
17
|
+
`gsk vd <subcmd>` drives an existing Virtual Developer project end-to-end from a shell. It exposes the exact same 21 tools the Web UI's `VdProjectAgentChat` agent uses (`backend/virtual_developer/project_agent/agent.py`) — issue CRUD + dispatch, VM lifecycle (start/stop/create/delete/save_snapshot), on-VM shell exec, OpenCode session inspection, GitHub App auth, and VM template management.
|
|
18
|
+
|
|
19
|
+
Use this skill when you are **driving** an already-provisioned VD project as a CI-like agent (creating issues, dispatching work to VMs, inspecting PRs, running shell commands on the VM). **Do not** use it to create the VD project itself — that stays in the web UI.
|
|
20
|
+
|
|
21
|
+
## Activation
|
|
22
|
+
|
|
23
|
+
`gsk vd` is hidden by default. It becomes available only when **both** conditions hold:
|
|
24
|
+
|
|
25
|
+
1. **Server-side:** the user has the `gk_vd_project_agent` gatekeeper flag (closed beta).
|
|
26
|
+
2. **Client-side:** a `vd_project_id` is configured — either in the gsk config file or via `GSK_VD_PROJECT_ID` env.
|
|
27
|
+
|
|
28
|
+
### Enable via config file
|
|
29
|
+
|
|
30
|
+
Add to `~/.genspark-tool-cli/config.json`:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"api_key": "gsk-...",
|
|
35
|
+
"base_url": "http://localhost:8582",
|
|
36
|
+
"vd_project_id": "vd-proj-abc123"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Enable via env var
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
export GSK_VD_PROJECT_ID=vd-proj-abc123
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Use an alternate config profile
|
|
47
|
+
|
|
48
|
+
If you want to keep your default profile untouched (e.g. to drive a dev-backend VD project from the same machine that talks to prod for other gsk commands):
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Point gsk at a separate config file — also affects where tools-cache.json lives
|
|
52
|
+
export GSK_CONFIG=/path/to/vd-profile/config.json
|
|
53
|
+
# or per-command
|
|
54
|
+
gsk --config /path/to/vd-profile/config.json vd list_vms
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Once activated, every `gsk vd <subcmd>` command auto-injects the resolved `vd_project_id` as the default for its `--vd_project_id` flag. You can still override per-call with `--vd_project_id <other-id>`.
|
|
58
|
+
|
|
59
|
+
## Conventions
|
|
60
|
+
|
|
61
|
+
- All 21 commands accept `--vd_project_id <id>` but it is auto-defaulted from config; you rarely need to pass it.
|
|
62
|
+
- All commands return an NDJSON response with `{version, status, message, data, session_state}`. Tool-specific payload is under `data`.
|
|
63
|
+
- A tool that fails business-layer validation (wrong state, missing permission, not found) returns `status: "error"` with a human-readable `message`; this is **not** an infra error — inspect and retry with adjusted args.
|
|
64
|
+
- Long-running operations (template snapshot, VM provisioning) return immediately with a `"creating" | "provisioning"` status. Poll via the corresponding Get / List tool until the status changes.
|
|
65
|
+
|
|
66
|
+
## Tool catalog
|
|
67
|
+
|
|
68
|
+
### Project & issues
|
|
69
|
+
|
|
70
|
+
| Subcommand | Required flags | Purpose |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| `gsk vd get_project_overview` | — | Returns project metadata, repos, VMs (id + ready_state), and an `issues_summary` bucket count. Your first call in any workflow. |
|
|
73
|
+
| `gsk vd list_issues` | `[--status <state>]` | List issues. Without `--status` you get all; with it, filter to one of: `pending`, `working`, `wait_human`, `waiting_code_review`, `testing`, `pending_user_confirm`, `completed`, `failed`, `cancelled`. |
|
|
74
|
+
| `gsk vd get_issue_detail` | `--issue_id <id>` | Full issue record incl. `status`, `pr_url`, `assigned_vm_id`, `work_log` (state transitions with timestamps), `test_result`, `attempt_count`. |
|
|
75
|
+
| `gsk vd issue_action` | `--issue_id <id> --action <verb>` | Move an issue through its lifecycle. `action` ∈ `continue`, `cancel`, `run_tests`, `confirm_merge`, `reject_merge`, `submit_review`, `retry`. `--reason` is optional text recorded in the work log. |
|
|
76
|
+
| `gsk vd create_github_issue` | `--repo_id <id> --title <t> --body <md>` | Creates a new GitHub issue in the project's repo. The webhook handler will mirror it back as a VD issue shortly. Use after `get_project_overview` to read the `repo_id`. |
|
|
77
|
+
| `gsk vd dispatch_issues` | — | One-shot scheduler trigger: pops the oldest `pending` issue and assigns it to the first idle VM. Returns `assigned: [{issue_id, vm_id}]`. Useful when you want to "push" without waiting for the periodic scheduler. |
|
|
78
|
+
|
|
79
|
+
### VMs
|
|
80
|
+
|
|
81
|
+
| Subcommand | Required flags | Purpose |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| `gsk vd list_vms` | — | List all VMs in the project with id, vm_name, ready_state, current_issue_id, public preview_url / domain. |
|
|
84
|
+
| `gsk vd get_vm_status` | `--vm_id <id>` | Same fields as `list_vms` but single VM, plus public_ip. |
|
|
85
|
+
| `gsk vd vm_action` | `--vm_id <id> --action <start\|stop>` | Start or stop a VM. These are synchronous (~10-60s). **Note:** other lifecycle actions (suspend/resume/save_snapshot/reset) are not exposed via this minimal wrapper — use the Web UI or direct API for those. |
|
|
86
|
+
| `gsk vd create_vm` | — | Provision a new VM with project defaults. `--vm_size <lite\|standard\|high>` picks the tier (default `standard`): `lite` = 2C/4G Standard_B2s (64GB), `standard` = 2C/8G Standard_B2ms (64GB), `high` = 4C/16G Standard_B4ms (128GB). Returns immediately with `vm_id` + `status: "provisioning"`. Poll `get_vm_status` until `ready_state == "ready"` (~3-5 min). |
|
|
87
|
+
| `gsk vd delete_vm` | `--vm_id <id>` | Delete a VM (soft delete; underlying Azure instance is also deleted). Confirm with user before calling. |
|
|
88
|
+
| `gsk vd update_vm_startup_script` | `--vm_id <id> --startup_script <shell>` | Overwrite the VM's `startup_script` field. Typically a `#!/bin/bash` script that attaches to a tmux session on SSH login. |
|
|
89
|
+
| `gsk vd reconfigure_vm` | `--vm_id <id>` | Re-run the full VM env setup: apt packages, opencode install, VS Code Remote profile, Caddy `:8443` reverse proxy, user SSH key, gsk token. **Use when a VM provisioned before a given config step existed is missing something** — e.g. preview URL at `:8443` returns CORS errors because Caddy was never configured. Idempotent. VM must be `ready` or `working`. Takes ~30-60s; briefly interrupts the preview URL during Caddy restart. Returns per-step status (`ok`/`failed`/`skipped`) for user-key and gsk-token injection. |
|
|
90
|
+
| `gsk vd resize_vm` | `--vm_id <id> --vm_size <lite\|standard\|high>` | Resize a VM to a different tier. VM must be `ready` or `suspended`. Runs deallocate → Azure SKU change → optional disk grow → start (if it was running). Takes ~60-120s. **Disk can only grow, not shrink** — down-resize keeps the existing disk size. |
|
|
91
|
+
|
|
92
|
+
### Exec / sessions
|
|
93
|
+
|
|
94
|
+
| Subcommand | Required flags | Purpose |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| `gsk vd execute_command` | `--vm_id <id> --command <sh>` | Run a shell command on the VM via SSH. `--timeout <sec>` (default 30, max 120). Returns `{exit_code, stdout, stderr}`. VM must be `ready` (not `suspended`). |
|
|
97
|
+
| `gsk vd get_session_messages` | `--vm_id <id> [--session_id <sid>]` | Without `--session_id`: list OpenCode sessions on that VM. With it: fetch message transcript. |
|
|
98
|
+
| `gsk vd get_pr_info` | `--issue_id <id> [--include_diff]` | Fetch GitHub PR metadata (title, state, mergeable, review comments). `--include_diff` returns full diff (can be large). Issue must be past PR-creation phase. |
|
|
99
|
+
|
|
100
|
+
### GitHub integration
|
|
101
|
+
|
|
102
|
+
| Subcommand | Required flags | Purpose |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| `gsk vd check_github_auth` | `--repo_id <id>` | Verify the VD GitHub App installation for this repo can still acquire an installation token. Returns `ok`, `repo_full_name`, `installation_id`, `expires_at`. Use this when a VM reports 401s from git/GitHub API. |
|
|
105
|
+
| `gsk vd refresh_vm_github_token` | `--vm_id <id> --repo_id <id>` | Re-issue a fresh installation token and inject it into the VM's `~/.netrc` / git credential helper. Run this if `check_github_auth` succeeds but the VM still sees auth errors (token expired inside VM). |
|
|
106
|
+
| `gsk vd get_repo_github_token` | `--repo_id <id>` | Issue a GitHub App installation token and **return it to the caller** (not a VM) so local `gh` / `git` can act on the repo — merge PRs, push, clone from your laptop. Token inherits the App's installed permissions (repo read+write) and expires in ~1h (GitHub API cap); re-call for a fresh one. **WARNING**: treat response `data.token` as a secret — don't log, paste, or persist. gsk-only; not exposed in the web agent to avoid leakage via chat replays. |
|
|
107
|
+
|
|
108
|
+
### VM templates
|
|
109
|
+
|
|
110
|
+
| Subcommand | Required flags | Purpose |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| `gsk vd create_vm_template` | `--source_vm_id <id> --name <t>` | Snapshot a `ready` VM and register it as a reusable template. **Always confirm with the user before calling** — the snapshot runs 2-5 min in background. Returns `{template_id, status: "creating"}`. Poll `get_vm_template` until `status == "ready"`; `status == "failed"` surfaces the error in `error`. |
|
|
113
|
+
| `gsk vd list_vm_templates` | — | List all templates in the project with id, name, status, size (raw Azure SKU), vm_size (tier `lite`/`standard`/`high`), region, env_configured, ctime. |
|
|
114
|
+
| `gsk vd get_vm_template` | `--template_id <id>` | Full detail of a single template. |
|
|
115
|
+
| `gsk vd delete_vm_template` | `--template_id <id>` | Soft-delete a template. **Always confirm with the user first**. The underlying Azure snapshot is NOT deleted (resource-group cleanup only). |
|
|
116
|
+
|
|
117
|
+
## Common workflows
|
|
118
|
+
|
|
119
|
+
### Audit project health
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
gsk vd get_project_overview
|
|
123
|
+
gsk vd list_issues --status failed
|
|
124
|
+
gsk vd list_issues --status waiting_code_review
|
|
125
|
+
gsk vd list_vms
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Push a pending issue to an idle VM
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# See what's pending
|
|
132
|
+
gsk vd list_issues --status pending
|
|
133
|
+
# See which VMs are idle (current_issue_id=null, ready_state=ready)
|
|
134
|
+
gsk vd list_vms
|
|
135
|
+
# Trigger scheduler once
|
|
136
|
+
gsk vd dispatch_issues
|
|
137
|
+
# Watch the assignment
|
|
138
|
+
gsk vd list_issues --status working
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Investigate a failing issue
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
gsk vd get_issue_detail --issue_id <id> # status, work_log, test_result, pr_url
|
|
145
|
+
gsk vd get_pr_info --issue_id <id> # PR state + review comments
|
|
146
|
+
gsk vd get_session_messages --vm_id <vm_id> # list OpenCode sessions on that VM
|
|
147
|
+
gsk vd get_session_messages --vm_id <vm_id> --session_id <sid> # full transcript
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Fix a VM whose preview URL / opencode session won't load
|
|
151
|
+
|
|
152
|
+
Typical symptom: the Web UI shows CORS errors hitting
|
|
153
|
+
`https://<domain>:8443/opencode/...`, or the VM's dev preview is
|
|
154
|
+
unreachable from the browser. Root cause is usually that the VM was
|
|
155
|
+
provisioned before the Caddy `:8443` reverse-proxy step existed, so
|
|
156
|
+
`/etc/caddy/conf.d/vd-preview.caddy` is missing.
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# VM must be running (not suspended)
|
|
160
|
+
gsk vd get_vm_status --vm_id <id>
|
|
161
|
+
# Re-run all env setup; idempotent, ~30-60s.
|
|
162
|
+
gsk vd reconfigure_vm --vm_id <id>
|
|
163
|
+
# Retry the preview URL in the browser.
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Fix a VM whose GitHub token expired
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
gsk vd check_github_auth --repo_id <repo> # server-side token still valid?
|
|
170
|
+
gsk vd refresh_vm_github_token --vm_id <vm> --repo_id <repo> # re-inject into VM
|
|
171
|
+
gsk vd execute_command --vm_id <vm> --command "cd /path/to/repo && git fetch"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Merge a PR from your laptop (local `gh` without pre-existing auth)
|
|
175
|
+
|
|
176
|
+
Use when your local `gh` CLI has no access to a private repo owned by
|
|
177
|
+
the VD GitHub App. Mints a short-lived installation token for that
|
|
178
|
+
specific repo, authenticates `gh` with it, runs the merge, then the
|
|
179
|
+
token expires in ~1h on its own.
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Mint a token and keep only the raw string in a shell variable
|
|
183
|
+
TOKEN=$(gsk vd get_repo_github_token --repo_id <repo_id> | jq -r '.data.token')
|
|
184
|
+
|
|
185
|
+
# Authenticate local gh with the token (reads from stdin)
|
|
186
|
+
echo "$TOKEN" | gh auth login --with-token --hostname github.com
|
|
187
|
+
|
|
188
|
+
# Now normal gh commands work against this repo
|
|
189
|
+
gh pr merge 123 --merge --repo owner/repo
|
|
190
|
+
|
|
191
|
+
# Token expires after ~1h; re-run `gsk vd get_repo_github_token` for a fresh one.
|
|
192
|
+
unset TOKEN
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Safety**: the token is treated as a secret by the skill — don't
|
|
196
|
+
echo it to stdout, don't paste it into chat, don't write it to a
|
|
197
|
+
file on disk. The `jq -r '.data.token'` extraction keeps it in a
|
|
198
|
+
shell variable only.
|
|
199
|
+
|
|
200
|
+
### Run a diagnostic command on a working VM
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# VM must be ready, not suspended
|
|
204
|
+
gsk vd get_vm_status --vm_id <id>
|
|
205
|
+
gsk vd execute_command --vm_id <id> --command "git status && tmux ls" --timeout 10
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Save a configured VM as a template
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Always confirm with user first — takes 2-5 min in background
|
|
212
|
+
gsk vd create_vm_template --source_vm_id <ready-vm> --name "my-dev-env"
|
|
213
|
+
# Returns {template_id, status: "creating"}
|
|
214
|
+
# Poll:
|
|
215
|
+
gsk vd get_vm_template --template_id <tid>
|
|
216
|
+
# When status=="ready", snapshot_id is populated and it's usable in create_vm
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Safety rules
|
|
220
|
+
|
|
221
|
+
- **Confirm with the user before** calling `create_vm_template`, `delete_vm_template`, `delete_vm`, `vm_action --action stop`, `issue_action --action cancel/reject_merge/confirm_merge`, `update_vm_startup_script`, `create_github_issue`. These mutate state, produce user-visible side effects (PR merges, Azure resource churn, GitHub noise), or take minutes to complete.
|
|
222
|
+
- **Never `execute_command`** with destructive args (`rm -rf`, `git reset --hard`, `kill -9`) without an explicit ask. The VM holds user work-in-progress.
|
|
223
|
+
- **Before calling `refresh_vm_github_token`**, verify the VM is actually hitting 401s — do not rotate tokens pre-emptively; it invalidates any concurrent git operation on the VM.
|
|
224
|
+
|
|
225
|
+
## See also
|
|
226
|
+
|
|
227
|
+
- `../gsk-shared/SKILL.md` — auth, output conventions, global flags.
|
|
228
|
+
- Web UI for the same functionality: `https://<host>/virtual-developer/project/<vd_project_id>` → Agent tab.
|
|
@@ -31,15 +31,16 @@ 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
|
|
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) |
|
|
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`) |
|
|
38
38
|
| `-a`, `--audio_url` | No | Audio URL for audio integration in video generation. - Optional for Wan v2.5 model (custom audio: music or speech, WAV/MP3, 3-10s, up to 15MB) - Required for OmniHuman model (audio-driven animation) Leave empty if no audio is needed. (string, default: ``) |
|
|
39
39
|
| `--video_url` | No | Source video URL for video extension. Required for Grok Imagine Video Extension (extend existing video). Supports both web URLs and AI Drive paths (starting with '/' or 'aidrive://') (string, default: ``) |
|
|
40
|
-
| `--video_urls` | No | Input video URLs for video processing tasks. For Wan v2.
|
|
40
|
+
| `--video_urls` | No | Input video URLs for video processing tasks. For Wan v2.7 reference-to-video: provide 1-3 reference videos (use @Video1, @Video2, @Video3 in prompt to reference them). (array, default: `[]`) |
|
|
41
41
|
| `--fast_mode` | No | Enable fast mode for quicker generation at lower cost. Applicable to Veo 3.1 and Seedance 2.0 models. Default: false. (boolean, default: `False`) |
|
|
42
42
|
| `--hd_mode` | No | Enable HD (1080p) mode for higher quality output. Only applicable to Veo 3.1 models. Higher cost (2x). Default: false. (boolean, default: `False`) |
|
|
43
|
+
| `--reference_mode` | No | Enable reference-to-video mode: provided images guide character/style rather than being used as the first frame. Requires image_urls. For Seedance 2.0: routes to seedance-2.0/ref (combinable with fast_mode, supports up to 9 reference images plus optional reference video/audio). For Veo 3.1 base model: upgrades to veo3.1/reference-to-video. Ignored on other models. Default: false. (boolean, default: `False`) |
|
|
43
44
|
|
|
44
45
|
## Local File Support
|
|
45
46
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsk-youtube
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: 'YouTube operations. Actions: search, transcript, comments.'
|
|
5
|
+
metadata:
|
|
6
|
+
category: general
|
|
7
|
+
requires:
|
|
8
|
+
bins:
|
|
9
|
+
- gsk
|
|
10
|
+
cliHelp: gsk yt --help
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# gsk-youtube
|
|
14
|
+
|
|
15
|
+
**PREREQUISITE:** Read `../gsk-shared/SKILL.md` for auth, global flags, and security rules.
|
|
16
|
+
|
|
17
|
+
YouTube operations. Actions: search, transcript, comments.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
gsk yt [options]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Aliases:** `yt`
|
|
26
|
+
|
|
27
|
+
## Flags
|
|
28
|
+
|
|
29
|
+
| Flag | Required | Description |
|
|
30
|
+
|------|----------|-------------|
|
|
31
|
+
| `<action>` (positional) | Yes | Action to perform. 'search': Search for YouTube videos by keyword; 'transcript': Extract transcript and metadata from a YouTube video; 'comments': Scrape comments from a YouTube video (string, one of: search, transcript, comments) |
|
|
32
|
+
| `--query` | No | [search] The query to search video (string) |
|
|
33
|
+
| `--video_id` | No | [transcript] The video id of the youtube video. (string) |
|
|
34
|
+
| `--provide_download_link` | No | [transcript] Whether to provide a download link for the video transcript. (boolean) |
|
|
35
|
+
| `--video_url` | No | [comments] YouTube video URL. Supports youtube.com/watch?v=, youtu.be/, and youtube.com/shorts/ formats. (string) |
|
|
36
|
+
| `--max_comments` | No | [comments] Maximum number of comments to fetch (default 100, max 500). Higher values take longer to scrape. (integer) |
|
|
37
|
+
|
|
38
|
+
## Local File Support
|
|
39
|
+
|
|
40
|
+
Parameters that accept URLs (`--video_url`) also accept local file paths. The CLI automatically uploads local files before sending to the API.
|
|
41
|
+
|
|
42
|
+
## See Also
|
|
43
|
+
|
|
44
|
+
- [gsk-shared](../gsk-shared/SKILL.md) — Authentication and global flags
|