Package Exports
- @genspark/cli
- @genspark/cli/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@genspark/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Genspark CLI (gsk)
Command-line interface for Genspark AI services. Provides web search, content crawling, image/video/audio generation, file management, and more.
Results go to stdout as JSON, progress/debug info goes to stderr — ideal for integration with AI agents and automation pipelines.
Installation
npm install -g @genspark/cliRequires Node.js >= 18.
Quick Start
# Log in via browser
gsk login
# Search the web
gsk search "latest AI news"
# Generate an image
gsk img "A beautiful sunset over mountains" -o ./sunset.png
# Crawl a webpage
gsk crawl "https://example.com/article"Authentication
Log in with your Genspark account:
gsk loginThis opens a browser for authentication and saves the API key to ~/.genspark-tool-cli/config.json.
Alternatively, provide an API key directly:
# Via environment variable
export GSK_API_KEY="gsk_..."
# Via CLI option
gsk search "query" --api-key "gsk_..."To check your current identity:
gsk login-info
gsk me # shorthandTo log out:
gsk logoutConfiguration
Config is loaded from three sources (highest priority first):
- CLI options —
--api-key,--base-url, etc. - Environment variables —
GSK_API_KEY,GSK_BASE_URL,GSK_PROJECT_ID - Config file —
~/.genspark-tool-cli/config.json
{
"api_key": "gsk_...",
"base_url": "https://www.genspark.ai",
"project_id": "project_abc123",
"debug": false,
"timeout": 300000
}Global Options
| Option | Env Var | Default | Description |
|---|---|---|---|
--api-key <key> |
GSK_API_KEY |
— | API key (required) |
--base-url <url> |
GSK_BASE_URL |
https://www.genspark.ai |
API base URL |
--project-id <id> |
GSK_PROJECT_ID |
— | Project ID for access control |
--debug |
— | false |
Enable debug output |
--timeout <ms> |
— | 300000 (5 min) |
Request timeout |
--output <format> |
— | json |
Output format: json or text |
--refresh |
— | — | Force refresh cached tool schemas |
Commands
list-tools (alias: ls)
List all available tools.
gsk list-tools
gsk lslogin-info (alias: me)
Show your current account info — email, name, and membership plan.
gsk login-info
gsk meinit-opencode
Generate an .opencode.json config file for OpenCode, pre-configured to use Genspark's LLM proxy with your API key.
# Generate with default model (claude-opus-4-6-1m)
gsk init-opencode
# Specify a different default model
gsk init-opencode --model claude-sonnet-4-6
# Write to a custom path
gsk init-opencode -o ./my-project/.opencode.json| Option | Default | Description |
|---|---|---|
--model <name> |
claude-opus-4-6-1m |
Default model for OpenCode |
-o, --out <path> |
.opencode.json (cwd) |
Output file path |
web_search (alias: search)
Search the web.
gsk search "latest AI news"
gsk search "latest AI news" -n 5
gsk search "最新のAIニュース" -l ja| Option | Default | Description |
|---|---|---|
-n, --num <count> |
10 |
Number of results (1-50) |
-l, --language <code> |
— | Language code (e.g., en, zh, ja) |
crawler (alias: crawl)
Extract content from a web page or document.
gsk crawl "https://example.com/article"
gsk crawl "https://example.com/gallery" --images
gsk crawl "https://example.com/page" --no-text --images| Option | Default | Description |
|---|---|---|
--no-text |
extract text | Skip text content extraction |
-i, --images |
false |
Include image URLs in response |
summarize_large_document (alias: summarize)
Analyze a document and answer questions about it.
gsk summarize "https://example.com/report.pdf" "What are the key findings?"Arguments: <url> <question>
image_search (alias: img-search)
Search for images on the web.
gsk img-search "modern architecture"understand_images (alias: analyze)
Analyze images with AI vision model.
gsk analyze "Describe this image" -i "https://example.com/image.jpg"
gsk analyze "Extract all text" -i "https://img1.jpg" "https://img2.jpg"
gsk analyze "What's in this photo?" -i ./photo.jpg| Option | Default | Description |
|---|---|---|
-i, --image_urls <url...> |
— | Image URL(s) or local file path(s) to analyze (required) |
-r, --instruction <text> |
— | Custom analysis instruction |
image_generation (alias: img)
Generate images using AI. Supports text-to-image and image-to-image.
# Text-to-image
gsk img "A beautiful sunset over mountains" -r "16:9" -o ./sunset.png
gsk img "Modern office at night" -s "4k" -r "1:1"
# Image-to-image (reference-based)
gsk img "A portrait in similar style" -i ./reference.png| Option | Default | Description |
|---|---|---|
-r, --aspect_ratio <ratio> |
1:1 |
Aspect ratio (1:1, 16:9, 9:16) |
-s, --image_size <size> |
auto |
Image size: auto, 2k, 4k |
-m, --model <name> |
— | Model to use (optional) |
-i, --image_urls <url...> |
— | Reference image URL(s) or local file(s) for image-to-image |
-o, --output-file <path> |
— | Download the generated file to a local path |
video_generation (alias: video)
Generate videos using AI.
gsk video "A cat playing with yarn" -m "kling/v1.6/standard" -d 5 -o ./cat.mp4
gsk video "Sunrise over a beach" -m "minimax/hailuo-02/standard" -r "16:9" -d 8
# Image-to-video
gsk video "Camera pan around the subject" -m "kling/v1.6/standard" -i ./photo.jpg| Option | Default | Description |
|---|---|---|
-m, --model <name> |
— | Model (required). e.g., kling/v1.6/standard, minimax/hailuo-02/standard |
-r, --aspect_ratio <ratio> |
16:9 |
Aspect ratio |
-d, --duration <sec> |
5 |
Duration in seconds (2-15) |
-i, --image_urls <url...> |
— | Reference image URL(s) or local file(s) |
-a, --audio_url <url> |
— | Audio URL for soundtrack |
-o, --output-file <path> |
— | Download the generated file to a local path |
audio_generation (alias: audio)
Generate audio: TTS, music, or sound effects.
# Text-to-speech
gsk audio "Hello, welcome to Genspark!" -m "google/gemini-2.5-pro-preview-tts" -r "professional female voice"
gsk audio "Hello, welcome to Genspark!" -m "google/gemini-2.5-pro-preview-tts" -o ./hello.mp3
# Music with lyrics
gsk audio "A pop song" -m "fal-ai/minimax/speech-2.6-hd" -l "Verse 1: ..." -d 120
# Sound effect
gsk audio "Door creaking slowly open" -m "sfx-model"| Option | Default | Description |
|---|---|---|
-m, --model <name> |
— | Model (required). e.g., elevenlabs/v3-tts, fal-ai/minimax/speech-2.6-hd |
-d, --duration <sec> |
0 (auto) |
Duration in seconds |
-r, --requirements <text> |
— | Voice requirements for TTS |
-l, --lyrics <text> |
— | Lyrics for song generation |
-o, --output-file <path> |
— | Download the generated file to a local path |
upload
Upload a local file and get a URL for use in other commands.
gsk upload "./image.png"
gsk upload "./document.pdf"download
Download a file from a file wrapper URL.
# Get download URL only
gsk download "/api/files/s/abc123"
# Download and save to local file
gsk download "/api/files/s/abc123" -s "./downloaded.png"| Option | Description |
|---|---|
-s, --save <path> |
Download and save to local file path |
analyze_media (alias: media-analyze)
Analyze various types of media content including images, audio, and video.
gsk media-analyze -i "https://example.com/image.jpg" -r "Describe the content"
gsk media-analyze -i "https://example.com/video.mp4" -r "Summarize the video"| Option | Default | Description |
|---|---|---|
-i, --media_urls <urls> |
— | Media URL(s) to analyze (required) |
-r, --requirements <text> |
— | Analysis instructions |
audio_transcribe (alias: transcribe)
Transcribe audio files to text.
gsk transcribe -i "https://example.com/audio.mp3"
gsk transcribe -i ./meeting.wav -m "whisper-large-v3"| Option | Default | Description |
|---|---|---|
-i, --audio_urls <url...> |
— | Audio URL(s) or local file(s) to transcribe (required) |
-m, --model <name> |
— | Transcription model to use |
aidrive (alias: drive)
AI-Drive file storage and management. List, create, delete, move files and directories. Download videos, audio, and files from URLs directly to AI-Drive.
# List files in root directory
gsk drive ls
gsk drive ls -p "/documents" -f file
# Create directory
gsk drive mkdir -p "/my-folder"
# Move file
gsk drive move -p "/old-path/file.txt" --target_path "/new-path/file.txt"
# Download video/audio/file to AI-Drive
gsk drive download_video --video_url "https://example.com/video.mp4" --target_folder "/videos"
gsk drive download_file --file_url "https://example.com/doc.pdf" --target_folder "/docs"
# Upload content to AI-Drive
gsk drive upload --file_content "Hello World" --upload_path "/notes/hello.txt"
# Get readable URL for a file
gsk drive get_readable_url -p "/documents/report.pdf"
# Compress/decompress
gsk drive compress -p "/my-folder"
gsk drive decompress -p "/archive.zip"| Option | Default | Description |
|---|---|---|
-p, --path <path> |
— | File or directory path in AI-Drive |
-f, --filter_type <type> |
all |
Filter: all, file, directory |
--file_type <type> |
all |
File type filter: all, audio, video, image |
--target_path <path> |
— | Target path for move operations |
--target_folder <path> |
— | Target folder for downloads |
--video_url <url> |
— | Video URL for download_video action |
--audio_url <url> |
— | Audio URL for download_audio action |
--file_url <url> |
— | File URL for download_file action |
--file_name <name> |
— | Custom file name for downloads |
--file_content <text> |
— | Content to upload |
--upload_path <path> |
— | Destination path for upload |
create_task (alias: task)
Create and execute tasks using specialized AI agents.
# Create a podcast
gsk task podcasts --task_name "AI Trends" --query "Create a podcast about AI trends" --instructions "Focus on practical applications"
# Create a document
gsk task docs --task_name "Quantum Report" --query "Write a report on quantum computing" --instructions "Include recent breakthroughs"
# Create slides
gsk task slides --task_name "Q4 Results" --query "Create a Q4 results presentation" --instructions "Use charts and data"
# Deep research
gsk task deep_research --task_name "Fusion Energy" --query "Research fusion energy advances" --instructions "Cover public and private sector"| Option | Default | Description |
|---|---|---|
--task_name <name> |
— | Name for the task (required) |
--query <text> |
— | Query describing what to create (required) |
--instructions <text> |
— | Detailed instructions (required) |
Supported task types: super_agent, podcasts, docs, slides, deep_research, website, video_generation, audio_generation
stock_price (alias: stock)
Retrieve stock price information and financial data.
gsk stock AAPL
gsk stock MSFTLocal File Handling
Most commands that accept URLs also accept local file paths. The CLI automatically uploads local files before passing them to the API:
# These are equivalent:
gsk analyze "Describe this" -i ./photo.jpg
gsk img "Enhance this" -i ./photo.png -o ./result.png
gsk video "Animate this" -i ./frame.jpg -o ./video.mp4Use -o / --output-file to save generated results directly to a local file.
Auto-Update
The CLI checks for updates every 4 hours and installs new versions in the background.
To disable auto-update:
# Via environment variable
export GSK_NO_AUTO_UPDATE=1
# Via config file
# Add "auto_update": false to ~/.genspark-tool-cli/config.jsonOutput Conventions
| Stream | Content | Consumer |
|---|---|---|
| stdout | JSON result | Programs / AI agents |
| stderr | Progress, debug, error messages | Human / logs |
This separation allows programs to parse clean JSON from stdout while humans can follow progress on stderr.
License
MIT