Skip to main content

FLMKR — AI Filmmaking Harness

An autonomous, terminal-native AI filmmaking agent that transforms creative ideas into complete audiovisual productions.

What It Is

FLMKR is an agent harness for filmmaking — not a video generator, not a prompt engine, not a GUI wrapper. It's the environment that allows an autonomous agent to perform complex filmmaking work:

  • Plan productions from ideas, screenplays, or treatments
  • Create and maintain a Production Bible (characters, locations, style, continuity)
  • Generate shots through provider-agnostic adapters (Agnes, Kling, MiniMax, Runway)
  • Run QA at chunk/shot/scene levels with continuity checking
  • Recover from failures without restarting the entire production
  • Render final films with editorial assembly

Install

pip install flmkr

Development install (with test & lint tooling):

pip install -e ".[dev]"

Verify:

flmkr --version
# flmkr, version 0.1.0

Quickstart

# Create a new film project from an idea
flmkr create "A woman discovers her autonomous car is taking her somewhere she never asked to go."

# Inspect the auto-generated Production Bible
flmkr bible

# Dry-run the production plan (estimates shots, cost, runtime)
flmkr plan

# Generate all assets
flmkr generate

# View progress
flmkr status
flmkr shots
flmkr events

# Open the interactive TUI to review and approve shots
flmkr review

# Render the final assembled film
flmkr render

# Resume after an interruption
flmkr resume

See docs/getting-started.md for a full 5-minute tutorial.

MCP Usage

FLMKR exposes an MCP server for integration with AI coding agents (Claude Code, Codex CLI, MiMoCode, etc.):

python -m flmkr.mcp_server --project ./my-film

Available tools:

Tool Description
flmkr_status Get current production status
flmkr_list_scenes List scenes with status and runtime
flmkr_list_shots List shots in a scene
flmkr_generate_shot Generate video for a shot
flmkr_run_qa Run quality assurance on assets
flmkr_get_bible Read the Production Bible
flmkr_plan Dry-run production plan
flmkr_create Create a new film project
flmkr_resume Resume an interrupted production
flmkr_render Render the final film
flmkr_cost Show cost breakdown

Architecture

┌──────────────────────────────────────────────────────┐
│                    CLI / TUI                         │
│              (click / textual)                       │
└───────────────────────┬──────────────────────────────┘
                        │
┌───────────────────────▼──────────────────────────────┐
│              Producer Orchestrator                     │
│         (flmkr.orchestrator.Orchestrator)              │
│                                                        │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐     │
│  │   Story    │  │ Character  │  │Cinematog-  │     │
│  │   Agent    │  │   Agent    │  │   raphy    │     │
│  └────────────┘  └────────────┘  └────────────┘     │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐     │
│  │ Generation │  │    QA      │  │ Editorial  │     │
│  │   Agent    │  │   Agent    │  │   Agent    │     │
│  └────────────┘  └────────────┘  └────────────┘     │
└───────────────────────┬──────────────────────────────┘
                        │
┌───────────────────────▼──────────────────────────────┐
│              Provider Adapters                       │
│   (Agnes · Kling · MiniMax · Runway · custom)        │
└───────────────────────┬──────────────────────────────┘
                        │
┌───────────────────────▼──────────────────────────────┐
│              Production Bible                        │
│   (Bible → Characters · Locations · Style · Scenes)  │
└───────────────────────┬──────────────────────────────┘
                        │
┌───────────────────────▼──────────────────────────────┐
│              Event Store                             │
│        (SQLite — durable, resumable)                 │
└──────────────────────────────────────────────────────┘

Data Flow

Idea / Screenplay
       ↓
  Project.init()
       ↓
  Bible generation (story, characters, locations, style)
       ↓
  Scene & shot planning
       ↓
  Generation (provider-agnostic, with retry & recovery)
       ↓
  QA (continuity, narrative, technical)
       ↓
  Editorial assembly
       ↓
  Final film render

Project Structure

flmkr/
├── __init__.py      # Package entry
├── cli.py           # Click CLI commands
├── config.py        # Pydantic settings
├── models.py        # Core data models (Bible, Shot, Scene, etc.)
├── agents.py        # Agent framework
├── providers.py     # Provider adapters
├── orchestrator.py  # Producer/Orchestrator
├── qa.py            # QA engine
├── editorial.py     # Editorial/timeline engine
├── project.py       # Project state container
├── event_store.py   # SQLite event log
├── events.py        # Event types
├── exceptions.py    # Error types
├── llm.py           # LLM interaction layer
├── mcp_server.py    # MCP server for AI agent integration
└── tui.py           # Rich terminal UI

Examples

Example Description
examples/basic_film/bible.yaml Minimal production bible — characters, locations, style
examples/shot_list/screenplay.md Screenplay-to-shots workflow with annotated shot list

Requirements

  • Python 3.11+
  • SQLite (bundled with Python)
  • Internet connection for provider APIs

License

MIT

Release files for flmkr 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flmkr 0.1.3
File Size Uploaded
flmkr-0.1.3.tar.gz 123.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flmkr 0.1.3
File Interpreter ABI Platform
flmkr-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 173.7 kB

Release files / flmkr-0.1.3.tar.gz

Download URL flmkr-0.1.3.tar.gz
Size 123.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3b3b5523323c055132c8223f0ac3003da51f91b175aeeb6120ea7edc8b5d39ab
BLAKE2b-256 checksum
How to use checksums
78ccff0ee6af5c8d848839c0a601ce4421aa6bb174807a6f7fb5d67a32f4eb48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / flmkr-0.1.3-py3-none-any.whl

Download URL flmkr-0.1.3-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
89440cb63b7d4198b77784b3d28203818af7e281cf90963ab4dff821692f57f3
BLAKE2b-256 checksum
How to use checksums
23b5a3e9c056779e24a4c8bef5e3b8f0e71fc7020001ea71bec19485f5557809
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page