A local, self-hosted creative-AI workspace — video, voice, and motion graphics under one roof. Локальная медиа-студия: видео, голос и motion graphics в одной панели.
MilyStudio is a monorepo of independent, self-hostable services for media creation — AI dubbing & voice, Lottie motion graphics, transcription, and FFmpeg processing — tied together by a single orchestrator UI that launches them, streams their logs, and proxies their APIs. Everything runs locally; each service also works standalone.
| Subsystem | What it does | Stack |
|---|---|---|
apps/studio-server |
Orchestrator — launches/stops services, live logs, API proxy | Node + Express |
apps/studio-web |
Studio UI — one panel for every subsystem | React + Vite |
services/omnivoice |
AI dubbing studio — TTS, voice cloning, ASR (WhisperX), dubbing pipeline | Python · FastAPI · React · Tauri |
services/text-to-lottie |
Lottie generation + Skia/Skottie player (Bodymovin) | SolidJS · CanvasKit-WASM |
services/whisper |
Word-level transcription worker | Node + Whisper |
services/ffmpeg-worker |
Media processing: transcode, scaling, subtitles (.ass) |
Node + ffmpeg.exe |
It also ships an agent skill in .agents/skills/text-to-lottie
— published standalone at Mily-Labs/agent-skills.
Prerequisites: Node ≥ 20. For services/omnivoice: Python 3.10+ with uv
and bun. For FFmpeg work: ffmpeg on PATH (or set FFMPEG_PATH).
# install the orchestrator + UI workspaces
npm run install:all
# dev: orchestrator (:4100) + studio UI (:5174)
npm run devOpen http://localhost:5174 → the Run tab starts each service; the other tabs drive OmniVoice, Lottie, FFmpeg, and a universal API sandbox.
# production: build the UI, serve everything from the orchestrator on :4100
npm run build && npm startEach service can also be run on its own — see its folder's README
(e.g. services/omnivoice/README.md,
services/text-to-lottie/README.md).
| Port | Service |
|---|---|
4100 |
apps/studio-server — orchestrator API (+ prod UI) |
5174 |
apps/studio-web — Vite dev server |
3030 |
services/text-to-lottie — Skottie player dev server |
3900 |
services/omnivoice — dubbing API |
milystudio/
├── apps/
│ ├── studio-server/ # orchestrator (Express) — launches services, logs, proxy
│ └── studio-web/ # studio UI (React + Vite)
├── services/
│ ├── omnivoice/ # AI dubbing studio (FastAPI backend + React/Tauri frontend)
│ ├── text-to-lottie/ # Skia/Skottie Lottie player & generator
│ ├── whisper/ # transcription worker
│ └── ffmpeg-worker/ # media processing (transcode, subtitles)
├── packages/ # shared workspace packages
└── .agents/skills/ # text-to-lottie agent skill (also on Mily-Labs/agent-skills)
See ARCHITECTURE.md for the design and AI_RULES.md for the coding conventions used across subsystems.
Issues and PRs welcome — see CONTRIBUTING.md.
MIT © 2026 MilyStudio.