Used for video compilation, combining generated frames and audio into final MP4 video walkthroughs of code changes.
Generates narrated video walkthroughs of git commits, staged/unstaged changes, diffs, and entire codebases with AI-powered analysis and syntax-highlighted code visualization.
Captures PNG screenshots of HTML frames containing syntax-highlighted code snippets for video generation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Git Commit Video Walkthrough Generatorgenerate a video walkthrough of my staged changes with technical style"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Git Commit Video Walkthrough Generator
A command-line tool that generates narrated video walkthroughs of git commits, staged/unstaged changes, or entire codebases with AI-powered analysis and explanations.
Features
π₯ Automatic video generation from git commits, diffs, or codebases
π€ AI-powered code analysis using Claude (Anthropic) or Gemini (Google)
π£οΈ Natural text-to-speech narration
π¨ Syntax-highlighted code visualization
π Multiple presentation styles (beginner, technical, overview)
β‘ Standalone CLI - no external services required
π Direct LLM API integration (Anthropic, Google AI)
Installation
Prerequisites
FFmpeg: Required for video compilation
macOS:
brew install ffmpegLinux:
apt install ffmpegWindows: Download from ffmpeg.org
Node.js/Bun: For running the CLI
Recommended: Bun 1.0+ (
curl -fsSL https://bun.sh/install | bash)Or Node.js 20+
LLM API Key: You need an API key from one of these providers:
Anthropic Claude: Get from console.anthropic.com
Google AI: Get from ai.google.dev
Install from Source
Setup API Keys
Set your API key as an environment variable:
Usage
Basic Usage
Options
Examples
Target Types
Specific Commit:
git-commit-video <commit-hash>Staged Changes:
git-commit-video --stagedUnstaged Changes:
git-commit-video --unstagedEntire Codebase:
git-commit-video --codebase
Presentation Styles
beginner: Detailed explanations, slower pace, educational tone
technical: Precise, focused on implementation details
overview: Quick, high-level summary of changes
Visual Themes
dark: Dark background (ideal for code)
light: Light background
github: GitHub-style syntax highlighting
How It Works
The CLI follows a three-stage pipeline:
Extract Git Data: Analyzes commits, diffs, or codebase structure
LLM Analysis: Calls Claude/Gemini API to analyze code and generate narration script
Video Generation: Creates frames, generates audio, compiles into MP4
Configuration
API Key Configuration
You can provide your API key in multiple ways (in order of precedence):
Environment Variable (recommended):
export ANTHROPIC_API_KEY="your-key" # or export GOOGLE_API_KEY="your-key"Command-line Argument:
git-commit-video abc123 --api-key "your-key"Config File (
~/.git-commit-video/config.json):{ "anthropicApiKey": "your-key", "googleApiKey": "your-key", "defaultLlm": "anthropic", "defaultStyle": "technical", "defaultTheme": "dark" }
LLM Providers
Anthropic Claude (default):
Best for code analysis
Models:
claude-3-5-sonnet-20241022,claude-3-opus-20240229Get API key: console.anthropic.com
Google Gemini:
Fast and cost-effective
Models:
gemini-1.5-pro,gemini-1.5-flashGet API key: ai.google.dev
Project Structure
Development
Architecture
This CLI application uses a straightforward pipeline:
User runs CLI command with target (commit, staged, unstaged, codebase)
CLI extracts code/commits from git repository
CLI calls LLM API (Anthropic/Google) to analyze code
LLM returns structured analysis (JSON)
CLI calls LLM API again to generate narration script
LLM returns timed script with narration
CLI generates video frames, audio, and compiles final MP4
All processing happens locally - only the LLM analysis is done via API calls.
Video Generation Pipeline
Analysis: Code is analyzed to understand what it does
Script: A narrated script is generated based on analysis
Frames: HTML frames are created with syntax-highlighted code
Screenshots: Puppeteer captures PNG screenshots of each frame
Audio: Text-to-speech generates narration audio
Compilation: FFmpeg combines frames and audio into MP4
Output
The generated video includes:
Introduction with project overview
Section-by-section code walkthrough
Syntax-highlighted code snippets
Professional narration
Conclusion summary
Example output structure:
Troubleshooting
"API Key Not Found" Error
Make sure you've set your API key:
Add it to your shell profile to persist across sessions.
"FFmpeg Not Found" Error
Install FFmpeg:
macOS:
brew install ffmpegLinux:
apt install ffmpegWindows: Download from ffmpeg.org and add to PATH
Verify installation: ffmpeg -version
"Invalid JSON Response" Error
The LLM returned malformed JSON. This can happen with very large diffs. Try:
Analyzing a smaller commit
Using a different LLM provider (
--llm google)Using a more capable model (
--model claude-3-opus-20240229)
No Audio in Video
The CLI uses system text-to-speech. If TTS fails, the video will be generated without audio (silent).
To improve TTS quality, install edge-tts:
Puppeteer Issues
Puppeteer downloads Chromium automatically. If it fails:
Rate Limiting
If you hit API rate limits, the CLI will automatically retry with exponential backoff. For large codebases, consider:
Using
--style overviewfor shorter analysisSplitting analysis into multiple commits
Using a higher rate limit tier with your LLM provider
Cost Estimates
Typical API costs (approximate):
Target Type | Tokens | Anthropic (Claude) | Google (Gemini) |
Small commit (~10 files) | ~3K | $0.01 | $0.00 |
Medium commit (~50 files) | ~15K | $0.05 | $0.01 |
Large commit (~200 files) | ~60K | $0.20 | $0.03 |
Entire codebase (small) | ~20K | $0.07 | $0.01 |
Entire codebase (large) | ~100K | $0.35 | $0.05 |
Use --dry-run to see estimated costs before execution.
License
MIT
Contributing
Contributions welcome! Please ensure:
TypeScript code compiles without errors
Follow existing code style
Update documentation for new features
Add tests for new functionality
Roadmap
Support for more LLM providers (OpenAI, Cohere)
Custom TTS voices
Interactive mode with live preview
Video editing features (trim, merge sections)
Export to different formats (GIF, WebM)
GitHub Actions integration