NousResearch/kanban-video-pipeline
Python
Captured source
source ↗NousResearch/kanban-video-pipeline
Language: Python
Stars: 34
Forks: 7
Open issues: 0
Created: 2026-05-02T17:01:19Z
Pushed: 2026-05-02T17:01:23Z
Default branch: main
Fork: no
Archived: no
README:
Kanban Video Pipeline — Multi-Agent Creative Production
> A recursive demonstration: the Hermes Agent Kanban system creates a video explaining itself.
Four AI agent profiles collaborate autonomously — a director, cinematographer, renderer, and editor — communicating through structured handoffs, comments, and shared workspace files. One command kicks off the entire pipeline; you come back to a finished video.
What This Is
A Kanban-driven multi-agent video production pipeline built on Hermes Agent. You describe a video, the system decomposes it into a task graph, and specialized agent profiles execute each stage:
You type one command → Director decomposes the brief into 9 tasks → Cinematographer designs visual language → 7 Renderers execute in parallel (ASCII video + p5.js) → Editor reviews clips + assembles final cut → output/final.mp4
The entire pipeline auto-runs with zero human intervention. Every stage promotes automatically when its dependencies complete.
The Recursive Concept
This video is about Kanban — and it was made by Kanban. The first project demonstrates the system by having it create an explainer video about itself. Two-part structure:
1. Part 1 (captured with Screen Studio): You type the command, the dashboard lights up, tasks flow between columns 2. Part 2 (generated by the pipeline): The actual video the system produced — ASCII art + generative visuals explaining how Kanban works
The Team
| Profile | Role | Communication | |---------|------|---------------| | Director | Vision, decomposition, final approval | Handoffs to cinematographer, comments on anything | | Cinematographer | Visual spec, quality gate | Specs to renderers, feedback via comments | | Renderer | Code execution (ascii-video / p5.js) | Reads parent handoff + comments, writes clips | | Editor | Pacing review, assembly, final cut | Reviews with AI video analysis, assembles with ffmpeg |
Cross-Profile Communication
Agents talk to each other through three built-in Kanban channels:
- Structured handoffs — when a task completes with
summary+metadata, every child task automatically receives it in context - Comments — any profile can write
kanban_comment(task_id=)on any task; the next worker reads the full thread - Shared workspace — all profiles read/write to the same project directory
Quick Start
Prerequisites
- Hermes Agent installed
- OpenRouter API key (for claude-opus-4.6)
- Gateway running (
hermes gateway start)
Setup
chmod +x setup.sh ./setup.sh
This creates 4 profiles (director, cinematographer, renderer, editor), writes their personalities, sets up the project structure, and initializes the Kanban board.
Run
hermes kanban create "Make a video explaining how Hermes Kanban works" \ --assignee director \ --workspace dir:$(pwd)/kanban-launch-video \ --tenant video-pipeline \ --priority 2 \ --max-runtime 4h \ --body "Read brief.md. Decompose into: cinematographer → renderers → editor. All child tasks MUST use workspace_kind='dir' and workspace_path='$(pwd)/kanban-launch-video'. Pass tenant='video-pipeline' on every create."
Monitor
hermes kanban watch --tenant video-pipeline # live events hermes kanban list --tenant video-pipeline # board state hermes dashboard # visual board (Kanban tab)
Project Structure
├── README.md ← you are here ├── ARCHITECTURE.md ← system design, communication model ├── RUN.md ← step-by-step execution guide ├── brief.md ← the video specification ├── setup.sh ← one-shot setup script ├── taste/ │ ├── brand-guide.md ← visual language rules │ └── emotional-dna.md ← the creative soul document ├── tools/ │ └── media_analyze.py ← AI audio/video analysis CLI (Gemini via OpenRouter) └── render-scripts/ ← what the agents actually wrote (reference) ├── scene-01/render.py ← ASCII video (Python + NumPy + ffmpeg) ├── scene-02/render.py ├── scene-03/sketch.html ← p5.js generative (HTML + Puppeteer) ├── scene-04/render.py ├── scene-05/sketch.html ├── scene-06/render.py └── scene-07/render.py
Output
The pipeline produces:
output/final.mp4— 1920×1080 @ 24fps, ~2 minutes, with audiooutput/final-noaudio.mp4— silent version for re-scoring- Individual scene clips at
scenes/scene-NN/clip.mp4
How It Works (Deep Dive)
See [ARCHITECTURE.md](./ARCHITECTURE.md) for:
- Full communication model diagram
- Task graph with dependency links
- Iteration loops (cinematographer ↔ renderer, editor ↔ renderer)
- Renderer flexibility (swap ascii-video / p5js / remotion per task)
- Media analysis tool usage
Timing
| Phase | Duration | What Happens | |-------|----------|--------------| | Director | ~3 min | Reads brief, creates 9 tasks | | Cinematographer | ~8 min | Designs visual spec for all scenes | | Renderers (×7 parallel) | ~20 min | ASCII/p5.js rendering | | Editor | ~10 min | Reviews, assembles, muxes audio | | Total | ~45 min | Fully autonomous |
Adapting This
To make your own video: 1. Edit brief.md with your video spec 2. Replace taste/brand-guide.md with your visual language 3. Drop your audio into the workspace 4. Run setup.sh → fire the kanban command 5. Come back to a video
The renderer profile has both ascii-video and p5js skills — use --skill on individual tasks to control which renderer is used per scene.
License
MIT
Notability
notability 4.0/10New repo, low stars, routine