Vice
A Medal.tv-style game clipper for Linux, featuring instant replay, game recording, near zero performance impact, free and instant cloud sharing with friends, highlight features, and more! New features will be added as this is in active development.
Install / Use
/learn @eklonofficial/ViceREADME
Vice
Medal.tv-style game clip recorder for Linux. Press a hotkey to instantly save the last few seconds of gameplay.
Website: https://viceclipper.framer.website/
Vice is actively maintained. Bug reports and PR requests are welcome.
Installation
Arch Linux / Manjaro / Arch-based (AUR recommended)
yay -S vice-clipper
# or
paru -S vice-clipper
Then launch Vice from your app launcher or run vice-app.
Arch users should update through their AUR helper, not by running ./install.sh over an existing vice-clipper install.
vice-clippernow installs the officialgpu-screen-recorderpackage on Arch by default so a working capture backend is present immediately after install.
Ubuntu / Debian / Ubuntu-based distros
git clone https://github.com/eklonofficial/Vice
cd Vice
./install.sh
The installer detects apt from your distro metadata, installs the required packages, and supports Ubuntu derivatives such as Pop!_OS, Linux Mint, Kubuntu, and similar Debian/Ubuntu-based systems.
It now verifies that a usable recording backend was actually installed before it finishes.
Fedora / other non-AUR distros
git clone https://github.com/eklonofficial/Vice
cd Vice
./install.sh
The installer detects the correct package manager from your distro metadata, so Fedora uses dnf even if tools like pacman are also installed on the machine.
It now verifies that a usable recording backend was actually installed before it finishes.
After the installer finishes, restart your terminal, then launch Vice from your app launcher (or run vice-app).
Do not mix the AUR package with the git clone installer on the same user install. Remove vice-clipper first if you are switching away from the AUR package.
If the
vicecommand isn't found after restart, runexec $SHELL(orexec fishon fish shell).
Updating
AUR: Your AUR helper handles updates automatically.
yay -Syu
# or
paru -Syu
Git clone (Ubuntu/Fedora/other non-AUR installs):
cd Vice
git pull
./install.sh
Do not use git pull && ./install.sh to update an AUR installation.
How It Works
| Action | What happens | |---|---| | F9 | Save the last 15 seconds as a clip | | Double-tap F9 | Start a session recording (records continuously until you double-tap again) | | F9 during session | Mark a highlight at that timestamp — it shows up in the viewer once the session ends | | Double-tap F9 again | Stop the session and save the full recording with your highlights baked in | | Click a thumbnail | Open the video viewer — use ← / → to navigate, H to add a highlight, Esc to close | | Share button | Copy a public link that works outside your WiFi and embeds in Discord | | Trim | Visually trim a clip in-place | | Settings → Hotkeys | Rebind the clip key — click the button and press any key |
Clips are saved to ~/Videos/Vice/. Closing the window keeps the daemon running — reopen from your launcher any time.
What It Does
| | | |---|---| | Instant clips | Rolling buffer saves the last 15 seconds on a single keypress | | Session recording | Double-tap to record continuously for as long as you want | | Hotkey highlights | Tap the clip key during a session to mark timestamps — no need to edit later | | Clip gallery | Browse, watch, rename, trim, and share clips | | Share links | Public view-only URLs via Cloudflare Tunnel — embeds in Discord | | Viewer highlights | Press H in the viewer to mark timestamps, colour-code and rename them | | Themes | Blue, purple, green, red, or orange accent colour |
Why Vice?
OBS has a replay buffer. So why use Vice?
| | OBS Replay Buffer | Vice |
|---|---|---|
| Setup | Open OBS, configure scene, enable replay buffer, press hotkey | Install once, press F9 |
| Always on | OBS must be open and a scene active | Daemon runs silently in the background |
| GPU overhead | OBS encodes a full scene continuously | gpu-screen-recorder captures the compositor's framebuffer directly — near-zero overhead |
| Hotkey scope | OBS window must be focused, or use global hotkey plugin | Works globally on any compositor via evdev |
| Share links | Manual upload | Built-in public URLs, Discord embeds |
| Clip management | None | Gallery, viewer, trim, highlights, rename |
Performance: Vice uses gpu-screen-recorder by default, which hooks into NVIDIA's NVENC or AMD/Intel VAAPI at the driver level — the same approach ShadowPlay uses. CPU usage is typically under 1%. On hardware that doesn't support it, Vice falls back to wf-recorder or ffmpeg.
CLI Reference
vice start Start the recording daemon
vice stop Stop the daemon
vice clip Save a clip right now
vice status Show daemon status, backend, and share URL
vice ui Open the web UI in your browser
vice clips List saved clips
vice config Print current config
vice open-config Open config in $EDITOR
vice list-keys Show valid hotkey names (KEY_F9, KEY_INSERT, …)
vice uninstall Remove Vice cleanly
Credits
Created by Andrew Marin — github.com/eklonofficial
Details
Compatibility
| Environment | Status | |---|---| | Hyprland (Wayland) | ✅ | | GNOME (Wayland) | ✅ | | KDE Plasma (Wayland) | ✅ | | sway (Wayland) | ✅ | | Any X11 WM | ✅ | | NVIDIA GPU | ✅ NVENC hardware encoding | | AMD / Intel GPU | ✅ VAAPI hardware encoding | | Software encoding | ✅ libx264 fallback | | fish / bash / zsh | ✅ PATH configured automatically |
Recording Backends
Vice picks the best available backend automatically:
| Backend | Wayland | X11 | NVIDIA | AMD/Intel |
|---|---|---|---|---|
| gpu-screen-recorder | ✅ | ✅ | ✅ NVENC | ✅ VAAPI |
| wf-recorder | ✅ | ❌ | ✅ | ✅ |
| ffmpeg x11grab | ❌ | ✅ | ✅ | ✅ |
Vice uses evdev to read hotkeys directly from /dev/input/ — works on any compositor, no keybind config needed.
Configuration
~/.config/vice/config.toml — created on first run, all settings editable in the GUI:
[recording]
buffer_duration = 120 # seconds kept in rolling buffer
clip_duration = 15 # seconds saved per clip
fps = 60
display = "DP-1" # optional; omit to auto-select the current display
encoder = "auto" # auto | h264_nvenc | libx264 | hevc_nvenc | h264_vaapi
backend = "auto" # auto | gsr | wf-recorder | ffmpeg
capture_audio = true
apply_watermark = false # enable only if you want watermark text on exports
gsr_args = "" # optional extra gpu-screen-recorder flags, e.g. "-k hevc -bm cbr -q 20000 -fm cfr -a {default_sink_monitor}"
[hotkeys]
clip = "KEY_F9"
[output]
directory = "~/Videos/Vice"
[sharing]
enabled = true
port = 8765
public_port = 8766 # optional; defaults to port + 1 for the public share-only server
cloudflare_tunnel = true
base_url = "https://clips.example.com" # optional public share origin override
recording.gsr_args supports environment/tilde expansion and a {default_sink_monitor} placeholder for desktop audio capture.
Troubleshooting
vice: command not found after install
Restart your terminal or run
exec $SHELL. On fish:exec fish.
App launcher icon does nothing
Check the log:
cat ~/.local/share/vice/vice-app.logCommon cause: recording backend not found. Installgpu-screen-recorder,wf-recorder, orffmpeg. If the log saysGStreamer element autoaudiosink not found, install your distro's GStreamer base/good plugin packages and relaunch Vice.
Launcher/service starts the UI shell, but Vice still fails to start
Run the built-in diagnostics first:
vice doctorThen confirm which install you are actually running:
which vice readlink -f "$(which vice)" python3 -c 'import vice, inspect; print(vice.__file__)'If the path points at an AUR install, update with
yay -Syu/paru -Syu. If it points at your git clone install, update withgit pull && ./install.sh.
Hotkey not working
You may need to be in the
inputgroup:sudo usermod -aG input $USER newgrp input
Share link only works on my WiFi
Make sure
cloudflare_tunnel = truein Settings. Installcloudflaredif it's missing.
Why can I open the UI locally but not from another device anymore?
Vice now keeps the control UI local-only on
127.0.0.1and exposes a separate public share server for clip links. If you use a reverse proxy, point it atsharing.public_port, notsharing.port.
Vice fails only from a manual systemd --user service
Do not use shell syntax like
Environment=HOME=${HOME}orEnvironment=XDG_RUNTIME_DIR=/run/user/$(id -u)in the unit file.systemddoes not evaluate those expressions there. Omit those overrides unless you need them, or use concrete values only. Recent Vice builds also recoverWAYLAND_DISPLAYfrom a live Wayland socket when launcher contexts omit it, and the generatedvice.servicepasses through the current display-session variables automatically. If you hand-edited the service earlier, reinstall or remove the custom overrides before testing again.
Uninstall
AUR:
sudo pacman -Rns vice-clipper
Git clone:
vice uninstall
rm -rf Vice
License
Related Skills
node-connect
345.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
104.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
