opencaptions-mcp
by leogaudin
README.md
<div align="center">
<img src="apps/ios/OpenCaptions/Resources/Assets.xcassets/AppIcon.appiconset/icon.png" alt="OpenCaptions" width="96" height="96">
# OpenCaptions
**Animated captions for your videos. Open source, self-hosted, and on your iPhone.**
Transcribe with Whisper or Parakeet, style every word, and export a burned-in video or subtitle files.
Nothing leaves your machine unless you say so.
**[Get the iPhone app](https://apps.apple.com/app/id6820548922)** · **[Try it in your browser](https://opencaptions.app)** · **[Self-host it](#quick-start)** · **[Documentation](https://docs.opencaptions.app)**
[](LICENSE)
[](https://github.com/leogaudin/opencaptions/actions/workflows/ci.yml)
[](https://github.com/leogaudin/opencaptions/releases)

<sub>Clip: <a href="https://studio.blender.org/projects/sprite-fright/">Sprite Fright</a> by Blender Studio, CC BY 4.0</sub>
</div>
## Features
- **Word-level transcription** with Parakeet or Whisper on your machine, the OpenAI API with your own
key, or another OpenCaptions server (a GPU box at home, say)
- **Animated styles** with presets and a full custom panel: fonts, colours, outline, background,
animation, position
- **A real editor**: a timeline to retime captions, fix a misheard word right on the video
- **Export** a burned-in MP4, WebM or ProRes, SRT, VTT and JSON, or just the captions on a green
screen to key out in your video editor
- **The preview is the export**: one Rust engine draws both, so what you see is what you get
- **[iPhone, iPad and Mac app](https://apps.apple.com/app/id6820548922)** with on-device Whisper, Parakeet and Apple Speech, no
server and no account. One purchase covers all three
- **Many scripts and languages**: Latin, Cyrillic, Arabic, Hebrew, Indic, Thai, CJK and more, and
an interface in 13 languages
- **From Claude and other agents**: an MCP server and a command line (`npx opencaptions`) that caption
a video on your computer, with no server, or on yours: for Claude Code, Claude Desktop, Cursor or a
video pipeline
- **Private by design**: no telemetry, no tracking, accounts are local to your instance
## Quick start
You need Docker Compose v2.24 or newer and one file:
```bash
curl -O https://raw.githubusercontent.com/leogaudin/opencaptions/main/docker-compose.yml
docker compose up -d
```
Open <http://localhost:5173>, create an account, drop a video in.
The compose file runs the `edge` images, which follow the main branch. To stay on a release, pin it:
`OPENCAPTIONS_VERSION=1.0.0 docker compose up -d`.
To build from source instead, clone the repository and run `docker compose up -d --build`
(or `make up`).
> The web UI listens on every interface and signup is open. On a shared network or a public
> host, read [Security](docs/self-hosting/security.md) first.
## From Claude and other agents
No server needed: with Node.js and FFmpeg installed, the speech model and the engine run on your computer.
Claude Code installs the tools in one step:
```text
/plugin install opencaptions --marketplace leogaudin/opencaptions
```
Any other MCP client runs `npx -y opencaptions mcp`, and a script runs
`npx opencaptions caption reel.mp4 --look Bold`. With an API key from your server, the same tools run there
instead, with every language and the web editor. Setup for each is in
[From Claude and other agents](https://docs.opencaptions.app/guides/agents/).
## More
- [Documentation](https://docs.opencaptions.app): the guides, self-hosting, the HTTP API and the
reference. It is plain Markdown in [docs/](docs/index.md), built into that site with [Starlight](apps/docs)
- [Try it in your browser](https://opencaptions.app): the looks on a sample clip, nothing to install
- [Self-hosting](docs/self-hosting/installation.md): installation, configuration, security, GPU
acceleration, backups
- [Architecture](docs/project/architecture.md): how it works, including the engine and the iOS app
- [iOS app](apps/ios/README.md): building and running it
- [Contributing](CONTRIBUTING.md): dev setup and the acceptance gate (`make ci`)
- [Security policy](SECURITY.md): threat model and reporting a vulnerability
## Status
The iPhone, iPad and Mac app is on the App Store, and the self-hosted stack has tagged releases. What changed in
each one is in the [changelog](CHANGELOG.md).
## Why is there a Pro?
The iPhone app is free. Pro is one purchase, with no subscription: it removes the mark on saved videos
and adds 4K, 60 fps, HDR and every caption style. All of that code is here, and
[a build you make yourself](apps/ios/README.md) has everything unlocked. The App Store version costs
money so that someone signs it, ships it and keeps it working.
## License
[AGPL-3.0-only](LICENSE). If you offer a hosted version of OpenCaptions, the AGPL requires you to
publish your modifications. Contributors accept a [CLA](CLA.md) so the maintainer can also ship
the code where the AGPL cannot go, such as the App Store. Third-party components keep their own
licences, see [NOTICE](NOTICE). The name and the icon are covered by the
[trademark policy](TRADEMARK.md).
Built and maintained by [Leo Gaudin](https://github.com/leogaudin).
## Support the project
OpenCaptions is free and has no tracking. If it is useful to you, you can support it with crypto:
<table>
<tr>
<td align="center"><b>BTC</b><br><img src="docs/donate/btc.png" alt="BTC address QR code" width="160"></td>
<td align="center"><b>ETH</b><br><img src="docs/donate/eth.png" alt="ETH address QR code" width="160"></td>
<td align="center"><b>XMR</b><br><img src="docs/donate/xmr.png" alt="XMR address QR code" width="160"></td>
</tr>
</table>
```text
BTC bc1qac8u7xc5zan6a6fng8gqp7drapau9208d0l9wp
ETH 0xc5C9fE87f10BdC4FecEF9De48cD3ba942640774e
XMR 86bcvPxVaqpTgXuk7FPuJa9sYXbUZnAAFj1sdSiSpr8bWpmW2VhMAF4dzXP2Lead3XFRDurqHnYcKNC2RLPQWvVJ9hbM2Kg
```
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo recent community issues