An open-source, MIT-licensed caption toolkit that transcribes, corrects, and recuts subtitles for every screen shape — 16:9, 9:16, or any aspect — from one source file.
Last verified · 2026-10-29 · by Moe Ameen
Overtone (the `lonthq/overtone-captions` project, made by Lont at lont.ai) is an open-source, MIT-licensed caption toolkit built around one idea: "captions cut for every screen shape, from one file." Rather than storing finished subtitle cues the way SRT or WebVTT do, Overtone stores each spoken word once, with its time and speaker, and then derives a separate caption track for each picture shape. The defaults are 16:9 and 9:16, and you can name any aspect ratio you want.
It ships as three npm packages. The CLI (`overtone-captions`, Node.js 22.12+) exposes commands like `transcribe`, `recut`, `burn`, `export`, and `validate`. The `videojs-overtone` plugin renders those captions in a video.js 8.5+ player with five style packs (clean, social, minimal, high-contrast, lumora). The `overtone-format` package defines the `.overtone.json` file — with types, a JSON Schema, a validator, and WebVTT/SRT/text exporters — and has no runtime dependencies. There is also an agent skill for Claude Code and Codex.
Two workflows cover most jobs. `recut` runs fully offline with no API key and no ffmpeg: point it at an existing SRT or WebVTT and it rebuilds the line breaks for each shape, estimating word times from the cues. `transcribe` needs ffmpeg and provider keys — OpenAI's gpt-transcribe and Azure AI Speech by default, ElevenLabs Scribe optional, or `--local` on whisper.cpp and Ollama — and a `--dry-run` flag estimates provider cost first. Under the hood, several engines hear the audio, an LLM resolves disagreements, a second LLM corrects terms and names against your glossary and flags uncertain edits, and a versioned rule set does the line-breaking. The LLM never sets a timestamp; code validates only the structure of its edits.
The honest creator framing: Overtone is a precision caption layer for people who are comfortable in a terminal. It makes excellent subtitle files cut for multiple frames, but it makes files — not finished video. It does not generate the clip, reframe or render the footage, add a brand look to the video itself, translate, or publish anything, and its full line rules cover only English and Dutch. Media is capped at two hours and there is no GUI editor.
Overtone and [Kompozy](/) solve the same captioning insight from opposite ends, which is exactly why they pair well. Overtone is downstream of a finished recording: it needs audio or an existing transcript to exist, and it turns that into provider-grade caption files cut for each frame. Kompozy sits both upstream and at the finish line — it generates the video that would need captioning in the first place, and it publishes it. A [Persona Short](/glossary/persona-shorts), a Clipped Short cut from a long recording, a Listicle Video, a brand-exact [Carousel](/glossary/hyperframes), a Blog Article, a newsletter: none of these exist for Overtone to caption until something makes them, and that generation is Kompozy's core job.
So the practical division of labor is clean. If you are a developer who wants the actual subtitle files under your control — to archive, to feed another system, to style in a video.js player, or to recut captions another tool produced — Overtone is the right tool and Kompozy does not try to replace it. If what you want is captioned, reframed, published video, Kompozy already burns on-brand auto-captions into the clip and reframes to each platform's aspect ratio in the same render, then schedules the output across the eight social platforms plus blog and email with a per-post review. One useful combined workflow: produce and clip the video in Kompozy, and for any asset where you need the raw caption file on disk, recut its transcript through Overtone. For the platform-native captioning angle, see [iOS 27 generated subtitles](/ai-tools/ios-27-generated-subtitles) and [Apple SpeechAnalyzer](/ai-tools/apple-speechanalyzer).
Overtone (lonthq/overtone-captions) is an open-source, MIT-licensed caption toolkit. It transcribes, corrects, and recuts subtitles, storing each spoken word once and deriving a separate caption track for each screen shape — 16:9 and 9:16 by default, or any aspect ratio you name — from that single source.
It is free and open-source under the MIT license. It is a command-line tool and a set of libraries on Node.js 22.12+, with no graphical editor, so it is aimed at developers. The offline recut costs nothing; the AI transcribe path uses providers that charge roughly $0.023–0.029 per audio minute, or you can run it locally.
Yes — that is its defining feature. It stores words once and derives caption cuts for 16:9, 9:16, or any aspect from the same source, so you do not re-wrap lines by hand for each frame. It outputs caption files, though, not reframed or rendered video.
They sit at different layers. Kompozy generates and publishes the video — Persona Shorts, clipped shorts, carousels, blogs — with captions already burned in and reframed per platform. Overtone is a developer layer for producing and controlling the raw caption files. A combined flow is to create and ship the video in Kompozy and recut its transcript in Overtone when you need the subtitle file itself.