# Agent Caption — effect skill for captions & subtitles

> **For AI agents:** find the right skill in one call — `curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"` returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the use-case page.

Local captions in any language: Whisper words, forced-aligned timing, SRT/VTT, burned styles or a GSAP captions.js.

- **Type:** [Effect](https://skills.varg.ai/effects.md) · [Captions & subtitles](https://skills.varg.ai/browse/skills/captions.md)
- **Slug:** `agent-caption`
- **Status:** beta
- **Publisher:** Ali Hamza Kamboh (community)
- **License:** MIT
- **Source:** https://github.com/ahkamboh/agent-caption
- **Works in:** Claude Code, Cursor, Codex
- **Requires:** Python 3.10+, ffmpeg (libass optional), About 4 GB of disk for models, Java 8+ only for --grammar
- **Cost:** Free — runs locally; models download once
- **Adoption:** 41 GitHub stars (GitHub, 2026-10-26)

## What it does

A Python toolkit an agent drives from SKILL.md: Whisper large-v3 (faster-whisper) writes the words, WhisperX or Meta's MMS_FA aligner times every word on the waveform, and `caption.py` burns one of 15 styles with ffmpeg (falling back to Pillow overlays when ffmpeg lacks libass) or just writes `.srt`/`.vtt`. `scripts/caption.py` emits a `captions.js` layer (word, line or karaoke presets such as hormozi, pill, neon) that mounts on a GSAP timeline in an HTML composition, and Argos Translate makes offline translated subtitle tracks. Extras include `--script` alignment of known lyrics, Demucs vocal isolation for songs, a glossary prompt and a deterministic QA report. Setup is heavy (torch, WhisperX and about 4 GB of models) and Hinglish/code-switched speech is its focus.

## Use when

- Caption a video or song in any language, fully offline
- Word timing from forced alignment instead of raw ASR timestamps
- Hinglish or code-switched captions
- Animated word or karaoke captions for an HTML/GSAP composition
- Export SRT/VTT and translated subtitle tracks

## Not for

- Hand-timed captions or lead/lag offsets (the skill forbids them)
- Cloud transcription (use elevenlabs/speech-to-text or Gladia)

## Install

- Claude Code: `git clone https://github.com/ahkamboh/agent-caption && cd agent-caption && python setup.py`
- Codex: `git clone https://github.com/ahkamboh/agent-caption && cd agent-caption && python setup.py`
- Cursor: `git clone https://github.com/ahkamboh/agent-caption && cd agent-caption && python setup.py`

**Models it drives:** whisper-large-v3, whisperx, mms-fa, htdemucs

## Example output

https://skills.varg.ai/previews/agent-caption.mp4 — The repo's demo video: the creator talks to camera while captions generated locally by the skill switch language line by line (English, then Spanish), with the language tag on top. First 8 s of 58.5 s. (credit: Ali Hamza Kamboh (agent-caption), https://github.com/ahkamboh/agent-caption#readme)

## Used for

- [Animated captions on your video](https://skills.varg.ai/use-cases/captions.md): TikTok-style subtitles burned into an existing video: word highlight, pop words, or designed editorial captions.

## More captions & subtitles skills

- [3D Camera Captions](https://skills.varg.ai/skills/hyperframes-camera-3d-captions.md): Captions that live in 3D around a talking head: the camera flies through the words, heroes pass behind the speaker.
- [Remotion Captions](https://skills.varg.ai/skills/remotion-captions.md): Transcribe speech and burn in animated captions with Remotion, or import an existing SRT file.
- [ElevenLabs Speech to Text](https://skills.varg.ai/skills/elevenlabs-speech-to-text.md): Transcribe audio and video with word timestamps, speaker labels and keyterms, ready for subtitles.
- [ElevenLabs Speech to Text (inference.sh)](https://skills.varg.ai/skills/inference-sh-elevenlabs-stt.md): Transcribe audio with ElevenLabs Scribe, speaker diarization and forced alignment, via inference.sh.
- [Speech to Text](https://skills.varg.ai/skills/inference-sh-speech-to-text.md): Transcribe audio with ElevenLabs Scribe v2 or Whisper V3 Large, with timestamps and speaker labels.
- [Pretext Text Metrics](https://skills.varg.ai/skills/pretext-yaniv-golan.md): Measure and fit text without the DOM using pretext: auto-fit sizes, know line breaks before render, canvas/WebGL text.

## Run the generation on varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg` (skill + hosted MCP)
- Codex, Cursor, Gemini CLI, OpenClaw: `npx skills add vargHQ/skills --skill varg-ai -a <agent> -y`
- Claude.ai, ChatGPT, any MCP client: connect `https://mcp.varg.ai/mcp`
- API key: https://varg.ai/dashboard/api · Model specs: https://varg.ai/models/llms.txt
