Rive Animation Viewer
Inspect, debug, and test Rive animations on desktop. ViewModel controls, event console, transparency overlay, and standalone export.
macOS 11+ (Apple Silicon or Intel) · Windows 10+
Why I Made This?
What is RAV?
RAV (Rive Animation Viewer) is a standalone desktop application for inspecting and debugging .riv files. It runs locally, auto-discovers ViewModel inputs, logs runtime events, and can export self-contained HTML demos.
| Metric | Value | Notes |
|---|---|---|
| Supported platforms | 3 | macOS Apple Silicon, macOS Intel, Windows 64-bit |
| Layout modes | 8 | cover, contain, fill, fitWidth, fitHeight, scaleDown, none, layout |
| ViewModel input types | 6 | boolean, number, string, trigger, enum, color |
| Console source filters | 4 | Native, Rive User, UI, and MCP in the Event Console, plus a separate JS REPL mode |
| MCP tools | 30 | Remote inspection, playback control, JS execution, snippet generation, and export automation |
Everything you need to inspect Rive files
A purpose-built desktop player for the Rive animation workflow.
ViewModel Controls
Auto-discovered booleans, numbers, strings, triggers, enums, colors, and nested hierarchies with live runtime sync.
Unified Consoles
Event Console and JavaScript Console share timestamps, newest-first transcripts, FOLLOW behavior, consistent row chrome, and outlined copy/clear actions.
Export + Snippets
One Export flow for standalone HTML plus canonical CDN/local instantiation snippets with control-selection, Copy Code, and live-state serialization.
Transparency Overlay
Transparent window mode with cursor-synced click-through for compositing over other apps.
Script Editor
CodeMirror 6 editor with internal-vs-editor live indication, yellow APPLY action, and runtime re-instantiation without throwing away the active view.
VM Explorer
Inject the VM Explorer helper snippet and use vmExplore(), vmGet(), vmSet(), vmTree(), and vmPaths() for runtime debugging.
Desktop Native
Tauri v2 desktop app with .riv association, open-with forwarding, drag/drop loading, and single-instance file handoff.
State Preservation
Refresh and reload flows preserve current artboard, playback, and bound control values as far as the runtime allows.
Renderer + Runtime
Switch between Canvas and WebGL2 on the fly, choose fit and alignment in the main toolbar, and pick Latest, the latest four versions, or Custom semver.
Auto Updates
Signed desktop releases can be detected, downloaded, installed, and relaunched directly from the in-app update chip.
Artboards + Playback
Switch artboards, animations, and state machines from exact authored names while VM controls repopulate for the active target.
State Machine Inputs
Auto-discovers boolean, number, and trigger inputs for state machines and keeps them synchronized with the running runtime.
MCP + Script Access
Bundled native rav-mcp sidecar, one-click install with add/reinstall/remove states for supported clients, editable port, and a Script Access gate for JS tools.
MCP Integration
Control RAV from agents through 30 MCP tools: open files, inspect state, drive playback, edit scripts, generate snippets, and export demos with the live console behavior preserved.
See it in action
Get RAV
Recent updates
v2.0.3
LATEST- JavaScript console presentation normalization — Command, result, warning, error, and application log rows now share the same timestamp-and-badge chrome while preserving Eruda's native lazy object inspection for live runtime objects.
- Console transcript copy fidelity — Copy now serializes exactly the rows currently visible in the JavaScript console, in the same newest-first order and with the same badges shown on screen.
- Documentation refresh — README, website docs, and homepage feature cards were updated to reflect the normalized JS console behavior and current 2.0.x feature set.
- JS console filter behavior — Level and search filters now operate on the rendered JavaScript console transcript instead of Eruda's internal filter API, so REPL command/result rows no longer bypass filtering.
- JS console spacing consistency — Timestamp, badge, and message spacing is now consistent across REPL entries and app-generated log lines.
v2.0.2
- Toolbar control layout refinement — Moved the runtime renderer selector into the central playback/layout control cluster, tightened the `OPEN` button to icon-plus-label width, and kept the primary file-open affordance bright green instead of dimming it while no file is loaded.
- Default workspace layout — The app now starts with the right properties panel open while the editor and console stay closed by default.
- Console action affordances — Event Console and JavaScript Console now use outlined SVG icon buttons for `FOLLOW`, `COPY`, and `CLEAR`, with consistent ordering after the search field and clearer active-state styling.
- Console chip styling — `MCP` and `OPEN CONSOLE` in the runtime strip now use the same rectangular outlined button language as the rest of the UI.
- +3 more
- MCP client detection state — MCP setup detection now distinguishes between installed, missing, and reinstall/remove states for supported clients.
- Console copy support — Event Console now exposes the same clipboard copy action as the JavaScript Console.
- Initial console visibility — Closed-console startup now hides the console chrome until the console is explicitly opened.
v2.0.1
- Updater install handoff — Desktop update installation now reuses the already-checked update payload instead of performing a second network check before install, which avoids stale-state failures and makes the relaunch path more reliable.
- Updater check timeout — Added an explicit desktop updater timeout so the update chip no longer waits indefinitely when the update endpoint is slow or unavailable.
- CI release sidecar packaging — The native `rav-mcp` sidecar build now creates the Tauri `resources` directory before Cargo evaluates the app package, fixing cross-platform release workflow failures in fresh CI checkouts.
- Updater signing configuration — Provisioned a valid Tauri updater signing keypair and GitHub Actions secrets for the 2.0.1 release path so updater artifacts can be signed and published successfully.
- +2 more