CLI Reference
Complete reference documentation for the Renku command-line interface.
Global Options
Section titled “Global Options”These options apply to all commands:
| Option | Description |
|---|---|
--help, -h | Show help for any command |
--version, -v | Show CLI version |
Commands
Section titled “Commands”renku init
Section titled “renku init”Initialize a new Renku workspace and storage configuration.
Usage:
renku init --root-folder=/path/to/storagerenku init --root=/path/to/storage # Short formOptions:
| Option | Required | Description |
|---|---|---|
--root-folder, --root | Yes | Storage root directory for builds and blueprints |
Creates:
~/.config/renku/cli-config.json- Storage configuration (fixed location){rootFolder}/builds/- Directory for movie outputs{rootFolder}/catalog/blueprints/- Bundled blueprint templates
Example:
renku init --root-folder=/Users/alice/renku-projectsrenku generate
Section titled “renku generate”Create a new movie or continue an existing one.
Usage (new movie):
renku generate [<inquiry-prompt>] \ --inputs=<path> \ --blueprint=<path> \ [--dry-run] \ [--non-interactive] \ [--up-to-layer=<n>]Usage (continue existing):
renku generate --movie-id=<id> [--inputs=<path>] [options]renku generate --last [options]Options:
| Option | Description |
|---|---|
--inputs, --in | Path to inputs YAML file (required for new movies) |
--blueprint, --bp | Path to blueprint YAML file (required for new movies) |
--movie-id, --id | Continue a specific movie by ID |
--last | Continue the most recent movie |
--dry-run | Execute without calling providers (mock run) |
--non-interactive | Skip confirmation prompts |
--up-to-layer, --up | Stop after specified layer (live runs only) |
Behavior:
For new movies:
- Validates inputs and blueprint
- Generates a new movie ID
- Creates
builds/movie-{id}/directory - Executes the workflow
For continuing movies:
- Loads existing manifest
- Detects changed inputs (dirty tracking)
- Regenerates only affected artifacts
- Updates the friendly view
Examples:
# New movie with inputs filerenku generate --inputs=./my-inputs.yaml --blueprint=./audio-only.yaml
# New movie with inline promptrenku generate "Explain black holes" --inputs=./inputs.yaml --blueprint=./audio.yaml
# Continue specific movierenku generate --movie-id=movie-a1b2c3d4 --inputs=./updated-inputs.yaml
# Continue most recent movierenku generate --last
# Dry run to validaterenku generate --inputs=./inputs.yaml --blueprint=./blueprint.yaml --dry-run
# Generate up to layer 1 onlyrenku generate --inputs=./inputs.yaml --blueprint=./blueprint.yaml --up-to-layer=1renku clean
Section titled “renku clean”Remove the friendly view and build artifacts for a movie.
Usage:
renku clean --movie-id=<id>Options:
| Option | Required | Description |
|---|---|---|
--movie-id, --id | Yes | Movie ID to clean |
Example:
renku clean --movie-id=movie-a1b2c3d4renku export
Section titled “renku export”Export a generated movie to MP4 video format.
Usage:
renku export --movie-id=<id> [options]renku export --last [options]Options:
| Option | Default | Description |
|---|---|---|
--movie-id, --id | - | Movie ID to export |
--last | - | Export the most recent movie |
--width | 1920 | Video width in pixels |
--height | 1080 | Video height in pixels |
--fps | 30 | Frames per second |
Requirements:
- Blueprint must include a
TimelineComposerproducer - Movie must have a Timeline artifact
Output:
builds/{movieId}/FinalVideo.mp4movies/{movieId}/FinalVideo.mp4(symlink)
Examples:
# Export with defaults (1920x1080 @ 30fps)renku export --movie-id=movie-a1b2c3d4
# Export most recent movierenku export --last
# Export with custom resolutionrenku export --last --width=3840 --height=2160 --fps=24renku producers:list
Section titled “renku producers:list”List available models for producers in a blueprint.
Usage:
renku producers:list --blueprint=<path>Options:
| Option | Required | Description |
|---|---|---|
--blueprint, --bp | Yes | Path to blueprint YAML file |
Output:
- Lists all producers with their available models
- Shows pricing information where available
- Warns about missing API tokens
Example:
renku producers:list --blueprint=./video-only.yamlOutput:
Producer model configurations:
VideoProducer (4 video models) Provider Model Price replicate bytedance/seedance-1-pro-fast 480p: $0.015/s replicate google/veo-3.1-fast $0.10/s fal-ai veo3-1 -
AudioProducer (2 audio models) Provider Model Price replicate minimax/speech-2.6-hd $0.0001/token
⚠️ Missing API tokens: - fal-ai: FAL_KEY not setrenku blueprints:list
Section titled “renku blueprints:list”List all available blueprint files.
Usage:
renku blueprints:listOutput:
- Scans
{root}/catalog/blueprints/ - Displays all
.yamlfiles with metadata
Example output:
Available Blueprints:
1. audio-only.yaml - Audio-Only Narration - Generates script and audio narration
2. video-only.yaml - Video-Only Generation - Generates script and video clips
3. image-to-video.yaml - Image-to-Video Transitions - Creates videos from image sequencesrenku blueprints:describe
Section titled “renku blueprints:describe”Show detailed information about a blueprint.
Usage:
renku blueprints:describe <path-to-blueprint.yaml>Output:
- Blueprint metadata (name, description, version, author)
- Required and optional inputs
- Artifacts produced
- Loops defined
- Producers used
Example:
renku blueprints:describe ./catalog/blueprints/video-only/video-only.yamlrenku blueprints:validate
Section titled “renku blueprints:validate”Validate blueprint structure and references.
Usage:
renku blueprints:validate <path-to-blueprint.yaml>Validates:
- YAML syntax
- Required fields
- Module/producer references
- Connection validity
- Loop definitions
Example:
renku blueprints:validate ./my-blueprint.yamlrenku viewer:view
Section titled “renku viewer:view”Open the viewer for a movie.
Usage:
renku viewer:view --movie-id=<id>renku viewer:view --lastOptions:
| Option | Description |
|---|---|
--movie-id, --id | Movie ID to view |
--last | View the most recent movie |
--viewerHost | Override viewer host (optional) |
--viewerPort | Override viewer port (optional) |
Behavior:
- Starts the viewer server if not running
- Opens the movie page in your browser
Examples:
renku viewer:view --movie-id=movie-a1b2c3d4renku viewer:view --lastrenku viewer:start
Section titled “renku viewer:start”Start the viewer server in the foreground.
Usage:
renku viewer:startrenku viewer:stop
Section titled “renku viewer:stop”Stop the background viewer server.
Usage:
renku viewer:stopProvider Configuration
Section titled “Provider Configuration”Environment Variables
Section titled “Environment Variables”Renku reads credentials from environment variables or .env files:
# OpenAI (required for script generation)OPENAI_API_KEY=sk-...
# Replicate (required for most media generation)REPLICATE_API_TOKEN=r8_...
# Optional providersFAL_KEY=...ELEVENLABS_API_KEY=....env File Locations
Section titled “.env File Locations”The CLI checks for .env files in:
- Current working directory
- CLI installation directory
Provider-Specific Notes
Section titled “Provider-Specific Notes”OpenAI:
- Used for script generation and prompt creation
- Requires
gpt-4oor similar model access
Replicate:
- Used for video, audio, and image generation
- Supports many model variants
- Pay-per-use pricing
fal.ai:
- Alternative provider for video/image models
- Some unique model offerings
Renku (built-in):
OrderedTimeline- Timeline composition- No API key required
Storage Structure
Section titled “Storage Structure”Configuration
Section titled “Configuration”Fixed location for CLI configuration:
~/.config/renku/cli-config.jsonContents:
{ "storage": { "root": "/path/to/workspace", "basePath": "builds" }}Workspace Layout
Section titled “Workspace Layout”{workspace}/├── builds/│ └── movie-{id}/│ ├── blobs/ # Content-addressed blob storage│ │ └── {hash-prefix}/ # Files stored by hash│ ├── events/│ │ ├── inputs.log # Input events (JSONL)│ │ └── artefacts.log # Artifact events (JSONL)│ ├── manifests/│ │ └── {revision}.json # Artifact metadata│ ├── runs/│ │ └── {rev}-plan.json # Execution plan│ └── current.json # Pointer to current manifest├── catalog/│ └── blueprints/│ └── *.yaml # Blueprint files└── movies/ └── movie-{id}/ # Friendly view (symlinks) └── *.mp3, *.mp4, etc.Movie ID Format
Section titled “Movie ID Format”Movie IDs are 8-character prefixes of UUIDs:
- Generated:
a1b2c3d4-5678-9abc-def0-123456789abc - Stored as:
movie-a1b2c3d4
Troubleshooting
Section titled “Troubleshooting”Common Errors
Section titled “Common Errors”Missing API Credentials:
Error: OPENAI_API_KEY not foundSolution: Export the environment variable or add to .env file.
Invalid Blueprint Path:
Error: Blueprint file not found: /path/to/blueprint.yamlSolution: Use absolute path or path relative to current directory.
Missing Required Input:
Error: Required input 'InquiryPrompt' not found in inputs.yamlSolution: Add all required inputs from the blueprint to your inputs file.
Module Reference Error:
Error: Module not found: ./modules/missing-module.yamlSolution: Check that module paths are relative to the blueprint file location.
Provider Configuration Error:
Error: Invalid sdkMapping for Replicate producerSolution: Ensure all required fields are mapped in the producer’s sdkMapping.
Debug Mode
Section titled “Debug Mode”Enable verbose logging:
DEBUG=renku:* renku generate --inputs=./inputs.yaml --blueprint=./blueprint.yamlValidation Commands
Section titled “Validation Commands”# Validate blueprint structurerenku blueprints:validate ./my-blueprint.yaml
# Check available models and missing tokensrenku producers:list --blueprint=./my-blueprint.yaml
# Test without API callsrenku generate --inputs=./inputs.yaml --blueprint=./blueprint.yaml --dry-runAppendix
Section titled “Appendix”Supported File Types
Section titled “Supported File Types”| Category | Extensions |
|---|---|
| Blueprints | .yaml |
| Inputs | .yaml |
| Prompts | .md, .txt |
| Artifacts | .txt, .json, .png, .jpg, .mp3, .wav, .mp4 |
Default Values
Section titled “Default Values”| Setting | Default |
|---|---|
| Config path | ~/.config/renku/ |
| Storage base | builds/ |
| Environment | local |
| Export width | 1920 |
| Export height | 1080 |
| Export FPS | 30 |