CinePrompt Skill

AI video prompt builder for cinematographers. Translates natural language shot descriptions into structured prompts optimized for AI video generators.

3,891 stars

Best use case

CinePrompt Skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

AI video prompt builder for cinematographers. Translates natural language shot descriptions into structured prompts optimized for AI video generators.

Teams using CinePrompt Skill should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/cineprompt/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/belafontelabs/cineprompt/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/cineprompt/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How CinePrompt Skill Compares

Feature / AgentCinePrompt SkillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

AI video prompt builder for cinematographers. Translates natural language shot descriptions into structured prompts optimized for AI video generators.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# CinePrompt Skill

AI video prompt builder for cinematographers. Translates natural language shot descriptions into structured prompts optimized for AI video generators.

## What It Does

CinePrompt turns vague ideas ("cinematic sunset over mountains") into precise cinematography prompts with lens, movement, lighting, color science, sound design, and 133 total fields. Three workflow modes, 24 generation models, 8 model optimizers.

**Live:** https://cineprompt.io
**Guides:** https://cineprompt.io/guides (18+ articles, daily additions)
**Models:** https://cineprompt.io/models

## CLI Usage

```bash
# Install
npm install -g cineprompt

# Auth (Pro subscription required for API)
cineprompt auth cp_your_key_here

# Build a share link from state JSON
cineprompt build '{"mode":"single","subjectType":"character","fields":{...}}'

# Build from file
cineprompt build --file shot.json

# Pipe JSON
cat shot.json | cineprompt build

# List all 133 fields
cineprompt fields

# Show values for a specific field
cineprompt fields mood
cineprompt fields movement_type
```

## Building State JSON

The agent constructs a state object and passes it to the CLI. The CLI creates a share link on cineprompt.io where the user can view, tweak, and copy the prompt.

### State Structure

```json
{
  "mode": "single",
  "complexity": "complex",
  "subjectType": "character",
  "fields": {
    "media_type": ["cinematic"],
    "mood": ["contemplative"],
    "genre": ["drama"],
    "setting": "interior",
    "location_type": ["apartment"],
    "custom_location": "A cluttered one-bedroom with peeling wallpaper",
    "env_time": "night",
    "char_label": "A retired boxer",
    "subject_description": "Weathered face, broken nose, calloused hands",
    "expression": "quietly resigned",
    "wardrobe": "Stained white undershirt, suspenders hanging at sides",
    "action_primary": "sitting alone at a kitchen table",
    "shot_type": "medium close-up",
    "framing": ["positioned left-third of frame"],
    "focal_length": "85mm",
    "dof": "shallow depth of field, bokeh",
    "movement_type": ["static, locked-off"],
    "lighting_type": ["practical lights"],
    "key_light": "Single bare bulb overhead, slightly swinging",
    "film_stock": ["Kodak Vision3 500T 5219"],
    "color_grade": ["desaturated"],
    "sfx_environment": ["room tone"],
    "ambient": "Refrigerator hum, distant sirens",
    "props": "Half-empty whiskey bottle, old photograph face-down"
  }
}
```

### Key Parameters

| Parameter | Values | Notes |
|-----------|--------|-------|
| `mode` | `single`, `multi_shot` | Single shot or multi-shot sequence |
| `complexity` | `simple`, `complex` | Simple = curated fields, Complex = all fields |
| `subjectType` | `character`, `creature`, `object`, `vehicle`, `landscape`, `abstract` | Unlocks subject-specific fields |

### Field Types

**Button fields** (93) — accept arrays of predefined values. Use `cineprompt fields <name>` to see valid options.
```json
"media_type": ["cinematic"],
"mood": ["nostalgic", "contemplative"],
"shot_type": "extreme close-up"
```

**Text fields** (40) — accept free-form strings.
```json
"char_label": "A young street musician",
"subject_description": "Dark curly hair, paint-stained fingers",
"dialogue": "I never said goodbye",
"ambient": "Rain on a tin roof, distant thunder"
```

### Modes

**Single Shot** — one shot, full cinematography control.

**Multi-Shot** — sequence of shots with global settings + per-shot overrides. Supports recurring characters, transitions between shots.
```json
{
  "mode": "multi_shot",
  "complexity": "complex",
  "fields": {
    "media_type": ["cinematic"],
    "mood": ["tense"]
  },
  "shots": [
    {
      "subjectType": "character",
      "fields": {
        "shot_type": "establishing shot",
        "char_label": "Detective",
        "action_primary": "approaching the building"
      }
    },
    {
      "subjectType": "character",
      "fields": {
        "shot_type": "close-up",
        "char_label": "Detective",
        "expression": "steeling herself",
        "action_primary": "reaching for the door handle"
      }
    }
  ]
}
```

**Frame → Motion** — dual-prompt output for img2vid workflows. Build the frame (image prompt), then direct the motion (video prompt). The FM tab uses direct-edit motion text with quick-insert chips:

- **Camera chips:** Slow push in, Slow pull out, Orbit, Dolly, Crane up/down, Handheld, Tracking, Locked off
- **Pacing chips:** Slow motion, Real-time, Time-lapse, Hyperlapse
- **Transition chips:** Whip pan, Steadicam, Rack focus, Reveal, Morph, Dissolve
- **Direction chips:** Slow Build, One at a Time, Breathe, Anchor, Physics, Chaos, Match

## Key Fields Reference

### Core (always relevant)
`media_type`, `mood`, `genre`, `setting`, `location_type`, `custom_location`, `env_time`, `weather`

### Subject — Character
`char_label`, `subject_description`, `expression`, `body_language`, `age_range`, `build`, `hair_style`, `hair_color`, `skin_tones`, `wardrobe`, `action_primary`, `props`

### Subject — Creature
`creature_label`, `creature_description`, `creature_category`, `creature_size`, `creature_body`, `creature_skin`, `creature_expression`

### Subject — Object
`obj_description`, `obj_material`, `obj_condition`, `obj_scale`

### Subject — Vehicle
`veh_description`, `veh_type`, `veh_era`, `veh_condition`

### Subject — Landscape
`land_scale`, `land_season`

### Subject — Abstract
`abs_description`, `abs_quality`, `abs_movement`, `abstract_environment`

### Camera & Lens
`shot_type`, `framing`, `focal_length`, `camera_body`, `lens_brand`, `lens_filter`, `dof`, `movement_type`, `pacing`

### Lighting
`lighting_type`, `lighting_style`, `key_light`, `fill_light`

### Color & Look
`color_grade`, `color_science`, `film_stock`, `palette_colors`

### Environment
`location`, `env_bg`, `env_mg`, `env_fg`

### Sound
`dialogue`, `dialogue_character`, `dialogue_language`, `delivery_style`, `delivery_style_custom`, `voiceover_text`, `music`, `music_genre`, `music_mood`, `ambient`, `sfx_environment`, `sfx_interior`, `sfx_dramatic`, `sfx_mechanical`, `beat_1`, `beat_2`, `beat_3`

### Style
`animation_style`, `documentary_style`, `commercial_type`, `music_video_style`, `social_media_style`, `format`

## Scene-to-Prompt

CinePrompt also accepts natural language descriptions via the Scene-to-Prompt feature. Users type a shot description and an LLM auto-populates all fields. The agent can use this as an alternative to manually constructing state JSON — just direct users to the text box at the top of the page.

## Generate

CinePrompt includes built-in generation with BYOK (bring your own key) across 24 models:
- **Text-to-video (9):** Kling O3 Pro, Sora 2 Pro, Veo 3.1, WAN 2.6, Seedance 1.5 Pro, LTX 2.3, Grok Imagine (Fal + Venice)
- **Image-to-video (5):** Kling O3 Pro, Sora 2 Pro, Veo 3.1, WAN 2.6, LTX 2.3, Grok Imagine
- **Reference-to-video (1):** Kling O3 Pro R2V (character elements)
- **Image gen (4):** Nano Banana Pro, NB2, Chroma, Grok Imagine
- **Image edit (4):** NBP Edit, NB2 Edit, Grok Imagine Edit, Qwen Edit
- **Providers:** Fal.ai + Venice.ai

## Subject Library

Persistent character/element system. Users save subjects with frontal + reference images and field state. Subjects auto-inject into prompts and enable R2V (reference-to-video) generation with Kling Elements.

## Internal Scripts

### cineprompt-x-post
Daily cron (8:55 AM) that reads today's guide article, finds a trending AI video post on X, and writes a quote-tweet mini-essay for the CinePrompt Discord channel. Output goes to Discord for Tylios to post.

### create-share-link.js
Creates share links via Supabase RPC (with API key) or direct insert (with service key). Used internally by the CLI and agent.

## Tiers

| Tier | Price | Access |
|------|-------|--------|
| Free | $0 | Simple mode only |
| Pro | $7/mo or $70/yr | All modes + API key + Generate |
| Founding | $25 lifetime | Everything (capped at 100) |

Related Skills

---

3891
from openclaw/skills

name: article-factory-wechat

Content & Documentation

humanizer

3891
from openclaw/skills

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

Content & Documentation

find-skills

3891
from openclaw/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

General Utilities

tavily-search

3891
from openclaw/skills

Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.

Data & Research

baidu-search

3891
from openclaw/skills

Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.

Data & Research

agent-autonomy-kit

3891
from openclaw/skills

Stop waiting for prompts. Keep working.

Workflow & Productivity

Meeting Prep

3891
from openclaw/skills

Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.

Workflow & Productivity

self-improvement

3891
from openclaw/skills

Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.

Agent Intelligence & Learning

botlearn-healthcheck

3891
from openclaw/skills

botlearn-healthcheck — BotLearn autonomous health inspector for OpenClaw instances across 5 domains (hardware, config, security, skills, autonomy); triggers on system check, health report, diagnostics, or scheduled heartbeat inspection.

DevOps & Infrastructure

linkedin-cli

3891
from openclaw/skills

A bird-like LinkedIn CLI for searching profiles, checking messages, and summarizing your feed using session cookies.

Content & Documentation

notebooklm

3891
from openclaw/skills

Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。

Data & Research

小红书长图文发布 Skill

3891
from openclaw/skills

## 概述

Content & Documentation