psmux / GodwinMix
GodwinMix
A live video mixer in Rust that switches sources and keeps the RTMP output running. Headless, with an HTTP API, a command line client and an MCP server.
$ git clone https://github.com/psmux/GodwinMix && cd GodwinMix $ docker compose -f deploy/docker/docker-compose.yml up -d --build # let an agent run the show $ claude mcp add godwinmix -- godwinmix mcp
- release
- v0.2.1, October 2026
- runs on
- Linux, macOS, Windows, Docker
- inputs
- RTMP, HLS, DASH, RTSP, SRT, UDP, RTP, files, web pages
- output
- one or more RTMP destinations
- encoders
- NVIDIA, VA, Media Foundation, VideoToolbox, x264
Switching without dropping the stream
GodwinMix takes several sources, puts one on programme at a time, and sends programme to one or more RTMP destinations. Switching happens upstream on raw video and audio, so the encoder that feeds your destinations never restarts. Sources can be added, removed or fail while the output keeps going.
A single binary with an HTTP API
It is a single Rust binary on GStreamer with one HTTP port. The web UI, the desktop app, the gmx command line client and the MCP server all use the same public API, and api_level 1 is frozen for breaking changes. That makes it scriptable from a shell and drivable by an AI agent with the same calls.
The project was called LiveboxMix until version 0.2.
Questions
Is GodwinMix a headless OBS alternative?
It covers the switching and restreaming part: inputs by URL, one programme output to several RTMP destinations, all controlled over HTTP. It runs headless in Docker or as a desktop app.
Can an AI agent control it?
Yes. godwinmix mcp is an MCP server, and godwinmix skill install adds a skill for Claude, opencode, pi, Codex or Gemini.
$ git clone https://github.com/psmux/GodwinMix && cd GodwinMix
$ docker compose -f deploy/docker/docker-compose.yml up -d --build
The quickstart is timed in CI on every push and the job fails if it takes five minutes or more.
$ docker run -d --name godwinmix --shm-size 1g \
-p 127.0.0.1:8080:8080 -e GODWINMIX_TOKEN="$TOKEN" \
ghcr.io/psmux/godwinmix:latesthttps://github.com/psmux/GodwinMix/releases/latest
.exe or .msi on Windows, .dmg on Apple Silicon, .deb and .AppImage on Linux.
$ brew install gstreamer
$ cargo install --git https://github.com/psmux/GodwinMix godwinmix
$ godwinmix --probe
$ godwinmix$ claude mcp add godwinmix -- godwinmix mcp
$ godwinmix skill install --for claudeFrom the GodwinMix README. Tested against mediamtx and node-media-server v4. One frame at 30 fps is 33 ms.
- Sources chosen by URL, including
exec:commands and web pages rendered by a real browser - The output encoder starts once and never restarts
- Hardware codecs picked at startup, software x264 as the fallback
- Everything is one HTTP call.
gmx ctlscripts it - Plugins run beside the core through a public plugin protocol, with an optional WebAssembly host
- Ad breaks played now or on a given frame, with automatic return to the camera