Back to Directory/Media & Images

io.github.Ishaan-Gpt/captionseasy

99 designed animated caption looks for AI video editors: list, inspect and build styled captions.

Media & ImagesTypeScriptv0.1.1
CaptionsEasy

Animated captions for Shorts, Reels and TikToks — made right in your browser.

Free · no watermark · your video never leaves your device · English and Hinglish

Try it → captionseasy.com  ·  Report a bug  ·  Request a feature

A few of the 20+ caption looks

What it does

Drop a video, get word-timed animated captions in a couple of minutes, fix any word, pick a look, export an MP4.

  • Runs in your browser. Speech recognition is Whisper running on WebGPU / WASM in your tab (transformers.js). Rendering is the same Remotion composition the preview uses, encoded with WebCodecs. Your video is never uploaded.
  • 20+ looks — Hormozi box, karaoke fill, neon, glow, comic, retro 3D, serif accents and more. Every look renders identically in the preview and the export.
  • Edit everything — words, timing, line breaks, key words, position, fonts (400+ Google fonts or your own), colours, motion.
  • Hindi / Hinglish in Roman script with a fine-tuned Whisper model (Oriserve Whisper-Hindi2Hinglish-Swift, converted to ONNX with word timestamps).
  • Exports: MP4 with burned-in captions, SRT. The optional desktop helper adds transparent overlays (ProRes 4444 / WebM alpha) for Premiere, Resolve and CapCut.
  • No signup to try, no watermark.

Tech stack

Web app + APINext.js 16, React 19, Tailwind 4 (apps/frontend)
Captions renderingRemotion — @remotion/player for preview, @remotion/web-renderer for in-browser MP4
Speech to textWhisper via transformers.js (WebGPU, WASM fallback)
MediaMediabunny for probing, decoding and converting in the browser
Data & authSupabase (Postgres + RLS, Auth)
HostingVercel

Repository layout

apps/frontend            Next.js app: landing, studio, API routes (/api/v1)
packages/shared          zod contracts shared by app, engine and helper
packages/caption-engine  pure TypeScript: normalize ASR words, segment into cards, SRT/VTT/ASS export
packages/templates       caption layouts, looks, motion library, fonts
packages/compositions    the Remotion composition used by both preview and export
packages/companion       optional desktop helper (local whisper.cpp + Remotion renderer)
supabase/migrations      database migrations

Run it locally

Requirements: Node 20+, pnpm, a free Supabase project.

git clone https://github.com/Ishaan-Gpt/Captions-Easy.git
cd Captions-Easy
pnpm install
cp apps/frontend/.env.example apps/frontend/.env.local   # fill in your Supabase keys
pnpm dev                                                 # http://localhost:3000

Checks:

pnpm typecheck
pnpm test
pnpm build

Database: supabase/migrations currently holds the later migrations only; a full schema snapshot is on the way. Until then, open an issue if you want to self-host and we'll help.

Licensing

CaptionsEasy's own code is MIT.

It is built on Remotion, which has its own license: free for individuals and small teams, but companies above Remotion's free tier need a Remotion company license to use it. If you fork CaptionsEasy for a business, check Remotion's terms.

Fonts and speech models keep their own licenses (Google Fonts: OFL / Apache; Whisper models: MIT / Apache-2.0).

Contributing

Issues and PRs are welcome — see CONTRIBUTING.md. Good first areas: new caption looks, language support, editor polish.

If CaptionsEasy saved you time, a ⭐ helps a lot.

Made by Ishaan Gupta.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y captionseasy

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-ishaan-gpt-captionseasy": {
      "command": "npx",
      "args": [
        "-y",
        "captionseasy"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

captionseasynpm

Compatible MCP Clients

io.github.Ishaan-Gpt/captionseasy works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More