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. List rows resolve exact authored labels. Each image property gets one full-width select with every embedded raster, Open file…, and Clear; the external file input stays hidden.

Export
From animation to any output
Export H.264, H.265, WebM, APNG, GIF, PNG, JPG, or WebP from timelines and live state-machine interaction. Or choose controls, CDN or local packages, then copy a focused snippet or export a self-contained HTML demo.

MCP
AI agents as co-pilots
A bundled native sidecar exposes 57 MCP tools. Claude, Codex, or any MCP client can inspect and drive playback, record timed interactions, export every media format, edit scripts, generate snippets, and control the console panel. 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 configuration without losing artboard state; standalone exports preserve and execute it.
Renderer + runtime
Canvas or WebGL2 with Latest (auto) by default. Concrete and custom semver pins remain available, with the known 2.40.0 authored-layout risk labeled.
Canvas sizing
Auto or fixed pixel dimensions with aspect lock. Overflow-safe auto margins center fixed canvases until styled scrolling is needed.
State preservation
Reset and reload preserve artboard, playback, and control values across re-instantiation.
Auto updates
Tauri-authenticated updates, with Developer ID signing and notarization on macOS.
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 GitHubRAV installations
Retrieving anonymous total…
Recent updates
v2.5.5
LATEST PUBLIC- Desktop media export and recording — Export complete or segmented timelines as H.264, H.265, WebM, APNG, or GIF; capture PNG, JPG, and WebP stills; and record live state-machine pointer and ViewModel interaction with an optional cursor. RAV chrome and audio stay outside the capture.
- Complete media automation — Eight new MCP tools discover encoder capabilities, start timeline/still exports, start and stop recordings, report or cancel jobs, advance exact frames, and inject normalized pointer input. Timed recording schedules can apply typed ViewModel values, triggers, images, and pointer operations on the frame clock.
- Compact Export workspace — Media and web/code outputs share one concise chooser. Each media screen keeps capture settings and output settings compact, uses a persistent format selector, opens a native filename/location picker from a yellow folder button, and anchors the resolved output beside its primary action.
- Frame-complete recording — RAV advances and renders each requested frame at a fixed simulation interval, uses bounded capture/encoder queues, streams supported video configurations, and reports wall-clock lag separately. Manual recording has no product duration limit; available disk space is the practical boundary.
- Media status — Capture, draining, encoding, verification, and saving progress appear in the bottom status bar. EXPORT remains the one entry point for completed results.
- Live dependency inventory — About reports the active Rive Web runtime and the exact FFmpeg, ffprobe and optional gifski versions returned by the desktop capability service, while missing tools remain labeled unavailable.
- +1 more
- Export presentation — Capture does not move a centered preview to the top or reduce the live canvas backing resolution. Modal export and snippet surfaces block all pointer input to drawers and controls below them.
- Consistent export chrome — Media, snippet, and standalone export windows use the same compact ghost close control and shared overlay dismissal behavior.
- ViewModel initialization — Authored enum choices populate on the first file load, and cold-load authored values become the compact-snippet baseline instead of making every property look changed.
- Playback validation and recovery — MCP rejects unknown playback names before staging or exporting them. A native activation watchdog recreates a playback child once when WebKit stops responding during load.
- +2 more
v2.5.4
- Authoritative MCP evaluation — `rav_eval` can target `auto`, `host`, or `playback`. Automatic evaluation follows the active isolated playback surface and reports the resolved surface and session.
- Documentation reader — The documentation site adds search, section navigation, article tables of contents, previous/next links, and release-matched screenshots.
- Timeline scrubber — Linear animations now show a dedicated row above the status bar with frame/second modes, duration ticks, an unclipped current-time indicator, and drag-to-seek. State machines do not show the row, and the playhead advances on every rendered animation frame.
- Web 2.41.1 playback compatibility — This release targets Web 2.41.1 / runtime-v0.1.344. A single state machine uses the released singular `stateMachine` option. Multiple state machines, mixed animation/state-machine playback, older 2.x runtimes, and explicit no-target loading keep their existing behavior across the viewer, reset flow, snippets, and standalone demos.
- Dependency maintenance — Compatible website, application, MCP, and Rust lockfile updates remove the currently reported npm advisories while retaining existing major-version gates.
- Lean property snippets — CDN and local snippets now expose only the selected typed property accessors on `window.riveProperties`. Standalone HTML export remains the self-contained output with runtime, UI chrome, controls, and selected-value restoration.
- Host/child authority mismatch — Playback-targeted evaluation now executes in the same authoritative child used by typed MCP controls, uses a bounded result preview, and never falls back to stale host state after a child failure.
- Console authority wording — The MCP documentation states that console tools read and execute against the host UI transcript; isolated-child `console.*` and live Luau output are not forwarded.
- Property control sizing — Color controls use compact square swatches, and numeric inputs are wide enough to keep digits visible beside their spinner controls.
- Desktop visual export selection — MCP visual export now carries the exact property selection, package source, and snippet mode through the native export overlay into the saved standalone file, then closes the overlay cleanly.
- +3 more
v2.5.3
- Global VM controls — Files can expose multiple global ViewModels alongside the artboard-bound ViewModel. RAV labels the collection GLOBAL VM above ROOT VM, keeps it collapsed by default, and provides a separate expandable tree for every global instance.
- MCP inspection and capture — The bundled native MCP sidecar now advertises 49 unique tools, including six global-ViewModel inspection/control tools and `rav_capture_canvas` for PNG image content from the currently rendered RAV canvas.
- Development isolation — The 2.5.3 DEV bundle preserves the 2.5.2 native overlay ordering while using an isolated app identity, build output, local server, and MCP bridge port.
- Rounded overlay clipping — Overlay surfaces now respect their rounded bounds while remaining above the playback surface.
- Console severity and first-open stability — Console output uses distinct severity theming, and the first console open is stabilized to prevent the visible flicker during initial measurement and hydration.