Project Info
Inspiration
Flowcut was born out of shared frustration. Each of us came into video editing from different angles—one recently diving into content creation and feeling the steep learning curve, another experimenting with editing from a young age, one deeply passionate about storytelling, and another editing out of necessity for work. Despite different motivations, we all ran into the same barriers: complex interfaces, endless micro-adjustments, time-consuming workflows, expensive subscriptions, and the need for powerful hardware just to keep up. Creativity often felt slowed down by the tool itself. We wanted something different—an editor that reduces friction instead of adding to it, runs locally to cut costs, respects ownership and privacy, and helps creators move from idea to polished video without breaking flow. Flowcut exists because we’ve experienced the struggle firsthand and believed editing should feel empowering, not exhausting.
What it does
Flowcut is a local agentic video editor that transforms how creators work on a timeline. Instead of manually performing dozens of micro-edits, users use natural language to direct the system to intelligently cut, trim, split, delete, rearrange clips, insert b-roll, sync audio, and generate music. Every change is captured in a hierarchical edit tree, allowing users to explore creative branches, compare variations, and revert to any prior state without losing work. It also features a Director Marketplace personas such as a Cinematic Filmmaker, YouTube editor, or Gen-Z content creator that live inside the editor who can critique pacing, suggest structural improvements, and guide narrative direction. For launch videos and motion-driven content, Flowcut integrates with Remotion to generate dynamic, code-based compositions that remain fully editable. Audio and soundtrack generation are powered by Suno, enabling theme-aligned music tailored to the mood of each video, while AI-generated visual sequences can be created using Runware to expand creative possibilities directly within the workflow. The result is a structured, collaborative, and deeply iterative video creation system that blends automation, version control, generative media, and creative direction into one unified platform.
How we built it
Key Components (Detailed) We built a LangChain-powered root agent (supervisor) that routes user requests to 8 specialized sub-agents. A single agent with 50+ tools performs poorly — the LLM gets confused. By splitting into focused agents, each one has a tight system prompt and only the tools it needs. |Text agent| | Music Agent | Background music generation via Suno | | Transitions Agent | 412+ built-in OpenShot transitions | | Product Launch Agent | Animated GitHub repo showcase videos (Remotion) | | Directors | Multi-perspective video critique — parallel analysis, structured debate, consensus plan | | Parallel Versions | Spawns multiple agents simultaneously on isolated project snapshots | Routing is intent-based — GitHub URL → Product Launch Agent, "add a fade" → Transitions Agent, "generate music" → Music Agent. The root agent can chain multiple sub-agents per request. 3. Backend Architecture Base: OpenShot Video Editor (libopenshot C++ engine) with a PyQt5 GUI. We extended it with an AI chat interface and the multi-agent system described above. The Qt Threading Problem: All GUI operations in PyQt5 must run on the main thread, but LLM calls take 1-5 seconds. We built MainThreadToolRunner — a QObject bridge that lets agents run on worker threads while marshaling tool calls to the main thread via Qt.BlockingQueuedConnection. Result: zero UI freezes during AI operations. LLM Providers: Provider-agnostic registry supporting OpenAI (GPT-4o), NVIDIA (Nemotron-Mini), Anthropic (Claude 3.5 Sonnet), and Ollama (Llama 3.2) via LangChain. Users pick their preferred backend in settings. All agents use the same registry. Parallel Version Execution: Users can generate multiple content variations simultaneously. Each version gets a deep copy of the project state — isolated snapshots so modifications never interfere. Switch between completed versions to compare and pick favorites. 4. AI Video Generation — Runware (Vidu/Kling on GPU) Video generation runs through the Runware SDK, with models accelerated on the AscendGX10: Vidu Q2 Turbo (vidu:3@2) — Text-to-video generation (default) Kling AI (klingai:kling@o1) — Morph transitions and high-res output (1920x1080) Features: Text-to-video: "A serene mountain landscape at sunset" → 4-second clip, auto-added to timeline AI Morph Transitions: Extracts last frame of clip A + first frame of clip B → Kling generates a smooth morph between them (replaces hard cuts) Object Replacement: "Replace the water bottle with a Red Bull can" → frame-by-frame video-to-video processing Fallback: SDK (WebSocket) preferred, REST API (api.runware.ai/v1) as backup 5. AI Music Generation — Suno Suno API integration for background music, directly from chat: Modes: Topic-based ("upbeat tech demo music"), custom lyrics, instrumental toggle, style tags with negative tags Workflow: Generate → poll every 5s (180s timeout) → download MP3 → import to project → add to timeline on a new track The Music Agent also has access to all 30 OpenShot tools, so it intelligently places music — matching duration, adjusting position, creating tracks as needed 6. AI Image Generation Image generation powered by Runware's GPU-accelerated pipeline on the AscendGX10. Supports text-to-image prompts with configurable resolution, and the results are automatically imported into the project file list for use on the timeline. 7. Remotion — React Video Templates For product launch videos, we run a separate Node.js Remotion service (localhost:3100) that renders React components to MP4 in 5-10 seconds: IntroScene — Spring-animated repo name + description with gradient text StatsScene — Animated counters for GitHub stars, forks, language FeaturesScene — Key features extracted from README OutroScene — Call-to-action with GitHub URL Python communicates via HTTP — thread-safe, no Qt dependencies, completely isolated from the main process. Renders in parallel (concurrency: 4) for speed. 8. OpenShot — Base Video Engine All video editing operations run through libopenshot, the C++ engine underneath OpenShot Video Editor. This handles: Timeline rendering and playback Clip management (add, split, trim, remove) 412+ transitions (fades, wipes, circles, ripples, blurs) Effects and filters Multi-track audio/video Export to multiple formats via FFmpeg We expose 30 of these operations as LangChain @tool functions so the AI agents can manipulate the timeline programmatically — importing files, placing clips, splitting at timestamps, applying transitions, and exporting, all from natural language requests.
Accomplishments we're proud of
What we envisioned for our video editing system, we were able to bring to life within the hackathon timeframe. We successfully built a working local AI-driven editor capable of orchestrating structured timeline edits through natural language and visualizing every change in a transparent plan graph. We implemented branching edit history, integrated generative music and video capabilities, and connected code-based video generation for launch-style compositions. Most importantly, we didn’t just prototype the idea—we used Flowcut itself to produce our demo video, validating that the system works in practice, not just in theory. Turning a complex, ambitious concept into a functional, end-to-end product under time constraints is something we’re genuinely proud of.
Flowcut
Flowcut is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.
Build Status
Features
- Cross-platform (Linux, Mac, and Windows)
- Support for many video, audio, and image formats (based on FFmpeg)
- Powerful curve-based Key frame animations
- Desktop integration (drag and drop support)
- Unlimited tracks / layers
- Clip resizing, scaling, trimming, snapping, rotation, and cutting
- Video transitions with real-time previews
- Compositing, image overlays, watermarks
- Title templates, title creation, sub-titles
- 2D animation support (image sequences)
- 3D animated titles (and effects)
- SVG friendly, to create and include vector titles and credits
- Scrolling motion picture credits
- Advanced Timeline (including Drag & drop, scrolling, panning, zooming, and snapping)
- Frame accuracy (step through each frame of video)
- Time-mapping and speed changes on clips (slow/fast, forward/backward, etc...)
- Audio mixing and editing
- Digital video effects, including brightness, gamma, hue, greyscale, chroma key, and many more!
- Experimental hardware encoding and decoding (VA-API, NVDEC, D3D9, D3D11, VTB)
- Import & Export widely supported formats (EDL, XML)
- Render videos in many codecs and formats (based on FFmpeg)
Getting Started
The quickest way to get started using Flowcut is to download one of our pre-built installers. On our download page, click the Daily Builds button to view the latest, experimental builds, which are created for each new commit to this repo.
Tutorial
Watch the official step-by-step video tutorial, or read the official user-guide:
Developers
Are you interested in becoming more involved in the development of Flowcut? Build exciting new features, fix bugs, make friends, and become a hero! Please read the step-by-step instructions for getting source code, configuring dependencies, and building Flowcut.
Documentation
Beautiful HTML documentation can be generated using Sphinx.
cd doc
make html
The documentation for the most recent release can be viewed online at openshot.org/user-guide.
Report a bug
Please report bugs using the official Report a Bug feature on our website. This walks you through the bug reporting process, and helps to create a high-quality bug report for the Flowcut community.
Or you can report a new issue directly on GitHub:
https://github.com/OpenShot/openshot-qt/issues
Translations
Translating OpenShot into other languages is very easy! Please read the step-by-step instructions or login to LaunchPad and get started. All you need is a web browser.
- Application Translations: https://translations.launchpad.net/openshot/2.0/+translations
- Website Translations: https://translations.launchpad.net/openshot/website/+pots/django
Dependencies
Although installers are much easier to use, if you must build from source, here are some tips:
OpenShot is programmed in Python (version 3+), and thus does not need to be compiled to run. However, be sure you have the following dependencies in order to run OpenShot successfully:
- Python 3.0+ (http://www.python.org)
- PyQt5 (http://www.riverbankcomputing.co.uk/software/pyqt/download5)
- libopenshot: OpenShot Library (https://github.com/OpenShot/libopenshot)
- libopenshot-audio: OpenShot Audio Library (https://github.com/OpenShot/libopenshot-audio)
- FFmpeg or Libav (http://www.ffmpeg.org/ or http://libav.org/)
- GCC build tools (or MinGW on Windows)
Launch
To run OpenShot from the command line with an installed libopenshot,
use the following syntax:
(be sure the change the path to match the install or repo location
of openshot-qt)
cd [openshot-qt folder]
python3 src/launch.py
To run with a version of libopenshot built from source but not installed,
set PYTHONPATH to the location of the compiled Python bindings. e.g.:
cd [libopenshot folder]
cmake -B build -S . [options]
cmake --build build
cd [openshot-qt folder]
PYTHONPATH=[libopenshot folder]/build/bindings/python \
python3 src/launch.py
Websites
- https://www.openshot.org/ (Official website and blog)
- https://github.com/OpenShot/openshot-qt (source code and issue tracker)
- https://github.com/OpenShot/libopenshot-audio (source code for audio library)
- https://github.com/OpenShot/libopenshot (source code for video library)
- https://launchpad.net/openshot/
Copyright & License
Copyright (c) 2008-2022 OpenShot Studios, LLC. This file is part of OpenShot Video Editor (https://www.openshot.org), an open-source project dedicated to delivering high quality video editing and animation solutions to the world.
OpenShot Video Editor is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
OpenShot Video Editor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with OpenShot Library. If not, see http://www.gnu.org/licenses/.
Analysis
View
Metric
- 14
- 6
- 3
- 1
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- C++In code
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- LangChainIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
- Node.jsClaimed
- OpenAIClaimed
10 of 12 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeCommits
- CursorConfig · Commits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
70 MB
Source files
2,914
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Flowcut-treehacks/core
4,000 files · 134.7 MB · @ cba115f
Structure
Interface
2 files · 0%Screens, components and styles rendered to the user.
API & routing
5 files · 0%Request entry points: routes, handlers and controllers.
Application logic
3,123 files · 78%Domain rules, services and shared utilities.
Background jobs
7 files · 0%Work run outside a request: tasks, workers and schedules.
Data & schema
44 files · 1%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python97%
- C2%
- C++1%
- YAML0%
- Markdown0%
- JavaScript0%
- Other (2)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 24- certifi
- chardet
- cx_Freeze
- defusedxml
- distro
- google-genai
- langchain
- langchain-anthropic
- langchain-community
- langchain-core
- langchain-ollama
- langchain-openai
- markdown
- PyQt5
- PyQtWebEngine
- python-dotenv
- pyzmq
- requests
- +6 more
remotion-service/package.json
npm · 13- @remotion/bundler
- @remotion/cli
- @remotion/renderer
- express
- react
- react-dom
- remotion
- +6 more
doc/requirements.txt
pypi · 2- sphinx_copybutton
- sphinx_rtd_theme
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This repository has more files than are indexed here, so the diagram and browser show a partial tree. Open it on GitHub for the complete structure.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.