AI filmmaking CLI with 148 built-in actors, 98 visual styles, and smart model selection. Generate images, videos, posters, and thumbnails without prompt engi...
---
name: melies
description: "AI filmmaking CLI with 148 built-in actors, 98 visual styles, and smart model selection. Generate images, videos, posters, and thumbnails without prompt engineering. Text-to-image, text-to-video, image-to-video pipeline, upscaling, background removal. Use --actor, --art-style, --lighting, --mood flags instead of writing prompts."
version: 2.0.0
user-invocable: false
allowed-tools: Bash(melies:*)
homepage: https://melies.co
metadata:
openclaw:
emoji: "🎬"
requires:
env:
- MELIES_TOKEN
- MELIES_API_URL
config:
- ~/.melies/config.json
bins:
- melies
primaryEnv: MELIES_TOKEN
install:
- kind: node
package: melies
bins: [melies]
---
# Melies CLI
AI filmmaking from the command line. 148 AI actors, 98 visual styles, 50+ models. Generate images, videos, posters, and YouTube thumbnails without prompt engineering.
## Install
```bash
npm install -g melies
```
## Authentication
```bash
# Browser login (opens melies.co, authenticates automatically)
melies login
# Or use an API token directly (for CI/agents)
melies login --token YOUR_TOKEN
# Or set as environment variable
export MELIES_TOKEN=your_token
```
Generate an API token at [melies.co](https://melies.co) > Settings > API.
## Quick Start
```bash
# Generate an image with an AI actor, Ghibli style, and golden lighting
melies image "portrait in a café" --actor mei --art-style ghibli --lighting golden --sync
# Generate a movie poster with a preset style
melies poster "Neon Shadows" --style noir --actor james --sync
# Image → video pipeline in one command
melies pipeline "warrior on a cliff at sunset" --actor mei --best --sync
# Generate 4 YouTube thumbnails
melies thumbnail "shocked face reacting to AI news" --actor aria -n 4 --sync
# Preview cost before generating
melies image "sunset" --quality --actor hailey --dry-run
```
## Smart Model Selection
No model names needed. Use quality presets:
| Flag | Image Model | Video Model |
|------|------------|-------------|
| (default / `--fast`) | flux-schnell (2cr) | kling-v2 (30cr) |
| `--quality` | flux-pro (8cr) | kling-v3-pro (100cr) |
| `--best` | seedream-3 (6cr) | veo-3.1 (400cr) |
| `-m <id>` | exact model | exact model |
`-m` overrides quality presets. Use `melies models` to list all available models.
## Visual Style Flags
Add these flags to any `image`, `video`, `thumbnail`, or `pipeline` command:
| Flag | Example Values |
|------|---------------|
| `--camera` | eye-level, high, low, overhead, dutch, ots, profile, three-quarter |
| `--shot` | ecu, close-up, medium, cowboy, full-body, wide, tighter, wider |
| `--expression` | smile, laugh, serious, surprised, villain-smirk, seductive, horrified |
| `--lighting` | soft, golden, noir, rembrandt, backlit, neon, candle, hard |
| `--time` | dawn, sunrise, golden, dusk, night, morning, midday |
| `--weather` | clear, fog, rain, storm, snow, overcast, mist |
| `--color-grade` | natural, teal-orange, mono, warm, cool, filmic, sepia |
| `--mood` | romantic, mysterious, tense, ethereal, gritty, epic, nostalgic |
| `--art-style` | film-still, blockbuster, noir, anime, ghibli, shinkai, oil, watercolor, concept |
| `--era` | victorian, 1920s, 1980s, modern, dystopian, medieval |
Multiple flags combine. Example:
```bash
melies image "woman in a café" --lighting golden --mood romantic --art-style ghibli --sync
```
## Commands
### melies image \<prompt\>
Generate images from text.
```bash
melies image "sunset over mountains" --quality --sync
melies image "portrait" --actor mei --lighting golden --sync
melies image "cyberpunk city" --art-style neo-noir --mood gritty -n 4 --sync
melies image "product photo" -a 1:1 --best --sync --output photo.webp
```
**Options:**
- `-m, --model` Model override (use quality presets instead)
- `-a, --aspectRatio` 1:1, 16:9, 9:16, 4:3, 3:4 (default: 1:1)
- `-n, --numOutputs` 1-4 images (default: 1)
- `-r, --resolution` Output resolution (model-dependent)
- `-i, --imageUrl` Reference image for img2img
- `--ref` Reference ID for custom characters (see `melies ref`)
- `--actor` Built-in AI actor name (see `melies actors`)
- `--sref` Style reference code (see `melies styles`)
- `--fast` / `--quality` / `--best` Quality presets
- `--camera`, `--shot`, `--expression`, `--lighting`, `--time`, `--weather`, `--color-grade`, `--mood`, `--art-style`, `--era` Visual style flags
- `--seed` Reproducible generation
- `--dry-run` Preview prompt, model, and cost without generating
- `-o, --output` Save file to path (use with --sync)
- `-s, --sync` Wait for completion
### melies video \<prompt\>
Generate videos from text or images.
```bash
melies video "drone shot over forest" --quality --sync
melies video "walking down the street" --actor mei --camera low --sync
melies video "zoom into product" -i https://example.com/product.jpg --sync
```
**Options:** Same as `image` plus:
- `-d, --duration` Video duration in seconds
- Default aspect ratio is 16:9
- Sync timeout is 5 minutes
### melies poster \<title\>
Generate movie posters with style presets.
```bash
melies poster "Neon Shadows" --style noir --sync
melies poster "The Last Garden" --style anime --genre drama --actor mei --sync
melies poster "Blood Moon" -l "A detective hunts a killer" -g horror --quality --sync
```
**Options:**
- `-l, --logline` Short synopsis
- `-g, --genre` Genre (horror, sci-fi, comedy, drama, etc.)
- `--style` Poster preset: cinematic, anime, retro, film-noir, minimalist, horror, sci-fi, watercolor, comic-book, art-deco, grindhouse, bollywood, western, pixel-art, surrealist, documentary, cartoon, epic-fantasy, indie-film, neon-noir
- `--actor` AI actor name
- `--fast` / `--quality` / `--best` Quality presets
- `--seed`, `--dry-run`, `--output`, `--sync`
### melies thumbnail \<prompt\>
Generate YouTube thumbnails (forced 16:9, optimized for click-through).
```bash
melies thumbnail "shocked face reacting to AI news" --actor aria -n 4 --sync
melies thumbnail "cooking tutorial intro" --actor sofia --expression smile --quality --sync
```
**Options:** Same as `image`. Aspect ratio is always 16:9. Default expression is smile, default lighting is soft.
### melies pipeline \<prompt\>
Generate an image then animate it into a video. One command, both steps.
```bash
melies pipeline "warrior on a cliff at sunset" --actor mei --art-style concept --best --sync
melies pipeline "serene lake at dawn" --mood ethereal --lighting golden --sync
```
**Options:**
- `--im` Image model override
- `--vm` Video model override
- `-a, --aspectRatio` Ratio for both steps (default: 16:9)
- `-d, --duration` Video duration
- All style flags, `--actor`, quality presets, `--dry-run`, `--output`
- Sync defaults to true
Returns `{ imageUrl, videoUrl }`.
### melies upscale \<imageUrl\>
Upscale an image to higher resolution.
```bash
melies upscale "https://..." --model esrgan --scale 2 --sync
melies upscale "https://..." --model clarity --scale 4 --sync
```
Models: esrgan (3cr), clarity (8cr), seedvr2 (5cr). Scale 4x costs double.
### melies remove-bg \<imageUrl\>
Remove background from an image. Returns transparent PNG.
```bash
melies remove-bg "https://..." --sync
```
Cost: 3 credits.
### melies actors
Browse 148 built-in AI actors.
```bash
melies actors # List all actors
melies actors --type influencer # Filter by type
melies actors --gender female --age 20s # Filter by gender and age
melies actors search "asian" # Search by name/tags
melies actors search "male 30s" # Multi-word search
```
### melies styles
Browse and search style references (sref codes).
```bash
melies styles search "cyberpunk" # Search by keyword
melies styles top # Popular keywords
melies styles info 1234567 # Details for a code
```
### melies credits
Check credit balance and usage.
```bash
melies credits
melies credits -g day
```
### melies models
List available AI models.
```bash
melies models # All models
melies models -t image # Image models only
melies models -t video # Video models only
```
### melies status \<assetId\>
Check generation job status.
```bash
melies status 6502a3b1f2e4a123456789ab
```
### melies assets
List recent generated assets.
```bash
melies assets
melies assets -l 50 -t text_to_image
```
### melies ref
Manage custom AI actor/object references.
```bash
melies ref list
melies ref create "John" -i https://example.com/john.jpg
melies ref delete <id>
```
## Common Patterns
### YouTube Thumbnail Pipeline with AI Actors
```bash
melies thumbnail "shocked face reacting to AI news" \
--actor aria --expression surprised -n 4 --sync
```
### Consistent Character Across Media
```bash
# Same actor in different scenes
melies image "Mei in a coffee shop" --actor mei --lighting soft --sync
melies image "Mei on a mountain" --actor mei --mood epic --sync
melies video "Mei walks toward camera" --actor mei --camera low --sync
```
### Image → Video Pipeline
```bash
melies pipeline "a warrior on a cliff at sunset" \
--actor mei --art-style concept --lighting golden \
--best --sync
```
### Movie Poster Batch
```bash
melies poster "Neon Requiem" --style neon-noir --sync
melies poster "Whispers in the Dark" --style horror -l "A blind woman hears the dead" --sync
melies poster "Starbound" --style sci-fi -l "Humanity's last colony ship" --sync
```
### Dry Run Before Expensive Generation
```bash
# Preview everything without spending credits
melies pipeline "epic battle scene" --actor james --best --dry-run
```
### Budget-Aware Generation
```bash
CREDITS=$(melies credits | jq '.credits')
if [ "$CREDITS" -gt 100 ]; then
melies video "Epic aerial shot" --best --sync
else
melies image "Epic aerial shot" --fast --sync
fi
```
## Credit Costs
| Command | Cost |
|---------|------|
| Image (--fast) | 2 credits |
| Image (--quality) | 8 credits |
| Image (--best) | 6 credits |
| Video (--fast) | 30 credits |
| Video (--quality) | 100 credits |
| Video (--best) | 400 credits |
| Upscale (esrgan, 2x) | 3 credits |
| Upscale (clarity, 2x) | 8 credits |
| Remove background | 3 credits |
| Pipeline | image + video cost combined |
## Gotchas
1. **Generation is async by default.** Use `--sync` to wait for results.
2. **Video generation takes time.** 30s to 3min depending on model. `--sync` waits up to 5 min.
3. **Credits are deducted upfront.** Refunded automatically on failure.
4. **Actor names are case-insensitive.** `--actor Mei` and `--actor mei` both work.
5. **Style flags combine.** `--lighting golden --mood romantic --art-style ghibli` all apply to one generation.
6. **Pipeline defaults to sync.** It needs to wait for the image before generating the video.
7. **--dry-run shows the full prompt.** Useful for debugging what modifiers get applied.
8. **Poster --style is separate from --art-style.** Poster styles are preset poster designs. Art styles are visual rendering options.
9. **Token expiry.** If you get 401 errors, run `melies login` again.
10. **Rate limits.** Max 1000 requests per 15 minutes.
## Environment Variables
| Variable | Description |
|----------|-------------|
| `MELIES_TOKEN` | JWT auth token (overrides stored config) |
| `MELIES_API_URL` | API base URL (default: https://melies.co/api) |
## Quick Reference
```bash
melies image "prompt" --actor <name> --art-style <style> --quality --sync
melies video "prompt" --actor <name> --lighting <light> --best --sync
melies poster "title" --style <preset> -g <genre> --sync
melies thumbnail "prompt" --actor <name> -n 4 --sync
melies pipeline "prompt" --actor <name> --best --sync
melies upscale <url> --scale 2 --sync
melies remove-bg <url> --sync
melies actors search "query"
melies styles search "keyword"
melies credits
melies models
```
## Links
- [Melies Agent Page](https://melies.co/agent)
- [Documentation](https://melies.co/docs)
- [agentskill.sh](https://agentskill.sh/@melies-co/melies-cli)
- [ClawHub](https://clawhub.ai/romainsimon/melies)
don't have the plugin yet? install it then click "run inline in claude" again.
added explicit intent statement, separated inputs into required/optional/external sections with env var names and setup guidance, expanded 17 procedure steps into 28 numbered steps with clear inputs/outputs, added 11 decision points covering quality presets, sync vs async, auth, rate limits, and actor consistency, formalized output contract with json schemas for each command, and clarified 10 outcome signals for verification.
AI filmmaking from the command line. 148 AI actors, 98 visual styles, 50+ models. Generate images, videos, posters, and YouTube thumbnails without prompt engineering.
melies is an AI filmmaking CLI that generates high-quality images, videos, posters, and thumbnails using 148 pre-built AI actors and 98 visual styles. instead of writing complex prompts, you use simple flags like --actor, --lighting, --mood, and --art-style to control output. use melies when you need production-ready visual content fast, from single images to full video pipelines, without spending credits on prompt iteration.
melies login --token <TOKEN>.npm install -g melies.https://melies.co/api). override only if using self-hosted melies.melies login. stores token and user settings.melies credits before expensive operations. operations are charged upfront and auto-refunded on failure.-i, --imageUrl https://... for image or video generation.melies ref create to reuse custom actors across generations.melies styles search <keyword> and use --sref <code> flag.melies login.--sync) timeout after 5 minutes for video, 2 minutes for image. fall back to polling with melies status <assetId>.--actor or --sref values return 400 with suggestion list.npm install -g melies to add cli to PATH.melies login (opens browser) or melies login --token <TOKEN> (non-interactive).melies credits to confirm token works.{ credits: <number>, usage: {...} }.compose command: build melies image <prompt> with optional flags.
--actor <name>, --lighting <type>, --mood <mood>, --art-style <style>, -a <ratio>, --quality or --best or --fast (default), -n <count>, --seed <number>, -o <filepath>.--sync, json with { imageUrl: "...", cost: <credits> }. if no sync, json with { assetId: "...", status: "pending" }.example basic image:
melies image "sunset over mountains" --quality --sync
{ imageUrl: "https://...", cost: 8 } (waits up to 2 min).example with actor and style flags:
melies image "woman in a café" --actor mei --lighting golden --mood romantic --art-style ghibli --sync
dry-run before spending credits:
melies image "cyberpunk city" --art-style neo-noir --mood gritty --best --dry-run
--dry-run flag.-n <count> (1-4 images per call).melies image "cyberpunk city" --art-style neo-noir --mood gritty -n 4 --sync
-n 4 flag.text-to-video:
melies video "drone shot over forest" --quality --sync
video with actor and camera angle:
melies video "walking down the street" --actor mei --camera low --sync
reference image for consistency:
melies video "zoom into product" -i https://example.com/product.jpg --sync
-i <imageUrl> (reference, not keyframe), quality preset.image-to-video pipeline (image + video in one call):
melies pipeline "warrior on a cliff at sunset" --actor mei --art-style concept --lighting golden --best --sync
{ imageUrl: "...", videoUrl: "...", cost: <imageCredits + videoCredits> }. pipeline generates image first, then animates it. costs both image and video credits.melies thumbnail "shocked face reacting to AI news" --actor aria --expression surprised -n 4 --sync
-n 4 count.poster with preset style:
melies poster "Neon Shadows" --style noir --sync
--style <preset> (cinematic, anime, horror, sci-fi, etc.).poster with logline and genre:
melies poster "Blood Moon" -l "A detective hunts a killer" -g horror --quality --sync
-l <logline>, -g <genre>, optional actor, quality preset.melies upscale "https://..." --model esrgan --scale 2 --sync
melies remove-bg "https://..." --sync
list all actors:
melies actors
filter actors by type/gender/age:
melies actors --type influencer --gender female --age 20s
search actors:
melies actors search "asian"
browse style references:
melies styles search "cyberpunk"
melies styles top
melies styles info 1234567
view credits:
melies credits
melies credits -g day
-g <granularity> (day, week, month).{ credits: <int>, usage: [...] }.check job status by id:
melies status 6502a3b1f2e4a123456789ab
{ status: "completed" | "pending" | "failed", result: {...} }.list recent assets:
melies assets -l 50 -t text_to_image
-l <limit>, -t <type> (text_to_image, text_to_video, etc.).create custom actor:
melies ref create "John" -i https://example.com/john.jpg
--ref <id> in future image/video commands.list custom refs:
melies ref list
delete custom ref:
melies ref delete <id>
melies image "sunset" --quality --sync -o photo.webp
melies video "forest" --quality --sync -o movie.mp4
-o <filepath>.--fast (default) or no flag. flux-schnell image (2cr), kling-v2 video (30cr).--quality. flux-pro image (8cr), kling-v3-pro video (100cr).--best. seedream-3 image (6cr), veo-3.1 video (400cr).-m <model_id> to override presets. query melies models for full list.--sync. blocks until generation completes (timeout: 2 min image, 5 min video).--sync. returns asset id, poll later with melies status <assetId>.--sync and pipe json output to jq.--sync only if you manually poll both steps.--actor <name> across all commands. actor name is case-insensitive.melies ref create once, then --ref <id> in future commands.--actor flag. each generation picks a random actor.--style <preset> (noir, anime, horror, etc.). these are full poster design templates.--dry-run flag. prints full expanded prompt, chosen model, and estimated cost. zero credits deducted.melies login or melies login --token <NEW_TOKEN>. token may have expired after 30+ days.MELIES_TOKEN env var to a fresh token. no interactive login needed.sleep 1 between async (non-sync) calls. async ops count as 1 request each regardless of output count.melies credits shows 0: any generation fails with "insufficient credits" error before charge. add credits at melies.co and retry.-i <imageUrl> in video command. melies uses reference for style/aesthetic, not as actual keyframe.-i <url>).all melies commands return json (not pretty-printed by default). pipe to jq for readability or scripting.
{
"imageUrl": "https://melies.co/assets/abc123.webp",
"cost": 2,
"seed": 42,
"model": "flux-schnell"
}
{
"images": [
{ "imageUrl": "...", "seed": 123 },
{ "imageUrl": "...", "seed": 124 }
],
"cost": 4,
"model": "flux-schnell"
}
{
"videoUrl": "https://melies.co/assets/vid456.mp4",
"cost": 30,
"duration": 5,
"model": "kling-v2"
}
{
"imageUrl": "https://melies.co/assets/img789.webp",
"videoUrl": "https://melies.co/assets/vid789.mp4",
"cost": 32,
"models": { "image": "flux-schnell", "video": "kling-v2" }
}
{
"assetId": "6502a3b1f2e4a123456789ab",
"status": "pending",
"type": "text_to_image"
}
{
"assetId": "6502a3b1f2e4a123456789ab",
"status": "completed",
"result": { "imageUrl": "..." }
}
{
"upscaledUrl": "https://melies.co/assets/upscaled.webp",
"scale": 2,
"cost": 3,
"model": "esrgan"
}
{
"imageUrl": "https://melies.co/assets/transparent.png",
"cost": 3
}
{
"credits": 247,
"usage": [
{ "date": "2025-01-15", "spent": 10, "operations": 5 }
]
}
{
"actors": [
{
"name": "mei",
"type": "anime",
"gender": "female",
"age": "20s",
"tags": ["asian", "friendly"]
}
],
"total": 148
}
{
"styles": [
{
"sref": "1234567",
"keyword": "cyberpunk",
"popularity": 1200
}
]
}
output file is written to the path specified in -o <filepath>. file type is inferred from extension (.webp, .png, .mp4, etc.). json response still contains url and metadata.
you know melies worked when:
melies credits shows lower balance after generation. estimate from --dry-run matches actual cost.--dry-run prompt against result.-o <filepath>, file exists on disk and is not empty. ls -lh <filepath> confirms size.melies thumbnail, aspect ratio is forced 16:9. measure with imagemagick or check file dimensions.--style noir, poster has dark noir aesthetic. doesn't look like a generic image.melies login and retry.