Open. Inspect. Ship.
The standalone desktop tool for Rive animations. Load any .riv, bind ViewModels, drive state machines, and export production-ready code.
macOS 11+ · Windows 10+ · Free & open source

Hover over any region to explore the interface
Why this exists
Rive files are designed in the browser.
Testing them shouldn't require a web project.
RAV connects directly to the Rive runtime, auto-discovers every ViewModel property and state machine input, and gives you live controls without scaffolding. When the animation is ready, export the exact instantiation code your app needs — or let an AI agent drive the whole workflow through MCP.
Capabilities
What RAV does

Controls
Every property, live
RAV reads the ViewModel hierarchy and state machine inputs from your .riv file and renders native controls — booleans, numbers, strings, enums, colors, and triggers — all synchronized with the running runtime in real time.

Export
From viewer to codebase
Choose which controls to serialize, pick CDN or local package output, preview the generated snippet inline, and copy or export a self-contained HTML demo — all from one dialog. Fixed canvas sizes, layout modes, and artboard state carry through.

MCP
AI agents as co-pilots
A bundled native sidecar exposes 36 MCP tools. Claude, Codex, or any MCP client can open files, inspect ViewModels, drive playback, edit scripts, generate snippets, control the console panel, and export demos — without touching the UI. One-click install from the app.
Artboard switching
Switch artboards and playback targets from dropdowns. VM controls repopulate per target.
Dual consoles
Event log and JavaScript REPL with timestamps, follow mode, level filters, and copy.
Script editor
CodeMirror 6 with live source indication. Apply config without losing artboard state.
Renderer + runtime
Canvas or WebGL2. Latest, pinned, or custom runtime semver. Fit and alignment in the toolbar.
Canvas sizing
Auto or fixed pixel dimensions with aspect lock. Carries through to exports and snippets.
State preservation
Reset and reload preserve artboard, playback, and control values across re-instantiation.
Auto updates
Signed releases detected, downloaded, and installed from the in-app update chip.
VM Explorer
Inject the helper snippet for vmExplore, vmGet, vmSet, vmTree, and vmPaths debugging.
Interface
More of the app
Download
Ready when you are
Free, open source, and shipping for macOS and Windows.
All releases on GitHubRecent updates
v2.3.0
LATEST- MCP `rav_console_set_mode` — Flip the bottom console between Event Console, JS REPL, or closed without re-opening the panel.
- MCP `rav_console_set_filter` — Drive the existing on-screen filter toggles from any MCP client. JS mode supports `level` (`all`/`info`/`warning`/`error`); Event mode supports `sources` (subset of `native`/`riveUser`/`ui`/`mcp`); both modes support `search`. Auto-targets the active mode when `mode` is omitted.
- MCP `rav_console_clear` — Clear the visible transcript of the active mode (or a specified mode) without closing the panel.
- Extended MCP `rav_console_open` — Optional `mode`, `level`, `sources`, and `search` apply pre-configured filter state in the same call. Backwards compatible with no-argument invocations.
- +3 more
- Script console refactor — Internal Eruda configuration extracted into dedicated modules; capture controller now owns logger attachment and type mapping. No user-visible behavior change.
- Regression guardrails — Documented the current prebuild protection stack around architecture drift, dependency boundaries, custom window chrome, and exported demo chrome so the `2.1.x` stabilization work has explicit gates instead of relying on ad hoc manual checks.
v2.2.3
- Status-strip palette alignment — Structured playback status icons now use the green/yellow RAV website palette instead of the old purple fallback tint, so the runtime strip matches the rest of the product language.
- Persistent status restoration — Transient notices like canvas sizing changes, refresh completion, restart completion, export confirmation, and runtime/layout updates now restore the last structured artboard/playback/ViewModel/instance summary instead of leaving the status strip stranded on the temporary message.
v2.2.2
- Windows window-mode contract — Windows now uses its own explicit Tauri window config instead of inheriting the macOS overlay-titlebar settings and then mutating decorations at runtime, keeping the custom header and DWM rounded-corner hint on one consistent path.
- Shared runtime layout mapping — The live app, generated web snippets, and standalone demo runtime now resolve fit/alignment through the Rive runtime enums rather than raw string tokens, so export behavior matches the viewer.
- Status-strip iconography — Structured playback status now renders with dedicated artboard, animation, state machine, instance, and ViewModel icons instead of plain-text abbreviations.
- Windows rounded-corner regression — Removed the decorated/undecorated hybrid startup path that was blocking the Windows rounded-corner treatment even after the DWM corner hint was applied.
- Fixed-size export alignment — Explicit pixel-size canvases now honor the selected alignment in the exported demo and snippet runtime while remaining centered instead of drifting to the upper-left on macOS or Windows.