99 designed animated caption looks for AI video editors: list, inspect and build styled captions.
Free · no watermark · your video never leaves your device · English and Hinglish
Try it → captionseasy.com · Report a bug · Request a feature
Drop a video, get word-timed animated captions in a couple of minutes, fix any word, pick a look, export an MP4.
| Web app + API | Next.js 16, React 19, Tailwind 4 (apps/frontend) |
| Captions rendering | Remotion — @remotion/player for preview, @remotion/web-renderer for in-browser MP4 |
| Speech to text | Whisper via transformers.js (WebGPU, WASM fallback) |
| Media | Mediabunny for probing, decoding and converting in the browser |
| Data & auth | Supabase (Postgres + RLS, Auth) |
| Hosting | Vercel |
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
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/migrationscurrently 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.
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).
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.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y captionseasyMerge 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.
{
"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 referenceio.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.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..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.