Docs / Get started

MiniCut CLI

AI video generation CLI for AI agents. Your agent runs minicut to write the script, generate the shots, add voice and music, and cut the final video. Agent harness for AI generated media.

Install

Set up every coding agent on this computer:

Terminal
npx @minicut/cli setup

Or install the minicut command for the whole machine:

Terminal
npm i -g @minicut/cli

Or add only the skills, through the skills tool (Skills):

Terminal
npx skills add lliu56/minicut-skills

Coding agents

minicut setup puts the MiniCut skills in the folder each of these coding agents reads. To set up one agent only, run its line.

Coding agentSkills folderInstall
Claude Code~/.claude/skillsminicut install-skill --app claude-code
Codex~/.agents/skillsminicut install-skill --app codex
OpenCode~/.agents/skillsminicut install-skill --app opencode
CodeBuddy Code~/.codebuddy/skillsminicut install-skill --app codebuddy
TRAE~/.trae-cn/skillsminicut install-skill --app trae
Qoder and Qoder CN~/.qoder/skillsminicut install-skill --app qoder
Qwen Code~/.qwen/skillsminicut install-skill --app qwen
Kimi Code~/.agents/skillsminicut install-skill --app kimi
DeepSeek Harness (developer preview)~/.agents/skillsminicut install-skill --app deepseek
Cursor~/.agents/skillsminicut install-skill --app cursor
Cline~/.cline/skillsminicut install-skill --app cline

Commands

Free commands. Each output below was printed by the command when the tests ran it, signed out, with paths and times masked. Every command takes --json and exits with a fixed code (Integrations).

Check one AI video clip for problems

Terminal
minicut check take take.mp4 --json
Output, exit 0
{
  "ok": true,
  "type": "mh.verdict",
  "check": "take",
  "at": "<volatile>",
  "clip": null,
  "take": "<dir>/take.mp4",
  "kind": "file",
  "seconds": 2,
  "window": [
    0,
    2
  ],
  "result": "pass",
  "failures": [],
  "notes": [
    "no --lines file: the spoken words were not checked (add --lines <text file> to check them, free, local speech engine)",
    "the look is not checked here: minicut check zoom <dir>/take.mp4 --json writes full-size pictures to look at"
  ],
  "sheet": null,
  "readback": null,
  "takes_made": null,
  "cap": null
}

List the AI video models and their prices

Terminal
minicut models --kind video --json
Output, exit 0
{
  "ok": true,
  "live": true,
  "fetched_at": "<volatile>",
  "models": [
    {
      "cli_name": "seedance-2.0",
      "name": "Seedance 2.0",
      "kind": "video",
      "from_credits": 2.648067,
      "status": "locked"
    },
    {
      "cli_name": "wan-3.0",
      "name": "Wan 3.0",
      "kind": "video",
      "from_credits": 1.75,
      "status": "unavailable"
    },
    {
      "cli_name": "seedance-2.5",
      "name": "Seedance 2.5",
      "kind": "video",
      "from_credits": 4.082203,
      "status": "locked"
    },
    {
      "cli_name": "seedance-2.0-mini",
      "name": "Seedance 2.0 Mini",
      "kind": "video",
      "from_credits": 1.39859,
      "status": "locked"
    },
    {
      "cli_name": "seedance-1.5-pro",
      "name": "Seedance 1.5 Pro",
      "kind": "video",
      "from_credits": 0.239754,
      "status": "locked"
    },
    {
      "cli_name": "seedance-1.0-pro-fast",
      "name": "Seedance 1.0 Pro Fast",
      "kind": "video",
      "from_credits": 0.189148,
      "status": "locked"
    },
    {
      "cli_name": "kling-4",
      "name": "Kling 4",
      "kind": "video",
      "from_credits": 5.495,
      "status": "locked"
    },
    {
      "cli_name": "kling-4-edit",
      "name": "Kling 4 Edit",
      "kind": "video",
      "from_credits": 6.58,
      "status": "locked"
    },
    {
      "cli_name": "kling-v3.0",
      "name": "Kling v3.0",
      "kind": "video",
      "from_credits": 2.94,
      "status": "locked"
    },
    {
      "cli_name": "kling-3.0-turbo",
      "name": "Kling 3.0 Turbo",
      "kind": "video",
      "from_credits": 4.9,
      "status": "locked"
    },
    {
      "cli_name": "kling-2.6",
      "name": "Kling 2.6 Video",
      "kind": "video",
      "from_credits": 2.45,
      "status": "locked"
    },
    {
      "cli_name": "wan-2.7",
      "name": "Wan 2.7",
      "kind": "video",
      "from_credits": 3.5,
      "status": "locked"
    },
    {
      "cli_name": "veo-3.1",
      "name": "Google Veo 3.1",
      "kind": "video",
      "from_credits": 3.5,
      "status": "locked"
    },
    {
      "cli_name": "veo-3.1-lite",
      "name": "Google Veo 3.1 Lite",
      "kind": "video",
      "from_credits": 1.05,
      "status": "locked"
    },
    {
      "cli_name": "h3-max",
      "name": "H3 Max",
      "kind": "video",
      "from_credits": 1.75,
      "status": "unavailable"
    },
    {
      "cli_name": "h3-max-lipsync",
      "name": "H3 Max Lip Sync",
      "kind": "video",
      "from_credits": 1.75,
      "status": "unavailable"
    },
    {
      "cli_name": "h3-max-camera",
      "name": "H3 Max Camera Controls",
      "kind": "video",
      "from_credits": 1.75,
      "status": "unavailable"
    },
    {
      "cli_name": "h3-max-insert",
      "name": "H3 Max Insert Video",
      "kind": "video",
      "from_credits": 1.75,
      "status": "unavailable"
    },
    {
      "cli_name": "h3-max-turbo",
      "name": "H3 Max Turbo",
      "kind": "video",
      "from_credits": 0.875,
      "status": "unavailable"
    },
    {
      "cli_name": "minimax-h3",
      "name": "MiniMax H3",
      "kind": "video",
      "from_credits": 1.75,
      "status": "locked"
    },
    {
      "cli_name": "minimax-hailuo",
      "name": "MiniMax Hailuo",
      "kind": "video",
      "from_credits": 0.595,
      "status": "unavailable"
    },
    {
      "cli_name": "grok-video-1.5",
      "name": "Grok Video 1.5",
      "kind": "video",
      "from_credits": 2.8,
      "status": "locked"
    },
    {
      "cli_name": "grok-video-1.5-lite",
      "name": "Grok Video 1.5 Lite",
      "kind": "video",
      "from_credits": 0.7,
      "status": "locked"
    },
    {
      "cli_name": "gemini-omni-flash",
      "name": "Gemini Omni Flash",
      "kind": "video",
      "from_credits": 4.375,
      "status": "locked"
    },
    {
      "cli_name": "flux-3-video",
      "name": "FLUX 3 Video",
      "kind": "video",
      "from_credits": 5.95,
      "status": "locked"
    },
    {
      "cli_name": "happy-horse",
      "name": "Happy Horse Video",
      "kind": "video",
      "from_credits": 4.9,
      "status": "locked"
    },
    {
      "cli_name": "omnihuman-1.5",
      "name": "OmniHuman 1.5",
      "kind": "video",
      "from_credits": 5.6,
      "status": "unavailable"
    },
    {
      "cli_name": "kling-o3",
      "name": "Kling O3",
      "kind": "video",
      "from_credits": 3.92,
      "status": "locked"
    },
    {
      "cli_name": "kling-o3-omni",
      "name": "Kling O3 Omni",
      "kind": "video",
      "from_credits": 3.92,
      "status": "locked"
    },
    {
      "cli_name": "kling-o1",
      "name": "Kling O1",
      "kind": "video",
      "from_credits": 3.92,
      "status": "locked"
    },
    {
      "cli_name": "kling-2.5-turbo-pro",
      "name": "Kling 2.5 Turbo Pro",
      "kind": "video",
      "from_credits": 2.45,
      "status": "locked"
    },
    {
      "cli_name": "kling-2.1-pro",
      "name": "Kling 2.1 Pro",
      "kind": "video",
      "from_credits": 3.43,
      "status": "locked"
    },
    {
      "cli_name": "kling-motion-control",
      "name": "Kling Motion Control",
      "kind": "video",
      "from_credits": 5.88,
      "status": "unavailable"
    },
    {
      "cli_name": "seedance-1.0-pro",
      "name": "Seedance 1.0 Pro",
      "kind": "video",
      "from_credits": 0.472869,
      "status": "locked"
    },
    {
      "cli_name": "wan-2.6",
      "name": "Wan 2.6",
      "kind": "video",
      "from_credits": 3.5,
      "status": "locked"
    },
    {
      "cli_name": "wan-2.5",
      "name": "Wan 2.5",
      "kind": "video",
      "from_credits": 1.75,
      "status": "locked"
    },
    {
      "cli_name": "wan-2.2",
      "name": "Wan 2.2",
      "kind": "video",
      "from_credits": 1.4175,
      "status": "unavailable"
    },
    {
      "cli_name": "wan-3.0-prime",
      "name": "Wan 3.0 Prime",
      "kind": "video",
      "from_credits": 2.38,
      "status": "locked"
    },
    {
      "cli_name": "hailuo-2.3",
      "name": "MiniMax Hailuo 2.3",
      "kind": "video",
      "from_credits": 3.43,
      "status": "unavailable"
    },
    {
      "cli_name": "hailuo-2.3-fast",
      "name": "MiniMax Hailuo 2.3 Fast",
      "kind": "video",
      "from_credits": 2.31,
      "status": "unavailable"
    }
  ],
  "page": 1,
  "limit": 40,
  "total": 47,
  "next_page": 2,
  "details": "minicut models <name> --json"
}

Read one model's settings and price

Terminal
minicut models seedance-2.5 --json
Output, exit 0
{
  "ok": true,
  "live": true,
  "fetched_at": "<volatile>",
  "model": {
    "cli_name": "seedance-2.5",
    "name": "Seedance 2.5",
    "maker": "ByteDance",
    "picture": "https://www.minicut.ai/models/seedance-2.5.webp",
    "kind": "video",
    "available": true,
    "locked": true,
    "page_url": "https://www.minicut.ai/models/seedance-2.5",
    "settings": {
      "resolutions": [
        "480p",
        "720p",
        "1080p"
      ],
      "quality": null,
      "seconds": {
        "min": 4,
        "max": 30,
        "step": 1,
        "list": null,
        "auto": false
      },
      "ratios": [
        "21:9",
        "16:9",
        "4:3",
        "1:1",
        "3:4",
        "9:16"
      ],
      "ratio_default": "16:9",
      "sound": {
        "default": true
      },
      "images_per_call": null,
      "references": {
        "image": 30,
        "video": 0,
        "audio": 0
      },
      "prompt_max_chars": null,
      "size": null,
      "voices": null,
      "controls": [
        {
          "word": "bitrate-mode",
          "label": "Bitrate Mode",
          "type": "choice",
          "advanced": true,
          "values": [
            "standard",
            "high"
          ],
          "default": "standard"
        },
        {
          "word": "codec",
          "label": "Codec",
          "type": "choice",
          "advanced": true,
          "values": [
            "auto",
            "H264",
            "H265"
          ],
          "default": "auto"
        }
      ]
    },
    "limits": {
      "kind": "video",
      "seconds": {
        "min": 4,
        "max": 30,
        "step": 1,
        "list": null,
        "auto": false
      },
      "refs_max": {
        "image": 30,
        "video": 0,
        "audio": 0
      },
      "ratios": [
        "21:9",
        "16:9",
        "4:3",
        "1:1",
        "3:4",
        "9:16"
      ],
      "resolutions": [
        "480p",
        "720p",
        "1080p"
      ],
      "max_pixels": null,
      "prompt_max_chars": null,
      "audio_seconds": null
    },
    "prices": {
      "rows": [
        {
          "when": {},
          "credits": {
            "480p": 7.25725,
            "720p": 16.555,
            "1080p": 39.8034
          }
        },
        {
          "when": {
            "ratio": "21:9"
          },
          "credits": {
            "480p": 9.525141,
            "720p": 21.728438,
            "1080p": 52.241963
          }
        },
        {
          "when": {
            "ratio": "4:3"
          },
          "credits": {
            "480p": 5.442938,
            "720p": 12.41625,
            "1080p": 29.85255
          }
        },
        {
          "when": {
            "ratio": "1:1"
          },
          "credits": {
            "480p": 4.082203,
            "720p": 9.312188,
            "1080p": 22.389413
          }
        },
        {
          "when": {
            "ratio": "3:4"
          },
          "credits": {
            "480p": 5.442938,
            "720p": 12.41625,
            "1080p": 29.85255
          }
        },
        {
          "when": {
            "prompt_only": true
          },
          "credits": {
            "480p": 7.7175,
            "720p": 16.555,
            "1080p": 40.74
          }
        },
        {
          "when": {
            "references": true
          },
          "credits": {
            "480p": 7.7175,
            "720p": 16.555,
            "1080p": 40.74
          }
        },
        {
          "when": {
            "prompt_only": true,
            "ratio": "21:9"
          },
          "credits": {
            "480p": 10.129219,
            "720p": 21.728438,
            "1080p": 53.47125
          }
        },
        {
          "when": {
            "prompt_only": true,
            "ratio": "4:3"
          },
          "credits": {
            "480p": 5.788125,
            "720p": 12.41625,
            "1080p": 30.555
          }
        },
        {
          "when": {
            "prompt_only": true,
            "ratio": "1:1"
          },
          "credits": {
            "480p": 4.341094,
            "720p": 9.312188,
            "1080p": 22.91625
          }
        },
        {
          "when": {
            "prompt_only": true,
            "ratio": "3:4"
          },
          "credits": {
            "480p": 5.788125,
            "720p": 12.41625,
            "1080p": 30.555
          }
        },
        {
          "when": {
            "references": true,
            "ratio": "21:9"
          },
          "credits": {
            "480p": 10.129219,
            "720p": 21.728438,
            "1080p": 53.47125
          }
        },
        {
          "when": {
            "references": true,
            "ratio": "4:3"
          },
          "credits": {
            "480p": 5.788125,
            "720p": 12.41625,
            "1080p": 30.555
          }
        },
        {
          "when": {
            "references": true,
            "ratio": "1:1"
          },
          "credits": {
            "480p": 4.341094,
            "720p": 9.312188,
            "1080p": 22.91625
          }
        },
        {
          "when": {
            "references": true,
            "ratio": "3:4"
          },
          "credits": {
            "480p": 5.788125,
            "720p": 12.41625,
            "1080p": 30.555
          }
        },
        {
          "when": {
            "references": true,
            "clip": true
          },
          "credits": {
            "480p": 4.6305,
            "720p": 9.933,
            "1080p": 24.444
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "21:9"
          },
          "credits": {
            "480p": 6.077531,
            "720p": 13.037063,
            "1080p": 32.08275
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "4:3"
          },
          "credits": {
            "480p": 3.472875,
            "720p": 7.44975,
            "1080p": 18.333
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "1:1"
          },
          "credits": {
            "480p": 2.604656,
            "720p": 5.587313,
            "1080p": 13.74975
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "3:4"
          },
          "credits": {
            "480p": 3.472875,
            "720p": 7.44975,
            "1080p": 18.333
          }
        }
      ],
      "default_tier": "720p",
      "default_seconds": 5,
      "per_reference": null,
      "per_input_second": [
        {
          "when": {
            "references": true,
            "clip": true
          },
          "credits": {
            "480p": 4.6305,
            "720p": 9.933,
            "1080p": 24.444
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "21:9"
          },
          "credits": {
            "480p": 6.077531,
            "720p": 13.037063,
            "1080p": 32.08275
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "4:3"
          },
          "credits": {
            "480p": 3.472875,
            "720p": 7.44975,
            "1080p": 18.333
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "1:1"
          },
          "credits": {
            "480p": 2.604656,
            "720p": 5.587313,
            "1080p": 13.74975
          }
        },
        {
          "when": {
            "references": true,
            "clip": true,
            "ratio": "3:4"
          },
          "credits": {
            "480p": 3.472875,
            "720p": 7.44975,
            "1080p": 18.333
          }
        }
      ],
      "per_character": null
    },
    "from_credits": 4.082203,
    "prompt_rules": {
      "binding_token": null,
      "time_format": null,
      "crop": null,
      "lines": []
    },
    "inputs": {
      "start_frame": true,
      "end_frame": true,
      "source": false,
      "image_refs": 30,
      "video_refs": 1,
      "audio_refs": 1,
      "billed_by": []
    },
    "modes": [
      "text",
      "firstFrame",
      "firstLast",
      "reference"
    ]
  }
}

Pricing

Commands that run on this computer are free and need no sign-in. Generation is paid in credits. One credit is $0.05 at list price, and plans make a credit cheaper. Price for one second of video at the house resolution, 9:16, with sound on the models that make sound:

ModelIDMakerCreditsPriceUnit
Seedance 2.5seedance-2.5ByteDance16.555$0.8278per second at 720p
Seedance 2.0seedance-2.0ByteDance10.619$0.531per second at 720p
Seedance 2.0 Miniseedance-2.0-miniByteDance5.4145$0.2707per second at 720p
Kling 4kling-4Kling5.495$0.2748per second at 720p
Kling 4 Editkling-4-editKling6.58$0.329per second at 720p
Kling v3.0kling-v3.0Kling4.41$0.2205per second
Kling 3.0 Turbokling-3.0-turboKling4.9$0.245per second
Wan 3.0wan-3.0Alibaba3.5$0.175per second at 720p
Wan 2.7wan-2.7Alibaba3.5$0.175per second at 720p
Google Veo 3.1veo-3.1Google5.25$0.2625per second at 720p
Google Veo 3.1 Liteveo-3.1-liteGoogle1.75$0.0875per second at 720p
H3 Maxh3-maxMiniMax2.8$0.14per second at 768P
H3 Max Lip Synch3-max-lipsyncMiniMax2.8$0.14per second at 768P
H3 Max Camera Controlsh3-max-cameraMiniMax2.8$0.14per second at 768P
H3 Max Insert Videoh3-max-insertMiniMax2.1$0.105per second at 768p
H3 Max Turboh3-max-turboMiniMax1.4$0.07per second at 768P
MiniMax H3minimax-h3MiniMax2.1$0.105per second at 768P
Grok Video 1.5grok-video-1.5xAI4.9$0.245per second at 720p
Grok Video 1.5 Litegrok-video-1.5-litexAI1.12$0.056per second at 720p
Gemini Omni Flashgemini-omni-flashGoogle4.4992$0.225per second
FLUX 3 Videoflux-3-videoBlack Forest Labs5.95$0.2975per second at 720p
Happy Horse Videohappy-horseAlibaba4.9$0.245per second at 720p
OmniHuman 1.5omnihuman-1.5ByteDance5.6$0.28per second at 720p
Kling O3kling-o3Kling4.9$0.245per second
Kling O3 Omnikling-o3-omniKling4.9$0.245per second
Kling Motion Controlkling-motion-controlKling5.88$0.294per second
Wan 3.0 Primewan-3.0-primeAlibaba4.9$0.245per second at 720p
Vidu Q3vidu-q3Vidu5.39$0.2695per second at 720p
Pixverse V6pixverse-v6PixVerse2.1$0.105per second at 720p
Pixverse V5.5pixverse-v5.5PixVerse1.75$0.0875per second at 720p

Every model and kind: /models.md. Plans: /pricing.md. Read prices from a terminal: minicut models --kind video --json.

Updated 2026-11-12.