explainroo
explainroo is a free, open source tool that lets your AI agent make explainer videos with a voice. It runs on your own computer and needs no API key.
Open-source AI that cuts ums, silences and retakes from talking-head videos and keeps your best take. Works with your editor: Premiere, Resolve and Final Cut timeline export coming soon.
MediaGitHub @thoufeekxAvailability not checked yetOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Open-source CLI that cuts ums, stutters, retakes and dead air from talking-head video. 39s first take → 17s clean cut.
Loading the full README.
Read the full README ↗Record once, post today. Umless is an open-source command-line tool that cuts ums, stutters, retakes and dead air out of talking-head video and demo recordings. On our test take it turned 39.4 s into 17.5 s: 9 ums, 6 stutters and one "let me say that again" removed, with no clicks at the cuts.
Quick start · Use it from AI agents (MCP) · How it works · Hosted version · Report a bad cut
If Umless saves you an editing session, a ⭐ helps other people find it.
You need Node 20+, ffmpeg on your PATH and an OpenRouter key. A 3-minute video costs about $0.02 in API calls. No key? See Run fully local.
export OPENROUTER_API_KEY=...
npx -y github:thoufeekx/umless my-video.mp4 # writes my-video.umless.mp4
npx -y github:thoufeekx/umless my-video.mp4 --score # Um Score only, no render
The first run builds the CLI from GitHub, so it takes a minute; later runs are cached. (npx umless without the github: prefix will work once the package is on npm.) From a clone:
git clone https://github.com/thoufeekx/umless && cd umless && npm install
npx tsx cli/umless.ts my-video.mp4
The terminal prints an Um Score (ums per minute, stutters and retakes, seconds of dead air), your transcript with every cut word struck through, and the before/after length. Audio files work too and come out as .m4a.
Without OPENROUTER_API_KEY (or with UMLESS_STT=local), Umless transcribes on your machine with whisper.cpp. It's free and the audio never leaves your computer. Set it up once:
bash scripts/setup-local-whisper.sh # clones + builds whisper.cpp in ~/whisper.cpp, downloads ggml-base.en (148 MB) to ~/.cache/umless
export UMLESS_WHISPER_BIN=~/whisper.cpp/build/bin/whisper-cli
npx tsx cli/umless.ts my-video.mp4
The script needs git, a C/C++ compiler, cmake and curl. On macOS, brew install whisper-cpp also gives you whisper-cli. Other settings: UMLESS_WHISPER_MODEL (default ~/.cache/umless/ggml-base.en.bin) and UMLESS_WHISPER_THREADS (default 4).
What's different from the cloud path:
base.en found 8 of the 9 ums the cloud transcript found, and its word timings are less precise, so less dead air is removed: the take came out at 26.4 s locally vs 17.5 s with the cloud path (which also removes the retake).The 39 s test take above is scripted. Here are two unscripted clips from Wikimedia Commons, run through the same CLI with no hand edits:
| Clip | Before | After | What it cut |
|---|---|---|---|
| NASA astronaut Greg Chamitoff, "The Smell of Space" (public domain) | 1:30 | 1:09 (−23%) | 1 restart, 1 false start, 1 repeat, 17.7 s of dead air |
| Mick Harvey, interviewed by Andrew McMillen (CC BY 3.0) | 1:30 | 0:54 (−40%) | 2 restarts, 1 repeat, 32.2 s of dead air |
On these clips the transcriber returned very few "um" tokens, so the savings come from restarts, repeats and pauses. Sources: Chamitoff clip (NASA Johnson; no endorsement implied), Harvey clip (Andrew McMillen, CC BY 3.0, trimmed to 90 s and cut by Umless).
umless mcp starts an MCP server on stdio with two tools:
| Tool | What it does | Returns |
|---|---|---|
analyze_video(path, retakes?) | Transcribes and finds every cut, no render | cuts[] (start, end, type: filler / repeat / retake / silence, text, reason), keep[] segments, Um Score, counts, before/after duration |
clean_video(path, out?, options?) | Renders the cleaned file (options: retakes, studio_sound) | output path, before/after duration, seconds saved, counts, the full cut list |
The server needs ffmpeg on the PATH and your OPENROUTER_API_KEY in its environment. Files are read from and written to the machine the server runs on.
Claude Code
claude mcp add umless -e OPENROUTER_API_KEY=$OPENROUTER_API_KEY -- npx -y github:thoufeekx/umless mcp
Or install the plugin, which adds the MCP server and the umless skill (so "remove the ums from demo.mp4" just works):
/plugin marketplace add thoufeekx/umless
/plugin install umless@umless
Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json or .cursor/mcp.json) use the same block:
{
"mcpServers": {
"umless": {
"command": "npx",
"args": ["-y", "github:thoufeekx/umless", "mcp"],
"env": { "OPENROUTER_API_KEY": "sk-or-..." }
}
}
}
Skill only (Claude Code, uses the CLI if the MCP server is not connected):
mkdir -p ~/.claude/skills/umless && curl -fsSL https://raw.githubusercontent.com/thoufeekx/umless/main/skills/umless/SKILL.md -o ~/.claude/skills/umless/SKILL.md
This is the beginning of the README. Read the rest at the original. Read the full README ↗