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.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flmkr-0.1.7.tar.gz | 153.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flmkr-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 206.7 kB
Release files / flmkr-0.1.7.tar.gz
| Download URL | flmkr-0.1.7.tar.gz |
|---|---|
| Size | 153.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a70b70951796760354516ff0a777e984f0442ebb105faf37473a0f6823a9727
|
|
BLAKE2b-256 checksum How to use checksums |
00972c9ca4c1d65038b1b2356d1f61b65d20d73840c737b6613d9779e96c54d1
|
| 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 logRelease files / flmkr-0.1.7-py3-none-any.whl
| Download URL | flmkr-0.1.7-py3-none-any.whl |
|---|---|
| Size | 53.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
30b0b6e7a918720bfadc6aef44bb9bdfda6bac09112d4a1420392644b88e9bd6
|
|
BLAKE2b-256 checksum How to use checksums |
10b0f25c9d7db4943c190281c0c5389ecdd9d8a30981bc64940f382308b3c543
|
| 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