
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@redwilly/whisk-api
Advanced tools
Unofficial free reverse engineered API for Google's Whisk from labs.google.

npm i -g @rohitaryal/whisk-api
# or
bun i -g @rohitaryal/whisk-api
IMAGEN_3_5VEO_3_1whisk can be invoked through both command line and as a module.
Make sure you have:
Installed whisk-api globally (How to install?)
Obtained your google account cookies (How to get cookies?)
Set env variable COOKIE containing your cookie
Bash:
export COOKIE="__YOUR__COOKIE__HERE__"
Command Prompt:
set "COOKIE=__YOUR__COOKIE__HERE__"
Powershell:
$COOKIE = "__YOUR__GOOGLE__COOKIE__HERE__"
NOTE: If you are using environment variables, keep the quotes around cookie to avoid word-splitting and authentication errors.
- Linux/macOS:
"$COOKIE"- PowerShell:
"$env:COOKIE"- Command Prompt:
"%COOKIE%"
Creating a new project
whisk project --name "My Project" --cookie "$COOKIE"
Generating image with prompt
# saves generated image at ./output/ by default
whisk generate --prompt "A bad friend" --cookie "$COOKIE"
Selecting a specific aspect ratio
# Available: SQUARE, PORTRAIT, LANDSCAPE (Default: LANDSCAPE)
whisk generate --prompt "Reptillian CEO" --aspect "PORTRAIT" --cookie "$COOKIE"
Animating an existing image (Image to Video)
# Requires the Media ID of a LANDSCAPE image
whisk animate "__MEDIA__ID__HERE__" --script "Camera pans slowly to the left" --cookie "$COOKIE"
Refining (Editing) an image
whisk refine "__MEDIA__ID__HERE__" --prompt "Add a red hat to the character" --cookie "$COOKIE"
Generating caption from a local image file
whisk caption --file /path/to/img.webp --count 3 --cookie "$COOKIE"
Fetching an existing media by ID
whisk fetch "__MEDIA__ID__HERE__" --cookie "$COOKIE"
Uploading an image as reference
whisk upload /path/to/image.jpg --category SUBJECT --project "__PROJECT__ID__" --cookie "$COOKIE"
Deleting media from the cloud
whisk delete "__MEDIA__ID__HERE__" --cookie "$COOKIE"
Full CLI commands help:
whisk <cmd> [args]
Commands:
whisk project Generate a new project
whisk generate Generate new images using a temporary project
whisk animate <mediaId> Animate an existing landscape image into a video
whisk refine <mediaId> Edit/Refine an existing image
whisk caption Generate captions for a local image file
whisk fetch <mediaId> Download an existing generated media by ID
whisk upload <file> Upload an image to be used as reference later
whisk delete <mediaId> Delete a generated media from the cloud
Options:
-c, --cookie Google account cookie [required]
-h, --help Show help
--version Show version number
whisk project
Options:
--name Project name [default: "Whisk-CLI project"]
-c, --cookie Google account cookie [required]
whisk generate
Options:
-p, --prompt Description of the image [required]
-m, --model Image generation model [default: "IMAGEN_3_5"]
-a, --aspect Aspect ratio (SQUARE, PORTRAIT, LANDSCAPE) [default: "LANDSCAPE"]
-s, --seed Seed value (0 for random) [default: 0]
-d, --dir Output directory [default: "./output"]
-c, --cookie Google account cookie [required]
whisk animate <mediaId>
Positionals:
mediaId The ID of the image to animate [required]
Options:
-s, --script Prompt/Script for the video animation [required]
-m, --model Video generation model [default: "VEO_3_1"]
-d, --dir Output directory [default: "./output"]
-c, --cookie Google account cookie [required]
whisk refine <mediaId>
Positionals:
mediaId The ID of the image to refine [required]
Options:
-p, --prompt Instruction for editing (e.g., 'Make it snowy') [required]
-d, --dir Output directory [default: "./output"]
-c, --cookie Google account cookie [required]
whisk caption
Options:
-f, --file Path to local image file [required]
-n, --count Number of captions [default: 1]
-c, --cookie Google account cookie [required]
whisk fetch <mediaId>
Positionals:
mediaId Unique ID of generated media [required]
Options:
-d, --dir Output directory [default: "./output"]
-c, --cookie Google account cookie [required]
whisk upload <file>
Positionals:
file Path to local image file [required]
Options:
--category, -ca Category of reference [required]
Choices: SUBJECT, SCENE, STYLE
--project, -pr Project/Workflow ID [required]
-c, --cookie Google account cookie [required]
whisk delete <mediaId>
Positionals:
mediaId Unique ID of generated media to delete [required]
Options:
-c, --cookie Google account cookie [required]
Basic image generation
import { Whisk } from "@rohitaryal/whisk-api";
const whisk = new Whisk(process.env.COOKIE);
// 1. Create a project context
const project = await whisk.newProject("My Project");
// 2. Generate image
const media = await project.generateImage("A big black cockroach");
// 3. Save to disk
const savedPath = media.save("./output");
console.log("[+] Image saved at: " + savedPath);
Advanced Workflow (Gen -> Refine -> Animate)
import { Whisk, ImageAspectRatio } from "@rohitaryal/whisk-api";
const whisk = new Whisk(process.env.COOKIE);
const project = await whisk.newProject("Video Workflow");
// 1. Generate Base Image (Must be LANDSCAPE for video)
const baseImage = await project.generateImage({
prompt: "A cybernetic city",
aspectRatio: "IMAGE_ASPECT_RATIO_LANDSCAPE"
});
// 2. Refine (Edit)
const refinedImage = await baseImage.refine("Make it raining neon rain");
// 3. Animate (Video)
const video = await refinedImage.animate("Camera flies through the streets", "VEO_3_1_I2V_12STEP");
video.save("./videos");
More examples are at: /examples
image-fx which should be at topCreate an issue here. Make sure the pasted logs don't contain cookie or tokens.
Contribution are welcome but ensure to pass all test cases and follow existing coding standard.
This project demonstrates usage of Google's private API but is not affiliated with Google. Use at your own risk.
FAQs
Unofficial API for Whisk image generation.
We found that @redwilly/whisk-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.