Silvervine installs and maintains Widevine L3 for compatible Chromium-family browsers that do not bundle it, enabling DRM-protected media on Linux and macOS.
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/nicholasraimbault/silvervine/releases/latest/download/silvervine-installer.sh | sh
silvervine setupThe installer places silvervine in $CARGO_HOME/bin (usually ~/.cargo/bin). If the command is not found, add that directory to PATH or run ~/.cargo/bin/silvervine setup.
Setup detects browsers, downloads Widevine through Mozilla's distribution manifest, verifies its SHA-512 digest, attempts to patch each browser, and registers a user-session daemon. Run silvervine status afterward to verify the result.
System-owned browsers may require administrator approval for patching. The registered daemon remains in your user session.
Release archives and checksums are available from GitHub Releases.
Built-in detection covers Helium, Thorium, ungoogled-chromium, and Chromium. Silvervine also scans standard application directories for compatible Chromium layouts.
Custom installations can be added to the configuration file:
- Linux:
~/.config/silvervine/config.toml - macOS:
~/Library/Application Support/silvervine/config.toml
[[browsers]]
name = "My Browser"
install_path = "/home/me/my-browser" # Linux
# bundle_path = "/Users/me/Applications/My Browser.app" # macOS
# framework_name = "My Browser Framework" # optionalChrome, Edge, Brave, and Firefox already manage Widevine and do not need Silvervine.
Silvervine provides software-only Widevine L3. Playback quality is controlled by each streaming service and may be lower than in an officially supported browser. Silvervine does not provide hardware-backed L1 DRM or guarantee HD, 4K, or HDR playback.
Silvervine refuses to patch a running browser unless forced. It creates an exclusive rollback snapshot before each change, verifies the result, and restores the snapshot on failure. The user-session daemon watches for browser updates and re-patches as needed.
| Command | Purpose |
|---|---|
silvervine |
Run the tray daemon |
silvervine setup |
Configure browsers and the daemon |
silvervine init |
Run the interactive setup wizard |
silvervine patch [browser] |
Patch one or all detected browsers |
silvervine status |
Show browser and daemon status |
silvervine list-browsers |
List detected browsers |
silvervine doctor [error-code] |
Run diagnostics or explain an EME error |
silvervine test |
Open the playback health check |
silvervine update widevine |
Update or roll back the CDM |
silvervine launch <browser> |
Verify, patch if needed, then launch |
silvervine repair |
Rebuild Silvervine's local state |
silvervine uninstall [--purge] |
Remove the daemon and cache; --purge also removes config; the binary and browser changes remain |
Run silvervine --help or silvervine <command> --help for all options, JSON output, shell completions, and man-page generation.
Silvervine automatically migrates configuration, cache, logs, and user-daemon registration created by earlier releases of this project. silvervine setup also detects legacy Bash, Homebrew, AUR, .deb, and .rpm installations and provides package-manager-specific cleanup guidance.
The former Homebrew tap is retired. See MIGRATION.md for paths, conflict handling, and recovery instructions.
Silvervine supports x86_64 Linux and Intel or Apple Silicon macOS. Linux ARM64 and Windows are unsupported in V2. Linux receives native CI and maintainer testing on Arch; macOS receives native CI with contributor-led hardware verification.
Linux tray integration uses the StatusNotifierItem protocol. Desktops without a compatible tray host can run Silvervine in notifications-only mode.
- Migration
- Roadmap
- Contributing
- Experimental bridge research — unsupported and excluded from releases
- Security policy
- Changelog
- Code of conduct