gifhorseSearch video dialogue and create reaction GIFs with timed subtitles. Perfect for creating meme-worthy clips from movies and TV shows.
Install via ClawdBot CLI:
clawdbot install Coyote-git/gifhorseInstall gifhorse CLI tool:
Install gifhorse CLI toolInstall FFmpeg-full (macOS):
Install FFmpeg-full (macOS)Requires:
Create reaction GIFs from your video library by searching dialogue and adding timed subtitles.
cd ~/gifhorse && source venv/bin/activate
gifhorse transcribe ~/Movies
The gifhorse command must be run from within its virtual environment. You can activate it with:
cd ~/gifhorse && source venv/bin/activate
Or use the activation helper:
source ~/gifhorse/activate.sh
Extract dialogue from your videos (one-time per video):
# Default: downloads subtitles from online providers (fast, recommended)
gifhorse transcribe /path/to/videos
# Use only local .srt files (no downloading, no Whisper)
gifhorse transcribe /path/to/videos --use-subtitles
# Use Whisper AI (slow but works for any video)
gifhorse transcribe /path/to/video.mp4 --use-whisper
# Re-transcribe videos already in database
gifhorse transcribe /path/to/videos --force
Download .srt files without storing in the database:
gifhorse fetch-subtitles /path/to/videos
gifhorse fetch-subtitles /path/to/videos --skip-existing
Find quotes across your entire library:
# Basic search
gifhorse search "memorable quote"
# Search with surrounding context
gifhorse search "memorable quote" --context 2
# Show all results (no limit)
gifhorse search "memorable quote" --all
# Custom result limit (default: 100)
gifhorse search "memorable quote" --limit 50
See exactly what will be captured:
gifhorse preview "memorable quote" 1
gifhorse preview "quote" 1 --include-before 1 --include-after 1
Generate the GIF with subtitles:
# Basic GIF (auto-named from dialogue, saved to exports/)
gifhorse create "memorable quote" 1
# Explicit output path
gifhorse create "memorable quote" 1 -o reaction.gif
# High quality for social media
gifhorse create "quote" 1 --width 720 --fps 24 --quality high
# Include conversation context
gifhorse create "quote" 1 --include-before 2 --include-after 1
# Substitute words in subtitles (repeatable, target segments by number from preview)
gifhorse create "the age of men" 1 --include-after 1 \
-s 1 "men" "standardized software" \
-s 2 "orc" "custom applications"
# Clean replace (no strikethrough)
gifhorse create "quote" 1 -r 1 "old word" "new word"
# Create and send via iMessage
gifhorse create "quote" 1 --send
gifhorse create "quote" 1 --send-to "+15551234567"
# Remove videos by path pattern (SQL LIKE wildcards)
gifhorse remove "%Adventure Time%"
gifhorse remove "%S01%" --yes
# Check subtitle status for a directory
gifhorse subtitle-status ~/Videos
gifhorse subtitle-status ~/Videos --missing-only
# See transcription stats
gifhorse stats
# List all transcribed videos
gifhorse list
# Set phone number for iMessage sending
gifhorse config --set-phone "+15551234567"
# Show current configuration
gifhorse config --show
Control exactly what gets captured:
--include-before N - Include N dialogue segments before the match--include-after N - Include N dialogue segments after the match--padding-before SECS - Add buffer seconds before dialogue starts (default: 1.0)--padding-after SECS - Add buffer seconds after dialogue ends (default: 1.0)--start-offset SECS - Manual adjustment to start time (can be negative)--end-offset SECS - Manual adjustment to end time (can be negative)Important: For reactions after dialogue, use --padding-after instead of --include-after. The include-after option captures ALL time until the next dialogue segment (could be 30+ seconds!).
--quality low|medium|high - Color palette quality (affects file size)--fps N - Frames per second (default: 15, use 24 for smooth)--width N - Width in pixels (default: 480, use 720 for HD)-s, --sub NUM OLD NEW - Substitute words in a segment (repeatable). Replaced words render struck through in red, replacements in red. Segment numbers shown by preview.-r, --replace NUM OLD NEW - Replace words cleanly (no strikethrough). Repeatable.--no-subtitles - Create GIF without subtitle overlayi_dont_think_so.gif) and saved to exports/-o PATH to override. Collision handling appends _2, _3, etc.--send - Send created GIF to configured phone number via iMessage (macOS only)--send-to NUMBER - Send to a specific phone number (overrides config)Note: All GIFs automatically include a subtle "gifhorse" watermark in the bottom-right corner.
gifhorse search "perfect"
gifhorse create "perfect" 1 --padding-after 2.0
gifhorse search "key phrase"
gifhorse preview "key phrase" 1 --include-before 2 --include-after 1
gifhorse create "key phrase" 1 --include-before 2 --include-after 1
gifhorse preview "the age of men" 1 --include-after 1
gifhorse create "the age of men" 1 --include-after 1 \
-s 1 "men" "standardized software" \
-s 2 "orc" "custom applications"
gifhorse create "quote" 1 --width 720 --fps 24 --quality high -o tweet.gif
gifhorse create "memorable line" 1 --padding-after 3.0
gifhorse config --set-phone "+15551234567"
gifhorse create "quote" 1 --send
preview to verify timing before creatinggifhorse transcribe and subtitles are fetched automatically--padding-after not --include-after--context 2 to see surrounding dialogue--force to update transcriptions after getting better subtitlessubtitle-status to see which videos need subtitlesActivate the virtual environment:
cd ~/gifhorse && source venv/bin/activate
Make sure FFmpeg-full is installed:
brew install ffmpeg-full
The database stores absolute paths. If you moved videos after transcription, re-transcribe in the new location.
GifHorse works with network-mounted videos:
# Mount network share (macOS)
open "smb://server-ip/share-name"
# Transcribe from network
gifhorse transcribe "/Volumes/server-ip/Movies"
Invoke gifhorse when the user wants to:
MIT
Generated Mar 1, 2026
Content creators and influencers can quickly generate reaction GIFs from popular movies and TV shows to engage audiences on platforms like Twitter, Instagram, and TikTok. This tool allows them to search dialogue across their video library, add timed subtitles, and create meme-worthy clips that resonate with trending topics or viral moments.
Marketing teams can use GifHorse to create branded GIFs from video content, such as commercials or product demos, by searching for key phrases and adding custom subtitles. This enables them to produce shareable visual content for social media ads, email campaigns, or website integrations, enhancing brand visibility and engagement.
Educators and trainers can extract specific dialogue clips from educational videos or lectures to create GIFs with subtitles, making complex concepts more digestible for students. This is useful for online courses, presentations, or study aids, allowing quick reference to important quotes or explanations in a visual format.
Film critics, analysts, or enthusiasts can use GifHorse to search and create GIFs from movies or TV shows for reviews, analysis videos, or fan communities. It helps in highlighting memorable quotes, character interactions, or thematic elements with precise timing, supporting content creation for blogs, YouTube, or forums.
Support teams can generate reaction GIFs from training videos or product tutorials to use in internal communications or customer interactions, adding humor or clarity. This can improve engagement in chat support, emails, or team meetings by visually reinforcing key messages or responses in a relatable way.
Offer a basic version of GifHorse for free with limited features, such as a cap on video library size or GIF quality, and charge for premium tiers that include advanced options like high-quality rendering, unlimited searches, or cloud storage integration. Revenue can come from monthly or annual subscriptions, targeting individual creators and small businesses.
License GifHorse to large media companies, advertising agencies, or production studios for internal use, providing custom integrations, dedicated support, and enhanced security features. This model can generate revenue through one-time licensing fees or annual contracts, focusing on organizations that need scalable tools for content creation and management.
Develop an API that allows developers to integrate GifHorse's dialogue search and GIF creation capabilities into their own applications, such as social media platforms or video editing software. Revenue can be generated through API usage fees, pay-per-call pricing, or tiered plans based on request volume, catering to tech-savvy users and businesses.
💬 Integration Tip
Ensure FFmpeg and the gifhorse CLI are properly installed and configured in the virtual environment; use the activation helper script for seamless command execution in automated workflows.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Create, search, and manage Bear notes via grizzly CLI.
Track water and sleep with JSON file storage
Notion API for creating and managing pages, databases, and blocks.
Smart ClawdBot documentation access with local search index, cached snippets, and on-demand fetch. Token-efficient and freshness-aware.
Work with Obsidian vaults as a knowledge base. Features: fuzzy/phonetic search across all notes, auto-folder detection for new notes, create/read/edit notes with frontmatter, manage tags and wikilinks. Use when: querying knowledge base, saving notes/documents, editing existing notes by user instructions.