A media player that gets out of the way
Vivi is a fast, lightweight desktop player for Linux, written in Rust on top of mpv. Clean by default, deeply customizable when you want it.
Everything you need, nothing in the way
Everything mpv plays, in a dark UI based on the Figma “VLC Redesign”.
Plays everything
libmpv with hardware decoding on Wayland and X11, subtitles, chapters, A-B loop, speed and filters.
Library
Continue Watching, music by artist and album, folders, playlists, network streams and thumbnails.
Music visualizer
Spectrum, scope, waveform, radial, particle and pitch visuals, with synced lyrics on top.
Plugins
Skip intros, karaoke lyrics, subtitle search and more in one click, plus any mpv Lua or JavaScript script.
Remembers
Resume positions, per-show presets for delays and track languages, recent files.
AI agents
Optional MCP server lets Claude, Cursor and others control playback over a private local socket.
Screenshots
Captured from the release build. Click to open full size.
Plugins
Install and toggle them in Settings → Extensions. Browse the marketplace or write your own.
Install
Linux (x86_64): downloads the latest release and verifies checksums.
curl -fsSL https://viviplayer.app/install.sh | sh
# uninstall (settings and library stay)
curl -fsSL https://viviplayer.app/install.sh | sh -s -- --uninstall
On Arch it builds the vivi-bin package with makepkg -si; on other distributions it installs into ~/.local and checks for libmpv. Read the script.
# From source (Arch / Omarchy)
git clone https://github.com/Loafer19/vivi && cd vivi
sudo pacman -S --needed mpv sqlite rust
cargo build --release && ./target/release/vivi
AppImage, tarball, Windows and macOS builds are on the releases page.
Work in progress: not every frame of the Figma design is ported yet. Progress is tracked in the milestones.











