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.

Free and open source · MIT · Linux, Windows, macOS

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.