
Captionseasy
io.github.Ishaan-GptPublished by GitHub account Ishaan-Gptv0.1.1Updated Oct 24, 2026
99 designed animated caption looks for AI video editors: list, inspect and build styled captions.
Overview
A local MCP server that lets an assistant browse 99 animated caption styles and turn timed words into validated caption props for Remotion video projects.
- What you can do
- List and search the 99 designed caption looks, or inspect one look's defaults and adjustable controls by number or id. Build ready-to-render caption props from timed words plus a look, with style and pacing overrides validated against that look. Render a finished captioned video, or a transparent caption overlay, from a local video file when the optional render add-on is installed. Transcribe a local video into timed words with a local Whisper model when the optional transcription add-on is installed.
- When to use it
- Useful when you already have word timings, or a video to transcribe, and want styled animated captions for a Remotion timeline or a finished video file, without picking through raw style settings.
- Requirements
- Runs locally over stdio, typically started with npx, so Node.js and npm are needed. No accounts, API keys or environment variables. Video rendering and transcription are separate optional add-ons that must be installed; rendering also downloads a headless Chrome, and transcription downloads a speech model.
Installation
In SourceWeft
- Open Captionseasy in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
captionseasy
[npm] [downloads] [GitHub stars] [license]
Bring your words, get styled captions. CaptionsEasy is a caption style layer for developers and AI editing agents: 99 designed, animated caption looks, a validator that turns timed words + a look into ready-to-render caption props, the React/Remotion components that draw them, a CLI and an MCP server.
- Tiny and dependency-free.
npm i captionseasyadds one package, about 1.6 MB, with zero runtime dependencies. - Designed looks, not settings soup. Every look has a permanent number (
#12 Jumping Box,#105 Classic Subtitle). Each look lists the few controls it really responds to. Anything else is rejected with a clear error instead of silently doing nothing. - Agent-ready. Every CLI command has
--json. The MCP tools take JSON and return JSON. - Runs 100% locally, free. No servers and no API keys. Rendering and speech-to-text are optional add-ons that also run on your machine.
30-second quickstart
You already have word timings, for example from your editor, your ASR or your agent:
props.json holds { doc, style, settings }, validated and complete. Render it with the CaptionsEasy composition in your own Remotion timeline (see Use the props in Remotion). If you would rather get a finished video file, add rendering.
Library
Errors are CaptionsEasyError objects with a stable code: UNKNOWN_LOOK, BAD_OVERRIDE, BAD_SETTINGS, BAD_WORDS, BAD_ARGS, FILE_NOT_FOUND, ADDON_MISSING, NO_AUDIO, NO_VIDEO, TRANSCRIBE_FAILED or RENDER_FAILED. The details field carries machine-readable context, such as the valid keys, the allowed range or the install command.
Overrides can be flat dot paths ({"active.color": "#FF3366"}) or nested objects. Colours can be written as #RGB, #RRGGBB, #RRGGBBAA, rgb()/rgba()/hsl(), or a basic name.
A control with dependsOn only works once another key is set:
- Harmless switches (outline, shadow, glow, background, gradient) are turned on for you, with a warning.
- Switches that change the motion are never turned on for you; you get an error saying what to set.
Use the props in Remotion
captionseasy/remotion exports the same composition the CaptionsEasy studio uses. Its peer dependencies are react and remotion (^4.0.484).
CaptionsEasyCompositions registers both compositions (CaptionedVideo, CaptionsOverlay). Fonts load from Google Fonts while rendering (free, no key).
CLI
MCP server
The tools are list_looks, describe_look, build_captions, caption_video and transcribe. All take JSON and use local file paths.
build_captionsworks with the core package alone.caption_videoandtranscribeneed their add-on. Without it they returnADDON_MISSINGwith the exact install command.
To add it to Claude Code:
For Cursor (~/.cursor/mcp.json), Claude Desktop, or any client that takes the usual shape:
On Windows, if your client cannot start npx directly, use "command": "cmd", "args": ["/c", "npx", "-y", "captionseasy", "mcp"].
Optional: rendering (captionseasy-render)
- Burn mode writes an H.264 MP4 with the original audio.
- Overlay mode writes ProRes 4444
.movor VP9.webm, both with an alpha channel, at the video's size and length. - The add-on ships the composition pre-bundled, so no webpack runs on your machine. It uses the ffmpeg that comes with Remotion.
Optional: transcription (captionseasy-transcribe)
No word timings yet? This add-on runs Whisper locally, using whisper-base with word timestamps through transformers.js on onnxruntime-node.
- onnxruntime-node ships prebuilt binaries, so nothing is compiled.
- The add-on is about 540 MB installed, plus a speech model downloaded once into your user cache (about 200 MB for English, about 77 MB for Hinglish).
With both add-ons installed, captionseasy talk.mp4 --look 12 transcribes and renders in one step.
JSON shapes
Licences
- captionseasy: MIT (see LICENSE).
- Rendering uses Remotion. Remotion is free for individuals and for companies of up to 3 people; larger companies need a Remotion company licence. This applies whether you render with
captionseasy-renderor render the components in your own Remotion project. - Speech models (transcribe add-on): OpenAI Whisper (MIT), via
onnx-community/whisper-base_timestamped. The Hinglish model isishaan-g/whisper-hinglish-swift_timestamped. - Fonts: Google Fonts (open licences).
Source: packages/cli/README.md at commit 9dbbb30
Tools
0Version history
1- v0.1.1LatestOct 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
