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
# Clone the repository
git clone https://github.com/yourusername/code-walkthrough-cli.git
cd code-walkthrough-cli
# Install dependencies
bun install
# Build TypeScript
bun run build
# Optional: Create compiled binary
bun run build:binSetup API Keys
Set your API key as an environment variable:
# For Anthropic Claude
export ANTHROPIC_API_KEY="your-api-key-here"
# Or for Google Gemini
export GOOGLE_API_KEY="your-api-key-here"
# Add to your shell profile (~/.zshrc, ~/.bashrc) to persist
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.zshrcUsage
Basic Usage
# Analyze a specific commit
git-commit-video abc123
# Analyze staged changes
git-commit-video --staged
# Analyze unstaged changes
git-commit-video --unstaged
# Analyze entire codebase
git-commit-video --codebaseOptions
git-commit-video <commit-hash> [options]
Options:
--repo <path> Path to git repository (default: current directory)
--output <path> Output video path (default: ./walkthrough.mp4)
--style <style> Presentation style: beginner, technical, overview (default: technical)
--theme <theme> Visual theme: dark, light, github (default: dark)
--llm <provider> LLM provider: anthropic, google (default: anthropic)
--model <name> Specific model to use (default: provider's latest)
--help, -h Show helpExamples
# Generate video for commit with technical style
git-commit-video abc123 --style technical
# Analyze staged changes with light theme
git-commit-video --staged --theme light --output ./staged-changes.mp4
# Analyze entire codebase using Google Gemini
git-commit-video --codebase --llm google --style overview
# Use specific repository path
git-commit-video abc123 --repo /path/to/repo --output ./my-video.mp4Target 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
βββββββββββββββ ββββββββββββββββ βββββββββββββββ
β Git Data β --> β LLM Analysis β --> β Video Gen β
β Extraction β β (API Call) β β (Frames+TTS)β
βββββββββββββββ ββββββββββββββββ βββββββββββββββ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
.
βββ src/
β βββ cli.ts # CLI entry point
β βββ index.ts # Core application logic
β βββ stages/
β β βββ analysis.ts # LLM analysis via API
β β βββ script.ts # Script generation via API
β β βββ video.ts # Video generation pipeline
β βββ extractors/
β β βββ commit.ts # Extract commit info
β β βββ staged.ts # Extract staged changes
β β βββ unstaged.ts # Extract unstaged changes
β β βββ codebase.ts # Extract codebase info
β βββ llm/
β β βββ anthropic.ts # Anthropic API integration
β β βββ google.ts # Google AI integration
β β βββ types.ts # LLM provider interface
β βββ types/
β β βββ state.ts # Type definitions
β β βββ analysis.ts # Analysis types
β βββ utils/
β βββ prompts.ts # LLM prompts for analysis
β βββ args.ts # CLI argument parsing
βββ dist/ # Compiled JavaScript
βββ bin/
β βββ git-commit-video # Compiled binary (optional)
βββ video_output/ # Generated videos (default)Development
# Watch mode (auto-rebuild on changes)
bun run watch
# Run CLI locally
bun run dev
# Build TypeScript
bun run build
# Build standalone binary
bun run build:bin
# Run tests
bun testArchitecture
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:
walkthrough.mp4 # Final video
temp_frames/ # Temporary frame images (auto-deleted)
temp_audio.mp3 # Temporary audio (auto-deleted)Troubleshooting
"API Key Not Found" Error
Make sure you've set your API key:
export ANTHROPIC_API_KEY="your-key"
# or
export GOOGLE_API_KEY="your-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:
pip install edge-ttsPuppeteer Issues
Puppeteer downloads Chromium automatically. If it fails:
# Reinstall dependencies
rm -rf node_modules
bun installRate 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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.