Rive Release Notes
32 release notes curated from 1 source by the Releasebot Team. Last updated: Nov 6, 2026
- Nov 6, 2026
- Date parsed from source:Nov 6, 2026
- First seen by Releasebot:Nov 6, 2026
Rive CLI 1.9.1
Rive releases its CLI from technical preview, adding plan-based publishing allowances, iPhone previews and TestFlight builds, terminal library management, cross-platform network requests, and major scripting, animation, markup, and workflow improvements.
The Rive CLI is out of technical preview and comes with every plan, including a monthly allowance of CLI publishes and pushes. This release also brings previews on iPhone, publishing to TestFlight, adding and removing libraries from the terminal, and network requests from scripts on Mac and Windows. Update with rive update (curl install) or brew upgrade --cask rive-cli.
Plans and usage
- ๐ Monthly CLI allowance: Free includes 50 CLI publishes and pushes a month and Cadet includes 500, per Workspace. A publish is a .riv for the Rive runtimes or a web page made with --publish or --publish=web, and a push is a rive push to a Rive Editor file. Building, previewing, rive pull and app builds don't use any. A project counts toward the Workspace of the Rive file it's linked to, or your personal Workspace if it isn't linked. The allowance resets on the 1st of each month. The CLI warns you when you're close. At the limit, it tells you when the allowance resets, so your agent can let you know. Files you already published keep working, and exports from the Rive Editor stay unlimited.
- ๐ณ Voyager keeps going on credits: Voyager includes 5,000 a month per seat, shared across the Workspace. Past that, publishes and pushes use the Workspace's credits, $0.01 each, and the CLI tells you and your agent what each one used and what's left. Enterprise allowances are set in your agreement.
- ๐ง Option to always show the splash screen: if you'd like to credit Rive and help us grow, set alwaysWatermark: true in rive.yaml to show the Rive splash screen in everything you publish, on any plan. It's the same as Always show splash screen in the Editor.
- ๐ Usage analytics: to help us improve the CLI, it now shares usage data, like which commands you run, after a one-time notice. Turn it off anytime with rive analytics off.
Phones
- ๐ฑ Preview on iPhone: see your project on an iPhone or in the iOS Simulator with rive . --ios. All you need is a Mac with Xcode.
- ๐ซ Ship to TestFlight: rive build --ios --package turns your project into an App Store build, and --upload sends it straight to TestFlight. Describe the app (its name, version, icon and so on) in a new app section of rive.yaml, and add your own iOS code in an ios/ folder, for example to sign in with Game Center.
- โจ๏ธ Typing on phones: Text Inputs now take typing when you preview on an Android or iOS device, from the on-screen keyboard or a hardware keyboard.
Agents and automation
- ๐ง Rive skills for your agent: npx skills add rive-app/skills gives your coding agent the Rive skills, so it knows how to build with Rive from the start.
- ๐ Many steps in one run: rive --commands keeps one run open and takes commands one line at a time, like advance 30, screenshot or quit. That's over 20 times faster than separate runs: 1,000 frames take about 10 seconds.
Previews and captures
- ๐ --serve is private by default: --serve now only accepts connections from this computer. To share with other devices on your network, add --serve-lan. Builds sent with --serve show the Rive splash screen once when the app opens, on every plan.
- ๐ Scenes keep running in the background: on macOS, a scene keeps playing when its window is hidden, minimized or resized, so timers, state machines and audio carry on. To pause it while hidden, set window.hiddenFrameRate to 0 in rive.yaml.
- ๐ฑ๏ธ Faster pointer response on macOS: the preview window now reacts to pointer moves about twice as fast.
- โฑ๏ธ --advance matches runtimes: --advance=N now shows exactly what a runtime shows after N frames.
- ๐ช Catch accidental jumps: builds now point out keys that jump to a new value in a single frame. If you meant to jump, use a hold key.
Libraries
- โ Add a library from the terminal: rive library add --library= adds a library to your project, and rive library search shows the id. Nothing changes in your Rive file until you run rive push, so you can review the change first.
- โ Remove a library: rive library remove --library= takes a library out of your project. Anything that used it is listed and left empty, so you can point it somewhere else.
- ๐ Publish projects that use scripted libraries: projects that use a library with scripts or shaders now publish with every script running.
- ๐งฉ Animated library components: library components with animations now add cleanly and build right away.
- ๐ Libraries that share a library: when two libraries in a project use the same third library, it's added once, and each library gets the version it needs.
Push and pull
- ๐ Files with trimmed audio: rive create --from-remote-file now handles files with trimmed audio clips.
RML (the markup the CLI compiles)
- ๐ค Font names show in the Editor: a text style without familyName and styleName now picks them up from its font file, so the Editor shows the right font and style.
- ๐ ๏ธ More Editor files build: more files from the Editor now convert to markup and build, including files with a keyframe bound to a view model.
- ๐ The latest Editor features in markup: capture listeners, layout aspect ratio, images as listener targets, converters inside converters, and keyed text style fonts now work in markup and in the preview window.
Scripting
- ๐ Network requests with Fetch: with --allow-net, scripts can call fetch to load data from the web, like JSON from an API. This now works on Windows as well as macOS.
- ๐ Script audio with the silent switch on: on iPhone, script audio now plays with the silent switch on, like video does.
- ๐ More reliable Luau scripts: Gradient.linear, Gradient.radial and vector indexing like v[1] now run reliably, and a script that never finishes loading is stopped, so it can't hang your project.
- ๐งฑ GPU stencil settings in autocomplete: GPU Canvas stencil settings now show up in autocomplete and the docs.
AnimaScript
- ๐งต Parallel calls: mark a function @parallel to split its work across threads. Start it with Parallel.run and collect results in a SharedArray or SharedList. In browsers, the work runs on separate threads on cross-origin isolated pages, and on one thread elsewhere.
- โ Check what the runtime supports: supports(Feature.parallelCalls) tells a script whether the runtime playing it has parallel calls, so it can adapt on older runtimes.
- ๐ง Read audio samples: source.toBlob() loads an audio file's samples for an audio processor, and source.stream(...) reads them as it plays, for long audio.
- ๐๏ธ Run arguments: pass --arg name=value and read it in a script with context.arg("name") to run one project with different options.
- ๐ Release builds: rive --release runs scripts the way a published file does, without asserts. Jobs and workers can now call clock() too.
- โก Faster scripts: compiled scripts run faster on macOS, Linux and Windows x64, and outside Windows, a script's memory now grows without a hitch.
- ๐งฎ Integer math matches JavaScript: AnimaScript now uses its own typing rules, so math on small integers, shifts and comparisons between signed and unsigned numbers give the same results as JavaScript and C#. Dividing an integer by zero now stops the script, or fails the build when the zero is in the code. Build warnings show each place a result can change.
- ๐ฉน Fixes: on Windows, compiled scripts now get the right results from Math.asin, Math.acos and Math.pow(x, 0.5) and when choosing between two decimal constants. Animation.advance(0) now returns true while a looping animation can play. Closures with many parameters now compile ahead of time, and BlendMode.additive now draws additive.
Built-in CLI docs (run rive docs to read them)
The docs that ship with the CLI, which agents read to build scenes.
- ๐ Better guidance for animation: clearer pages on rotation, layout units and more, plus new tips on easing, rigging, text and pushing.
- Nov 3, 2026
- Date parsed from source:Nov 3, 2026
- First seen by Releasebot:Nov 5, 2026
Spanish editor UI (Beta) | Editor en espaรฑol (Beta)
Rive adds a Spanish-language beta to the Editor, making its creative tools available in Spanish.
The Rive Editor is now available in Spanish, in Beta.
To switch: open the main menu at the top left of the Editor (or the account menu in the file browser), then Language > Espaรฑol.
It's early, so expect some wrong terms, awkward phrasing or clipped la...
Original source All of your release notes in one feed
Join Releasebot and get updates from Rive and hundreds of other software products.
- Nov 3, 2026
- Date parsed from source:Nov 3, 2026
- First seen by Releasebot:Nov 5, 2026
Simplified Chinese editor UI (Beta) | ็ฎไฝไธญๆ็้ข Beta
Rive adds a beta Simplified Chinese interface to the Editor, with machine-translated UI text.
The Rive Editor is now available in Simplified Chinese, in Beta.
To switch: open the main menu at the top left of the Editor (or the account menu in the file browser), then Language > ็ฎไฝไธญๆ.
It's early. The UI text is machine translated and checked agai...
Original source - Nov 3, 2026
- Date parsed from source:Nov 3, 2026
- First seen by Releasebot:Nov 4, 2026
- Modified by Releasebot:Nov 5, 2026
Rive Runtime updates - November 3, 2026
Rive adds experimental keyboard focus to its Android composable, extending support already available on Web and in Flutter pre-release.
Here's what shipped across Rive Runtimes in October.
Highlights
- Focus and Text Input. Android adds keyboard Focus to the Rive composable (v11.14.0, experimental and off by default), joining Web and the Flutter pre-release. Apple support is still in pr...
- Nov 3, 2026
- Date parsed from source:Nov 3, 2026
- First seen by Releasebot:Nov 4, 2026
Rive Editor 0.9.517
Rive ships a broad update with Simplified Chinese and Spanish editor support, aspect-ratio layouts, improved masking and playback, and smoother right-to-left editing. It also fixes shader and rendering issues while boosting runtime performance for lists, hidden elements, and Android strokes.
- ๐ Simplified Chinese and Spanish (Beta): the Editor now comes in Simplified Chinese and Spanish. Pick one under Language in the File Menu (hamburger icon), and tell us what reads wrong in the Chinese or Spanish feedback thread.
- ๐ Aspect Ratio for layouts: a layout can now keep its proportions. Set Ratio W/H in the layout's Inspector (2 makes it twice as wide as it is tall), then click the W/H button next to it to pick the side you size: with W the height follows the width, with H the width follows the height. The side you size can still be fixed, fill or hug, and the layout keeps its shape in a row or a column.
- ๐ญ Blend modes on masked layers: a masked shape, image or text now blends with what is beneath it, so a shape masked to an image can recolor or light it. Before, every blend mode except Additive looked like Normal on masked content. Groups have no blend mode, so a masked group still draws as Normal. This applies in the editor and in runtimes.
- ๐๏ธ Smooth timeline playback inside layouts: playing a timeline in the editor lagged when keyed objects sat inside a layout, even though the same file played smoothly in a state machine and in runtimes. It plays smoothly now. As reported here
- ๐ธ Bitmap Cache on Components: the Bitmap Cache section now shows only on artboards marked as a Component, since only Components draw through the cache, and you can edit it on several selected artboards at once. With the cache turned Off, a Component that uses a mesh or N-Slice now draws at 1x instead of at the cache's Resolution.
- โ Additive strength fixes: in the canvas runtime on the web, objects with an Additive strength above 0% drew as Normal. With the updated runtime they draw fully additive, so published files that use it will look different there. At 0%, Additive now draws as Normal in every renderer, and choosing Normal again in the blend mode menu no longer resets Additive strength or stops its keys and binds.
- ๐ฎ Controller d-pad listeners: in the editor, pressing a direction on a controller's d-pad also reported the opposite direction, so listeners on that direction's release fired on every press. Now only the direction you press changes.
- ๐ Bound properties stay locked: in data bind mode, a property bound with a relative data bind or to a Global View Model could still be edited in the Inspector while it showed its bound value. It's locked now, like any other bound property.
- โ๏ธ Right-to-left layouts on the stage: in a right-to-left layout, dragging a child layout with Absolute position moved it the opposite way to the mouse. Dragging, resizing, arrow-key nudges, the align buttons and creating layouts now follow the layout's direction. Two fixes also apply left to right: resizing a layout inside a parent with an offset no longer jumps, and neither does moving a layout pinned to the right or bottom into another parent.
- ๐งญ Safari 26.2 to 26.3.1: the Editor in the browser and the web runtime could crash in Safari 26.2 to 26.3.1 once a file with audio or scripts used more memory, because of a Safari bug that Safari 26.4 fixes. Both now load in a way that avoids it on those versions.
AI Agent
- ๐๏ธ The agent sees masks: when the AI Agent captures an artboard to check its work, masked content now shows masked. Before, captures drew it in full, so the agent couldn't see masks at all.
Scripting
- ๐ฑ GPU Canvas shaders on Android GPUs: shaders that crashed or drew wrong on Adreno and Mali GPUs (common Android GPUs) now build and read their data correctly, including uniform structs, shadow map compares and helper functions that take a texture. The Problems tab warns about the local array indexing that Adreno still can't build. Publish your files again to pick up the Mali fix.
- ๐ Invariant positions on Apple GPUs: GPU Canvas shaders now keep positions marked @invariant identical across pipelines on Apple GPUs, so a depth prepass that draws at equal depth no longer loses pixels.
- ๐ช Rendering between mip levels: on Direct3D 12 and GL, a GPU Canvas pass can now render into one mip level of a texture while sampling another level of the same texture.
Runtime
- ๐ Faster lists with nested content: Artboard List rows that hold a Component or another list, like an avatar or a row of chips, are now reused when the list's items change, and they skip their per-frame work while nothing in them moves. Rows also take fewer allocations to build, so adding 400 rows to a leaderboard-style list is 6 to 9% faster, and rows that use the same text style now share one copy of its font.
- โฑ๏ธ Layers that key the same property: when two or more layers of a state machine key the same property, it's now set once per frame instead of once per layer, with the same result. On a test file an idle frame went from 0.095 ms to 0.041 ms, and a layout height keyed by two layers no longer solves the whole layout on every idle frame.
- ๐ป Hidden elements cost nothing to draw: shapes and Text Inputs whose paint is fully transparent, and anything scaled to zero, are now skipped when drawing. Interfaces that hide elements by fading them out or scaling them to zero no longer pay to draw them every frame.
- โ๏ธ Clipping on WebGL2: artboard paints and Bitmap Cache inside a clipping shape drew unclipped in the WebGL2 runtime on the web. They're clipped now.
- ๐ Faded sounds play again: a sound stopped with a fade stayed silent when played again, and resuming it during the fade finished the fade instead. Playing it now starts it from the beginning, and resuming plays it at full volume.
- ๐๏ธ Faster strokes on Android GPUs: the Rive Renderer now batches strokes into fewer draw calls on Vulkan, 61% fewer per frame on the Ghostscript tiger, a standard vector rendering benchmark. With 30 tigers it runs 21.6% faster on an Adreno 750 and 15.6% faster on a Mali-G715. Other GPUs we tested stay within a few percent.
Similar to Rive with recent updates:
- Smokeball release notes148 release notes ยท Latest Nov 6, 2026
- Cosmolex release notes20 release notes ยท Latest Jul 30, 2025
- PracticePanther release notes37 release notes ยท Latest Oct 27, 2026
- Salesforce release notes91 release notes ยท Latest Nov 1, 2026
- Microsoft release notes1129 release notes ยท Latest Nov 5, 2026
- Zoom release notes223 release notes ยท Latest Oct 31, 2026
- Nov 1, 2026
- Date parsed from source:Nov 1, 2026
- First seen by Releasebot:Nov 2, 2026
Rive Editor 0.9.479
Rive improves editor and runtime performance with faster playback, loading, and list updates, while fixing drawing, text input, scripting, and animation issues. Render Queue images now download directly as PNG or SVG files.
- โถ๏ธ Play starts right away in large files: In a large file, pressing play on a state machine froze the editor for a moment, and the animation then started that far in, skipping its opening. Starting is now close to instant, and the animation plays from its first frame.
- โน๏ธ Faster stop in large files: Stopping a state machine in a large file no longer stalls while the Problems tab checks the whole file again, and files with scripts get back to drawing about 5 times faster. The stage also no longer flashes blank for a frame when you stop a file whose scripts use the GPU, and problems you fixed no longer stay listed in Problems.
- ๐งฎ Formula changes apply right away: Picking a Formula converter for a bound property, or editing the formula, now updates the property at once. Before, the formula had no effect until you bound the property to something else and back. As reported here and here.
- โก Faster playback with many formulas: Since a recent update, playing a state machine in a file with thousands of Formula converters was slow, in the editor and in runtimes, because every frame checked each formula even when none had anything to update. They're skipped now: on a rig with about 4,700 formulas, a runtime frame went from 0.18 ms to 0.035 ms. Files with many formulas also load faster.
- ๐ผ๏ธ Single renders download as images: A PNG or SVG render of a design in the Render Queue now downloads as the image itself, not as a zip holding one frame. As requested here
- ๐ชฃ Bucket stops at other shapes: Bucket now stops at the fill of every other visible shape, like a brush stroke drawn across a closed loop, and fills only the side you click. Before, it looked only at the loop itself and filled all of it. A small shape inside the area, like a dot for an eye, gets filled under instead of cut out, so moving it later leaves no hole.
- ๐ Pasted keyframes get their own curves: Pasting a keyframe onto several objects gave all the pasted keyframes one shared interpolation curve, so changing the curve on one changed the others too. Each pasted keyframe now gets its own. Pasting keyframes back onto the same object also no longer adds an unused copy of each curve to the file, which made files larger over time.
- โญ Outer strokes meet the fill: A stroke with its Position set to Outside no longer leaves a thin gap between itself and the shape's fill, in the editor and in every runtime that uses the Rive Renderer.
- ๐ Audio in imported .rev files: Importing a .rev from another file now points its audio clips at this file's copy of the audio. Before, they kept pointing at the original, which this file can't read.
Scripting
- ๐ฅ Gradient and vector crashes: Gradient.linear, Gradient.radial and number indexes on a vector such as v[1] could read freed memory and crash. A gradient with thousands of stops also no longer runs out of stack space.
- ๐ง Invariant positions on WebGL2: A GPU Canvas shader that marks its position @invariant, in a struct used as both vertex output and fragment input, failed to compile for WebGL2, so nothing it drew showed up in browsers. It compiles now.
- ๐ท๏ธ Finding nodes by name: The Artboard.node(name) reference now says the node's name has to be exported (see Exporting Names), or node returns nil.
Runtime
- ๐ค Text reshapes only when it changes: Text now runs its shaping step again only when its content or style changes, not when it's shown again, resized, or its layout direction flips. In a test file with many rows of text, showing a hidden view went from 4.1 ms to 2.5 ms.
- ๐ Faster Artboard Lists: Adding and removing items in an Artboard List takes less time. In one test file, adding 400 items with a right-to-left layout went from 28 ms to 18 ms, and removing 400 items from 0.54 ms to 0.18 ms. Layouts set to Hug also measure their contents fewer times, so adding 100 items to a list inside them went from 5.3 ms to 4.7 ms.
- โ๏ธ Right-to-left items added later: An item added to an Artboard List after the first frame, inside a right-to-left layout, laid out left to right, with its margins, padding, borders and corner radii on the wrong side. It now follows its parent's direction.
- โจ๏ธ Text Input caret after its text: A Text Input that gets focus without a click, like on a state's entry, from code, or through accessibility, now puts the caret after its text. Before, the caret sat in front of the text, so typing went in front of it too. Focusing a Text Input before its font loads also no longer crashes. This applies in the editor and in runtimes.
- ๐ฅ No crash when a canvas shrinks to nothing: A paused animation whose canvas shrank to zero width or height, for example because the element around it was hidden on a web page, could crash. It now draws nothing until the canvas has a size again.
- Oct 30, 2026
- Date parsed from source:Oct 30, 2026
- First seen by Releasebot:Nov 2, 2026
Rive Editor 0.9.460
Rive adds layer masks, image and artboard paints, scripted transitions, Spaces, additive blending and bitmap caching, alongside faster editing, expanded text and runtime support, and fixes for stability, input, rendering and scripting.
- ๐ญ Layer masks: mask a group, shape, image, text or Component, and everything inside it, with another layer. Unlike clipping, a mask uses the other layer's transparency or brightness, so its edges can be soft. In the Inspector's Mask section, click + and pick the layer to mask with, then choose Alpha, Inverted Alpha, Luminance or Inverted Luminance. Turn on Draw Source to also draw the mask layer itself. Masks draw in every runtime that uses the Rive Renderer, which is every runtime except the canvas runtime on the web; there, the layer draws unmasked.
- ๐ผ๏ธ Paint with images and artboards: a fill or stroke can now use an image. In the color picker, pick Image, choose an image asset, and set how it fits, scales and repeats inside the shape. Turn on Modulate Image to tint it with a color or gradient. Pick Artboard instead to paint with another artboard: it plays its state machine and stays live inside the shape. Image paints draw in every runtime, including the canvas runtime on the web from version 2.49.0. Artboard paints need the Rive Renderer, so they draw everywhere except the canvas runtime.
- ๐ฌ Scripted Transitions: a new kind of script that controls how one Component replaces another. Create a script of type Transition and add it from the Hierarchy's right-click menu. Its children are Components, from the design or from a view model list, and the one that shows is picked like a Solo, so you can bind it by index or name. The script decides how the outgoing and incoming Components draw while they switch, for crossfades, slides, page turns and anything else you can draw. It gets changed(from, to, direction) when the active Component changes, then advance and draw every frame until it's done.
- ๐๏ธ Spaces: group a file's artboards into Spaces, like pages, each with its own view, background color and active artboard. Turn on Spaces in the Hierarchy panel to create them and move artboards between them; each viewport tab shows one Space. Spaces only organize your file while you edit and aren't exported. Artboards on a Space nobody is viewing stop playing, so large files run faster: a 54-artboard file split across 6 Spaces ran about 40% faster.
- โ Additive blending: with the Normal blend mode, the new Additive strength slider goes from normal blending at 0% to fully additive at 100%, for glows, fire and light effects. You can key it and bind it. Every runtime that uses the Rive Renderer draws partial strengths, which is every runtime except the canvas runtime on the web; there, it draws fully additive at any strength.
- ๐ธ Bitmap Cache: select an artboard and add a Bitmap Cache in the Inspector, and wherever that artboard is used as a Component it draws as an image. Instead of drawing its vectors every frame, it draws once and again only when its content, size or zoom changes, which helps with detailed art that rarely changes. Resolution sets how sharp it is. The canvas runtime on the web draws the artboard normally, without the cache.
- โญ Inner and outer strokes for everyone: the Position dropdown in Stroke Options (Inside, Center, Outside) is out of Early Access. There are more UI improvements coming, but we wanted to get it in your hands quickly. Every runtime draws them, including the canvas runtime on the web from version 2.49.0.
- โถ๏ธ Components play while previewing bound values: with Preview Bound Values on, Components inside the artboard now run their own state machines and animations. Before, they sat on their first frame until you pressed play.
- โก Faster edits in large files: most edits to an artboard used as a Component now rebuild only the artboards that changed, not the whole file. On a 54-artboard file, an edit went from about 1.4 seconds to under 0.2.
- ๐งฎ Converters on converter properties: a bind on a converter's own property, like a Formula value or a String Template argument, can now use a converter of its own, nested as deep as you need. For example, a Formula can read an enum through Convert to Number, so "visible when skin A or skin B is on" comes straight from a view model. Pick it in the Convert row of the data binding popup, which before didn't show for these binds.
- ๐ฃ Capture listeners: set a listener's new Phase option to Capture and it runs before anything inside its target, including a Component's own listeners and built-in behavior like typing in a Text Input. A capture listener for a specific key and modifiers takes that key; one for a pointer press takes the whole press until release. Use it to override keys or clicks on a Component you can't edit.
- ๐ฏ Images as listener targets: a listener that targets an image, or a group with images in it, now responds to pointers on the image. Before, it never fired. Pointers on a Component drawn through a mesh or N-Slice also follow the deformation now, so clicks land where you see them.
- ๐ Search when adding a Component to a layout: Layout Children > + > Component now opens with a search field already focused, so you type to find a Component instead of scrolling a long list. In every Component picker with search, the arrow keys and Enter now work while you type. As requested here
- โช๏ธ Ctrl+Y redoes on Windows: on the stage, in the script editor and while editing text. Ctrl+Shift+Z still redoes, and Y alone still toggles Freeze. As requested here
- ๐ฅ Render Queue options: a new menu next to + in the Render Queue has Download All, Delete Completed and Delete All. Download All saves every finished render into one folder.
- ๐ฅ๏ธ No more glitches on some Macs: since a recent update, some Macs filled the editor window with stray triangles, streaks, and white or black frames. The editor now draws with the renderer it used before that update. As reported here
- ๐ฏ Triggers fire once when you play: playing a file in the editor no longer loses or doubles trigger fires, like a trigger relayed from a Component, or a condition on a Trigger custom property that stayed true after its first fire. Large files also play faster: on a file with 62 artboards, a step that took about 6 ms of every 9 ms frame is gone.
- โฌ ๏ธ Right-to-left text with Ellipsis: when Ellipsis overflow cuts a right-to-left line, the "..." now shows on the left, where the line ends, instead of next to its first word. A right or center aligned line that Ellipsis shortens now stays inside its text box; before, most of it could draw outside. Existing files with this text will look different, in the editor and in runtimes.
- โ๏ธ Ellipsis styles and text trims: with Ellipsis overflow, the "..." now takes the style of the run it cuts into when that run changes only its font or only its size. A trim or dash on text whose modifiers change opacity no longer draws several times over itself. Both in the editor and in runtimes.
- ๐๏ธ Freeze and brush erasing: after moving a brush shape's origin with Freeze on, the next erase no longer shifts the ink by the same distance.
- ๐ Pasting Components with scripted converters: pasting a Component bound through a scripted converter into another file now brings the script and its inputs. Before, both were lost. Removing a bind from a Formula token now also takes effect in every bind that uses the formula.
- ๐ฅ Crash fixes: selecting a text whose runs come from a view model list no longer crashes the Inspector. Artboard Lists that reuse their items as you scroll, and converters whose bind was pointed at a different property, could crash the editor and runtimes later; both are fixed.
Scripting
- โฑ๏ธ Scripts that never finish loading: a script whose top-level code loops forever now stops with an error after about a second. Before, it froze the editor.
- ๐ง Stencil settings in GPU autocomplete: GPU Canvas pipelines already accepted stencil operations, but autocomplete and the scripting API reference didn't list them, so they looked unsupported. They're listed now as the StencilOp and StencilFaceState types, along with the winding, color, writeMask and depthBiasClamp settings.
- โ ๏ธ Unused shader bindings get a warning: a WGSL binding that no entry point uses now gets a build warning on its declaration, since an automatic bind group layout drops it. Use it, keep it with _ = name; or remove it.
AI Agent / MCP
- ๐ง The AI Agent keeps its reasoning between steps: with Claude models, the agent now carries its reasoning from one tool call to the next instead of losing it. In our tests it took fewer steps and finished in about half the time.
- ๐ฆด Binding right after creating bones: when the AI Agent creates or moves bones and binds a mesh to them in the same turn, the bind now uses the bones' current pose, also on artboards in a hidden Space. Before, it could bind them unposed or in an older pose.
Runtime
- ๐ Fewer hangs and crashes: reading a path at 100%, like Follow Path at the end of its path, now lands on the path's end; before, it could send a dashed stroke into an endless loop. Trims that wrap around a path many times finish quickly, strokes with no color or gradient no longer crash, and trims or dashes on text whose font hasn't loaded yet wait for it instead of crashing.
- ๐ Trigger-to-trigger conditions: a transition that compares a view model trigger with another trigger, or with a number, now uses each fire once. Before, one fire could keep the condition true and step through a chain of such transitions in a single frame.
- โจ๏ธ Text Input shows its new text: when a bind replaced a Text Input's text and the text was selected or the caret moved before the next frame, the old text kept drawing. It now draws the new text.
- ๐ More paints in the canvas runtime: web pages using the @rive-app/canvas runtime, version 2.49.0 or later, now draw angular gradients, image paints, and inner and outer strokes.
- Oct 28, 2026
- Date parsed from source:Oct 28, 2026
- First seen by Releasebot:Nov 2, 2026
Rive Editor 0.9.415
Rive releases updates that improve text animation, mesh organization, and editing performance, while fixing gradient playback, library and runtime issues. The release also expands AI Agent and MCP tools with bone creation and safer edits, alongside faster rendering and Solo switching.
โข ๐ค Animate a text style's font: In Animate mode, picking a different font or style (like Bold) for a text style now adds a key. Before, it changed the font in the design. On a variable font, the key also keeps the style it was set with. Exported files include every font a key uses.
โข ๐ท๏ธ Meshes take their host's name: A mesh you haven't named now shows the name of the image or Component it deforms, so the mesh on "Arm" reads "Arm Mesh". Rename the image and the mesh follows; a name you type stays. In the timeline, keyed meshes now sit under their host's row. Before, each one was a separate top-level row called "Mesh". As requested here.
โข ๐ Faster editing of large layers: Selecting, selecting all and dragging a layer with thousands of shapes is much faster. On a test layer of about 1,650 shapes, the Selected Colors section updated in 8 ms instead of 369 ms, and pressing Alt mid-drag to duplicate the layer paused for under a second instead of over 3.
โข ๐๏ธ Brush strokes stay fast in busy shapes: Releasing a brush stroke no longer gets slower as a shape's Brush Spines pile up. In a shape with 90 short strokes, a release went from 127 ms to 3 ms.
โข ๐ข Less lag in files with many Components: A recent update made the editor scan the whole file once per Component each time it prepared the file for playback, so editing large files lagged. It scans once again.
โข ๐ Angular gradient animations play inside Components: Moving, turning or stretching an angular gradient in an animation now plays when its artboard is used as a Component, in the editor and in runtimes. Binding a gradient's rotation now converts degrees to radians like other rotations, and the timeline shows it in degrees.
โข ๐ Library updates keep Stateful Component values: Updating a library no longer resets values you set on each Stateful Component. The library's own private view model instances also no longer get copied into your file as instances you can pick.
โข ๐ View Model Change from another property: A View Model Change listener action that sets a view model property from another view model property no longer crashes runtimes. In the editor, Components bound through that property now follow the change, and My ViewModel works.
โข ๐ผ๏ธ Artboard thumbnails draw again: Artboard thumbnails, like the rows in the library publish panel, showed blank. They draw again.
โข ๐ Dropping from another web page: In the web editor, dragging an image from another web page or dragging selected text onto the editor no longer throws an error and loses the files in the drop.
โข ๐ Relative binds with repeated names: A Component with a relative data bind no longer crashes the editor when a closer view model, like a Global View Model, has a property with the same name but a different type.Scripting
- ๐ฆ Scripts that require another library's scripts: A library Component whose script requires a script from another library now runs in exported files. Before, the require failed and the script never ran unless your file shipped its own copy.
- โ Subtraction in shaders: The shader checker now reads x-16.0 and f32(i-1) as subtraction. Before, it reported a false error, and formatting on save turned max(x-16.0, 0.0) into max(x, -16.0, 0.0) by mistake.
- ๐ฅ๏ธ GPU scripts on Intel Macs and OpenGL: Scripts that draw with the GPU now upload textures on Intel Macs, and no longer leak GPU memory for each texture they create on OpenGL and WebGL.
- ๐ป No blank frame on opacity swaps: When a script advances an artboard that has no state machine, a parent's opacity change now reaches its Components in the same frame. Before, swapping two Components by opacity drew a blank frame.
AI Agent / MCP
- ๐ฆด Agents can create bones: The AI Agent and MCP tools can now create root bones and bone chains, by length and rotation or by head and tail points. Before, agents could only edit, bind and weight bones that already existed.
- ๐ก๏ธ Agent edits can't break a file: An agent edit that would make runtimes refuse or crash on the file, like two colors on one fill or a gradient outside a fill, is now refused and undone. Agents also get colors read the way the hex field reads them: before, #fff and red both came back as mid grey with the call reporting success; now #fff is white and red is refused.
Runtime
- ๐ฐ๐ท Korean wraps at spaces again: Since the September update to line breaking, Korean text could wrap between any two syllables. It now wraps between words, as before.
- โก Faster Solo switches: Switching a Solo no longer lays out the artboard again unless one of its options holds a layout. On files with no layouts and large character rigs, advancing got about 35% faster.
- ๐๏ธ Faster path drawing: The Rive Renderer prepares paths for drawing about 6 to 7% faster on desktop.
- Oct 27, 2026
- Date parsed from source:Oct 27, 2026
- First seen by Releasebot:Oct 27, 2026
Rive CLI 1.8.0
Rive releases a major CLI and runtime update with library management commands, AnimaScript support for threaded work and audio, stricter markup validation, and improvements to previews, scripting, accessibility, rendering, and sound on mobile devices.
This release brings library updates to the CLI.
rive library updatemoves a project to the newest version of each library it imports and leaves the change as a markup diff to review, where before you had to update the file in the Rive Editor. Scripts written in AnimaScript can now run work on other threads and generate audio, and the AnimaScript docs are public. Markup that runtimes refuse to load, like<Fill>with two<SolidColor>children, now fails the build instead of producing a broken .riv. Update withrive update(curl install) orbrew upgrade --cask rive-cli.Libraries
- ๐ Update libraries from the CLI:
rive library updatemoves each imported library to its newest version, the same way the editor's library update does, downloads what it needs and rewrites the markup. Nothing is pushed, so you review the diff and runrive pushwhen ready.--library=<id>updates one library and--yesskips the confirmation in CI. When a new version no longer publishes something your project uses, the run names it with its file and line and leaves an empty reference,0:0, for you to point elsewhere. As requested here. - ๐ See what a project imports:
rive library listlists every library the project imports, with its version and how many components each import carries. It reads only the project's files, so it works offline. Whenrive.yamlhas fallen behind the markup, a note says which command fixes it.--jsonprints one object per import. - ๐ See what a library publishes:
rive library info --library=<id>lists a library's versions and the components each one publishes.rive library listandrive library searchboth print the id.--version=<N>shows a single version and--jsonprints the library as one object. - ๐ค Teammates can open files that use libraries:
rive pushnow tells Rive which library versions the file uses, so someone who can open the file can also see the library content in it without access to the library itself.
Previews and captures
- ๐ Status bar in the preview window: a strip along the bottom shows frames per second, frame time, script memory, the process's memory and build progress, and who is signed in. The window grows to fit it, so the artboard keeps its size. On a paid plan, hide it by typing
bin the terminal, with--no-status-bar, or withwindow.statusBar: falseinrive.yaml. Screenshots and other headless runs never draw it. - ๐งช Change data in the middle of a run: a
--dataplaced after a--pointer,--touch,--key,--gamepad,--semantic-actionor--advancenow applies at that point, then runs one frame. Before, every--dataset a starting value. A step that fails prints--data <path>, mid-run: <reason>and exits with an error. - ๐ No more rebuild loop: when
rive.yamlwrites logs outside thebuild/folder, the watcher no longer rebuilds on its own log. Before, each build's log triggered the next build, about 6 times a second while idle. The watcher also ignores the backup files some text editors save with a~at the end of the name. - โจ๏ธ Punctuation shortcuts on macOS: in the preview window, punctuation keys like period, equals and the brackets now reach the scene, so a shortcut like
Cmd+.orCmd+=works. Before, they arrived as unknown keys, andCmd+.only made the system beep. - ๐ Sound on devices:
rive . --androidandrive . --iosnow play the scene's sounds, and keep them when the app goes to the background. Before, the device player was built without audio.
Push, pull and inspect
- ๐
rive push --new-filemakes a new file: it now creates a new file, in--projectand--folderwhen given, and links the project to it. Before, oncerive.yamllinked a file, both flags were ignored and the push overwrote the linked file. A--projectthat names another project is now refused. - ๐ฏ Find what fires an event:
rive inspectlists what fires each event underfiredBy: state and transition actions, listener actions and timeline keys. It warns about an event nothing fires,rive inspect . --summaryadds an events list, and the previewer prints each event as it fires. - ๐งน Leftover data in editor files:
rive pullandrive create --from-revnow report data the editor left behind, like references to deleted objects and unused interpolators. Nothing is removed. - ๐
rive pullwrites toscene.rml: when a project has ascene.rml,rive pullwrites the scene there. Before, it used the first.rmlfile by path. The note about a PNG or WebP image whose format doesn't match now gives the value to set.
RML (the markup the CLI compiles)
- โ ๏ธ Markup runtimes can't load fails the build: the build now stops, and writes nothing, when the structure is one runtimes refuse or crash on. Markup that built before can now fail:
- a
<Fill>or<Stroke>needs exactly one<SolidColor>or gradient. With two, every runtime refused the file. With none, the editor deleted the paint and runtimes could crash. - a
<SolidColor>or gradient must sit under a<Fill>or<Stroke>element. A gradient placed directly in a<Shape>built a .riv that crashed runtimes. - the same applies to other elements that only work under one parent, like
<TextValueRun>under a<Text>element,<PathVertex>under a path and<Dash>under a<DashPath>element.
- a
- ๐๏ธ Easing survives
rive pull: when several keyframes share one easing curve in an editor file, each keeps it in markup. Before, only the first kept the curve and the rest played as linear. - ๐ชช Clearer duplicate id errors: the error now names the first use of the id, with its file and line, and explains how to fix a duplicate across two files. An id inside a library is no longer blamed for a duplicate in your project.
Scripting
- ๐ฅ๏ธ GPU scripts on more machines: scripts that draw with the GPU now read the right buffers and textures on Direct3D 11, Direct3D 12 and Vulkan, run shaders that use
instance_indexon Metal, upload textures on Intel Macs, and no longer leak textures on OpenGL. - โ Subtraction in shaders: the shader checker now reads
x-16.0andarr[i-1]as subtraction. Before, it reported a false error and the formatter rewrote them as negative numbers.
AnimaScript
๐ AnimaScript docs are public: read them at
rive-app.github.io/rasc, with new pages on threads, workers, shared memory, jobs, SIMD and audio, and a comparison with Luau. Luau scripts keep running on every Rive runtime, but new scripting features now land in AnimaScript only.๐งต Threads: a
@jobfunction computes a result off the frame, and a@worker asyncfunction keeps its state across frames. Each thread has its own memory and passes values throughrive/portsor reads and writes shared memory throughrive/shared. Barrier lets workers split one computation and combine the results with sum, min or max.๐ต Audio processors: a script class can generate audio, block by block, on its own thread.
audioBufferinrive.yamlor--audio-buffer=<frames>sets the preview window's audio buffer: a bigger buffer keeps heavy audio from crackling, at the cost of latency.๐งพ Read JSON:
rive/jsonturns JSON text into values.parseJsonreturns the value or the line and column where the text stops being JSON, andJsonStreamreads a large response a piece at a time.๐ฒ Compile scripts for your own app: a new command compiles the scripts in published
.rivfiles ahead of time, for an app that bundles its own copies:rive aot <file.riv>... --android | --ios --out=<dir>
Built-in CLI docs (run
rive docsto read them)The docs that ship with the CLI, and what agents read to author scenes.
- ๐ซ Triggers: the docs now say a listener fires a trigger whatever value it writes.
propertyValue="1"is only needed for older runtimes.
Runtime
- ๐ฐ๐ท Korean wraps at spaces again: Korean text wraps between words. Since the September update to line breaking, it could wrap in the middle of a word.
- ๐ No blank frame when fading Components: a parent's opacity change now reaches a Component in the same frame. Before, it arrived a frame late, so a script switching between two Components on an artboard with no state machine drew one blank frame.
- ๐ Gradient animations play in Components: animating a gradient's
transformX,transformY,transformRotation,transformScaleXortransformScaleYnow plays inside a Component. Before, it only played on the top-level artboard. - โฟ Semantics (Accessibility) in Components come back: showing a hidden parent now restores the Semantics of every Component inside it, however deep. Before, anything more than one level down stayed missing for screen readers. Thanks to a community contribution.
- ๐๏ธ Faster path drawing: the Rive Renderer prepares paths about 6 to 7% faster on desktop and 8 to 13% faster in WebAssembly.
- Oct 22, 2026
- Date parsed from source:Oct 22, 2026
- First seen by Releasebot:Oct 22, 2026
Rive CLI 1.7.0
Rive improves its CLI with safer builds, folder selection for first-time pushes, SSH sign-in, library search, and richer capture checks. It also adds Angular gradients and Text Input limits while making previews, publishing, and Android rendering more reliable.
This release catches more problems before you publish. In the previewer and in captures, an image now reports a size of 0x0 until after the first frame, as on the web, so a script that reads an image's size too early breaks in the preview, not on the published page. A color written as colorValue="#282828" instead of colorValue="FF282828" now fails the build, where before the shape drew nothing. A first rive push now lets you pick the folder instead of always using the project root, rive library search lists the libraries a project can import, rive login works over SSH, and --probe and --compare check a capture's colors and changes as text. Update with rive update (curl install) or brew upgrade --cask rive-cli.
Push
- ๐ Pick a folder on your first push: a first rive push now opens a folder picker in your terminal, so you choose the project and the folder the file goes in. Before, you could only pick a project, and the file always landed at its root. The picker shows folders and subfolders, leaves out projects you can't write to, and lets you switch to another Workspace. In a script, pass --folder= together with --project= and get both ids from rive ls.
- โ ๏ธ rive push --list is gone: use rive ls, which also shows folders. A first push that can't show the picker, such as rive push > log where the output goes to a file, now stops and asks for --project= on the command line. Before, it quietly created the file at the project root.
- ๐ข Typos in ids are caught: --project and --folder now refuse anything that isn't a number. Before, --project=abc read as 0 and --project=8061oops as 8061, so a typo could create the file at the project root or in the wrong project, and link your project to that file in rive.yaml.
Sign-in and install
- โ ๏ธ rive login works over SSH: rive login now always signs in with a code you approve in a browser. Before, it only worked when the browser ran on the same machine, so over SSH, in a container or with no display it hung. On a desktop it still opens the approval page with the code filled in, so it stays one click. Elsewhere it prints the URL to open on any device. --device is still accepted, so existing scripts keep working.
- ๐ง Browsers open on Linux: rive login and rive open now open a browser on Linux. Before, they never did.
- ๐ฆ The installer runs on more machines: curl ... | sh now works on Debian and Ubuntu, where it used to fail with an error and install nothing. It also no longer needs python3, so it runs on a minimal Linux image or a Mac without the Command Line Tools. Before, it stopped with install.sh needs 'python3' on PATH.
Libraries
- ๐ Find libraries to import: rive library search lists the libraries a project can import, with their ids. It uses the project of the linked file unless you pass --project= to name one. --match= filters by name and --json prints one object per line. Projects in a personal Workspace aren't supported yet, and the command says so rather than showing an empty list. Like publishing, it needs a Voyager plan or higher.
- ๐ค Text Input builds from the CLI: a project that uses the editor's built-in Text Input component now builds with it. Before, rive pull couldn't download the component, so it was missing from the .riv and the build told you to run rive pull, which didn't help.
- ๐ Library scripts come from the right publish: each library component now runs the script that was published with it. Before, if a library version mixed components from two publishes, a component could run the script from the other publish, with no error or warning.
Previews and captures
- โ ๏ธ Images load as on the web: in the previewer and in captures, an image now reports a size of 0x0 during init and the first frame, then its real size once it loads, as on a web runtime. The Image object a script holds updates to the real size, so you don't need to fetch it again. A script that reads an image's width or height too early now breaks in the preview, instead of only once published. Scenes that don't read an image's size early capture exactly as before. An image in a layout set to Hug also resizes the layout once it loads. Before, it could stay 0x0.
- ๐ฒ Repeatable random numbers: --screenshot, --semantics and --data-dump now start math.random from a fixed seed, so a capture comes out the same on every run. --seed= picks a different seed. The preview window and published pages stay random.
- ๐งช Ask a capture questions as text: three new flags work with --screenshot. --probe=x,y prints the color at a point in the same AARRGGBB form colorValue uses, for example probe 120,60 FF57A5E0. --compare= prints how many pixels differ from an earlier capture. --scale= writes a smaller png. An agent can check that something moved or was drawn without reading a whole image.
- ๐ Publish locally to another folder: --output-dir= writes a --publish=local build to another folder for that run only. A relative path resolves against the project folder, and rive.yaml is left alone.
- ๐๏ธ Eased values no longer hitch: a DataConverterInterpolator eases a bound value to its new setting. Before, every change after the first froze the value for one frame, so the motion hitched.
- ๐ฑ Steadier Android previews: rive . --android no longer crashes on devices with Mali GPUs, falls back to OpenGL when Vulkan fails to start, and no longer stalls frames waiting on a script's GPU canvas.
RML (the markup the CLI compiles)
โ ๏ธ Colors that can't be read fail the build: every color attribute, like colorValue, propertyValue and highlightColor, now takes 8 hex digits of ARGB, or 6 for an opaque color. Before, #282828 or 0xff282828 built with no error and drew transparent, so the shape shipped invisible. Now the build fails with a message that shows the format:
SolidColor expects attribute colorValue to be ARGB hex: 8 digits like FF282828, or 6 for opaque, no # or 0x.๐ Angular gradients: draws a gradient that sweeps around a center point, with the same stops as and elements. Place, turn and stretch it with transformX, transformY, transformRotation, transformScaleX and transformScaleY. Stops run clockwise.
๐ข Limit what a Text Input takes: caps what a user can type, with 0 for no limit, and both can be bound. Typing and Enter stop at the limit, and a paste keeps only what fits. maxLines counts lines as they wrap. Text set by the file or a data bind is never trimmed.
๐ค Disabled layers stay off: a state machine layer marked disabled is now left out of the .riv, as the editor does. Before, it played in CLI builds while the editor showed it idle.
๐ชถ Disabled feathers stay off: a feather with isEnabled="false" is now left out of the .riv, with any animation keyed on it. Before, turning off an inner shadow made its fill fade to transparent.
๐ --from-remote-file opens more files: rive create --from-remote-file now accepts a file with a fire action on an Entry state, or any action on an Any, Exit or blend state. Before, it refused the whole file.
Scripting
- ๐งฑ GPU bind groups follow the entry points: a pipeline now builds its automatic bind group layouts from its own vertex and fragment entry points, not from the whole shader. It no longer needs bind groups for resources only other entry points use, and a draw whose bind groups don't match the pipeline now reports an error.
Built-in CLI docs (rive docs)
The docs that ship with the CLI, and what agents read to author scenes.
- ๐ค No more waiting on a keypress: rive docs --search and --list now always print plain lines, and --pick opens the picker. Before, when an agent ran them, they opened a picker and waited for a keypress nobody sent. --list also no longer starts with a stray row.
- ๐งญ Better pointers for agents: the docs now mention rive docs --search, say the debugger shows a script's local variables, and suggest keeping state you want to test in a view model, so --data-dump can read it as text.
- Oct 21, 2026
- Date parsed from source:Oct 21, 2026
- First seen by Releasebot:Oct 22, 2026
Rive Editor 0.9.335
Rive ships new component mesh and N-Slice support, angular gradients, and expanded text input controls, alongside editor and runtime fixes. The update also improves stack layouts, text and list performance, path drawing, and Android rendering stability.
- ๐งฉ Mesh and N-Slice on Components: a Component set to Mode: Node can now take a Mesh or an N-Slice, like an image. Select the Component and pick one under Deform in the Inspector. The Component draws its artboard as a flat image and deforms that, so you can bind it to bones, animate its vertices and slice it. Edit Mesh, Auto Trace and Auto Weights work as they do on images. Like an image, it softens when scaled up. Leaf and Layout Components can't take a mesh, so change Mode to Node first. As requested here.
- ๐ Angular gradients: pick Angular in the color picker, next to Linear and Radial, and the gradient's colors sweep around a center point instead of along a line. On the stage, drag the center dot to move the sweep, the dot on the ring to turn it, and either ring dot to stretch it into an ellipse. Color stops sit around the ring. Angular gradients draw in runtimes that use the Rive Renderer; other renderers show the first color as a solid fill. As requested here.
- ๐ข Max Characters and Max Lines on Text Input: set them in the Text Input section of the Inspector, or bind them. 0 means no limit. Typing and Enter stop at the limit, and a paste keeps only what fits. Max Lines counts lines as they wrap on screen. Text set by a data bind is never trimmed. The built-in Text Input component also exposes both as view model properties.
- ๐ Click outside a Text Input to leave it: pressing anywhere outside a focused Text Input, including the empty space around the artboard, now removes its focus, as text fields in apps do. Before, the caret kept blinking and keys still went to the field. This works in the editor and in runtimes.
- ๐ Type to find an image: the Image dropdown in an image's Inspector now takes typing, so you can find an image asset by name in a long list.
- ๐ Deleting objects keeps the right links: in a blend state, switching to another animation and then deleting the old one no longer clears the new one. Deleting a Solo's child in Animate mode no longer adds a key. Switching a 1D blend state between an input and a view model property now keeps its events and listener actions. Before, it deleted them. Files that already point to deleted objects get those links cleared when you open them.
- ๐ Copy and paste no longer grows files: copying content that uses a library view model and pasting it into another file now brings only the instances that content uses. Before, each paste added every instance of that view model, so files that traded content kept doubling: one reached 7,040 instances of a view model it used 6 of. To clean up a file that already grew, right-click the view model in the Data Panel and choose Delete Unused Instances. Pasting styles also no longer saves extra clipboard data into the file, and files that already carry it are cleaned up when opened.
- โฑ๏ธ Faster artboard duplication: duplicating an artboard in a large file now takes about 2 seconds instead of 6.6.
- ๐๏ธ Drag several artboards at once: with several artboards selected, dragging one by its header now moves them all. Before, it deselected the others and moved only the one you grabbed.
Scripting
- ๐ช Canvases in a split stage: with the stage split and the same scripted artboard in both viewports, a script that draws into a canvas no longer shows a stray, cropped copy of its drawing.
- ๐งฑ GPU script bind groups follow the entry points: a pipeline now builds its automatic bind group layouts from its own vertex and fragment entry points, not from the whole shader module. A pipeline no longer needs bind groups for resources only other entry points use, and a draw whose bind group doesn't match the pipeline's layout now reports an error. Texture sampling is checked per entry point too.
Runtime
- ๐ Stacks keep content inside the stack: content larger than a stack now overflows by the stack's alignment, so a centered stack overflows on all sides and a bottom-left one overflows up and to the right. Before, it always overflowed to the bottom right. A Fill child no longer grows past its stack, and a Hug child stays inside it, as in a row or column. Turn on Hug past bounds to keep the full content size. Stacks inside stacks also lay out much faster: on a test file with a live leaderboard, a frame dropped from 942 ยตs to 104 ยตs, and from 2,680 ยตs to 112 ยตs with a 10-row list.
- โก Faster text and list updates: changing a text now solves its layout once instead of twice, and recoloring a text no longer triggers a layout at all. On the same file, updating data-bound meter values got 43% faster, rebuilding a 10-row list 55% faster, and adding 100 to 400 list items about 45% faster.
- ๐ฏ Triggers between state machine layers: a view model trigger fired by one layer now reaches an earlier layer that waits on it. Before, the earlier layer could miss it when its state machine started playing in the same frame, so an animation waiting on that trigger never played. The editor now settles each frame the same way runtimes do, so it plays these files the same way too.
- ๐ฑ๏ธ Scripts no longer block clicks: a scripted object whose script has no pointer handlers no longer takes every click across the artboard. In runtimes that pass unused clicks to the content behind the artboard, that content stopped getting input.
- ๐ชถ Inner feathers draw right away: a fill whose feather changes from outer to inner at runtime no longer disappears until its shape changes.
- ๐ค Clearing a bound font: setting a data-bound font to nothing now clears it from every text run. Before, some runs disappeared while others kept the old font.
- ๐๏ธ Faster path drawing: the Rive Renderer works out path bounds 5 to 9% faster, draws strokes with sharp turns 16 to 20% faster, and runs some math up to 50% faster on 32-bit ARM devices.
- ๐ฉน Android crash fixes: fixed a crash during rendering on devices with Mali GPUs. Devices whose Vulkan driver fails to start now fall back to OpenGL instead of crashing.
- Oct 15, 2026
- Date parsed from source:Oct 15, 2026
- First seen by Releasebot:Oct 16, 2026
- Modified by Releasebot:Nov 5, 2026
Rive Editor 0.9.272
Rive adds a String Template converter and improves SVG imports, while fixing editor, scripting, playback, and revision-restoration issues. The update also improves text input pasting and ensures AI-added event keys appear in the timeline and save with files.
โข ๐งฉ String Template converter: build text from a template and view model values. Bind text to a String property that holds a template like You scored ${score} of ${total} and add a String Template converter with one argument per placeholder, each a Number or String bound to a view model property. Use it for sentences that change word order per language, and for formatted numbers: ${score:%.1f} shows one decimal and ${:%,d} adds thousands separators.
- Placeholders: ${name} uses the argument with that name, ${0} the argument at that position, and ${} the next argument in order.
- Syntax: write placeholders as ${name} (the default), {name} or {{name}} style, or pick Custom to set your own delimiters.
โข โ๏ธ Dashed strokes in SVG import: dashed strokes in an imported SVG, text included, now come in as a Dash Effect instead of solid strokes. Zero-length dashes with round or square caps become dots.
โข ๐ค Stroke order on imported text holds: on text imported from an SVG, moving the stroke below the fill now holds in Preview, in Components and in the exported .riv. Before, the stroke went back on top everywhere except the stage. Text strokes also keep their round or bevel joins now.
โข ๐ Paste from Illustrator on Windows: pasting shapes copied from Illustrator into the Windows editor now works. Before, nothing happened.
โข โฎ๏ธ Restoring a revision: edits made to a file just before someone restores a revision no longer land on top of the restored version. Everyone with the file open sees a loading overlay until the restored file arrives.
โข โฉ๏ธ Undo after editing keys in the Graph Editor: undo now reverts your key edits in files where a script or a Target to Source bind writes view model values during playback. Before, each undo reverted one of those playback writes and never reached your edit. As reported here.
โข ๐๏ธ Delete keeps working: the Delete key no longer stops working partway through a session. As reported here.
โข ๐ฏ Drag a keyed vertex on its own: in Edit Vertices, dragging a keyed vertex with the Graph Editor open, or after clicking its key in the timeline, now moves only the vertex. Before, it moved and keyed the whole path.
โข ๐๏ธ Smooth playback with scripts that fill lists: a script that adds items to a view model list during playback, like a hover handler that adds one on enter and exit, no longer makes the animation stutter in the editor. Before, the stutter grew with every item added.
โข ๐งฑ Create Component keeps the layout style: using Create Component on a layout with layout children now keeps the new Component's layout style after you reopen the file. Before, it came back with a default style, and later edits to that style were lost.
โข โจ๏ธ Paste a Text Input into another file: pasting a Text Input now reuses the file's built-in Text Input library. Before, the paste added a duplicate library and view model, and the Problems panel reported them as unavailable.
Scripting
- ๐ข Heavily scripted files stay fast: in files whose scripts read many view model properties every frame (for example, calling context:viewModel() in advance), the editor slowed down the longer the file stayed open and could freeze for minutes. Runtimes weren't affected.
- โ๏ธ Script undo stops at the starting text: undo in a script now stops at the text it started with. Before, it could undo the script down to nothing and leave it impossible to type in.
- ๐ผ๏ธ GPU Canvas images in paints on the first frame: a paint that uses a GPU Canvas image now shows it on the frame the canvas first draws. Before, the paint drew without it for one frame, so a scripted transition that captures its pages into canvases flashed on its first run.
AI Agent / MCP
- ๐ Event keys added by an agent stay in the file: event keyframes (including audio and Open URL events) and view model trigger keys that an agent adds now show in the timeline and save with the file. Before, the event fired once, but the key was missing from the timeline and gone after reopening.
- Oct 15, 2026
- Date parsed from source:Oct 15, 2026
- First seen by Releasebot:Oct 16, 2026
Rive CLI 1.6.0
Rive CLI fixes library view model builds and viewer crashes, prevents pushed scroll-physics files from freezing the editor, raises the publish limit to 1,000 scripts, and shows hosted-page expiry dates. It also adds validation and guidance for performance and asset workflows.
This release fixes projects that import a library's view models:
rive --verifyno longer reports wrongData.<Name>type errors for them, and the viewer no longer crashes when their listeners fire. Pushed files with scroll physics no longer freeze the editor,--publishsigns up to 1000 scripts instead of 100, and--publish=webnow says when a page expires. Update withrive update(curl install) orbrew upgrade --cask rive-cli.Libraries
๐ Library view models work in the CLI: a project that imports a library's view models or enums now builds and plays as it does in the editor. Before,
rive --verifycould report wrong type errors onData.<Name>types the library declares, the.rivbound some properties of an imported view model to the wrong place so their values were lost, and the viewer crashed when a trigger or enum listener fired through an imported view model.Push
๐ง Scroll physics no longer freeze the editor: since the last release, opening a pushed file with scroll physics could leave the editor stuck compiling.
rive pushnow writes the physics the way the editor expects, and the latest editor also opens files you already pushed, so you don't need to push them again. A newrive inspectcheck,scroll-physics-parent(error), flags physics given aparentId, since physics belong to the file and never take a parent.Publishing
๐ Up to 1000 scripts per publish:
--publishnow signs projects with up to 1000 scripts. Before, the CLI stopped any project over 100 with too many scripts to sign. A project over the limit now fails with the signing service's own error.โณ See when a published page expires: on plans where hosted pages expire,
--publish=webnow prints the date in your own time zone, as published my-scene (expires 4 Oct) on the first line. The page URL stays alone on the last line.Built-in CLI docs (rive docs)
The docs that ship with the CLI, and what agents read to author scenes.
โก GPU performance guide:
rive docs gpu-performancecovers what makes scripted 3D scenes and shaders fast or slow, ordered by cost: discard in opaque pipelines, depth pre-passes, the cost of each draw, textures, bulk data, heavy init work that native runtimes stop after 200 ms, live artboards in a 3D scene, and what WebGPU rejects that local checks miss.๐งฑ Bulk data belongs in a blob:
Original sourcerive docs assetsnow tells agents to pack large data (3D vertices, skinning weights, lookup tables) into a blob file read with the buffer library, instead of a base64 string or a long table of numbers in a script. - Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 13, 2026
Rive Editor 0.9.240
Rive improves timeline and state machine undo behavior, syncs edits after dropped connections, and fixes runtime playback for states with negative speed after the same animation plays forward.
โฉ๏ธ Undo keeps your view: undo in the timeline and the state machine graph now keeps your zoom and scroll, and moves the view only when what it changes is off screen. Before, undo jumped the view around before it reverted anything, and every scroll in the timeline was its own undo step.
๐ Syncing after a dropped connection: if the editor loses its connection while you keep working, it now syncs your changes when it reconnects, even a large batch of them. Before, a large batch could keep resending without ever finishing, or the editor could stop reconnecting and leave the file offline.
Runtime
โช Backwards states play again: since the last release, a state with a negative Speed could freeze on its first frame when the state before it had just played the same animation forward, like a show and hide pair built on one animation. Now it plays.
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Rive Editor 0.9.225
Rive releases editor and runtime updates with Q, W and E transform shortcuts, editable brush shapes, smoother playback, more reliable data binding and scripting, and faster, more stable animations across the web editor and runtimes.
โจ๏ธ Hold Q, W or E to transform from anywhere: with something selected, hold Q, W or E and drag anywhere on the stage to move, rotate or scale the selection. Clicking other objects while you hold the key doesn't select them. Release the key to go back to the tool you had before. A quick tap still switches tools.
๐๏ธ Transform brush shapes without flattening: in Animate mode, moving, scaling or rotating a brush shape no longer asks you to Flatten to Animate, and you can key those changes. Editing its Brush Spines or outline still asks.
๐๏ธ Smooth timeline playback in large files: playing a timeline that keys draw order no longer stutters in files with many objects. The state machine played smoothly, but the timeline dropped frames. As reported here.
๐ฑ๏ธ Smooth hover during playback: moving the pointer over the stage while a file plays no longer slows the editor down in files with many Components.
๐ Long sessions in the browser: the web editor no longer runs out of memory and stops responding after a long session. Every frame that drew paths leaked a little memory, so playing animations for a while made it worse.
โ๏ธ Clean stroke ends with Stabilize: Brush and Eraser strokes drawn with Stabilize no longer narrow into a thin neck just before the end cap. With Stabilize at 0, strokes now end where the pen lifts.
๐ Paste constraint keyframes: pasting keyframes copied from a constraint, like the Distance of a Follow Path constraint, now works. Before, paste did nothing. Keyframes from one constraint go onto every selected constraint.
๐ Data binding survives .rev export and copy and paste: exporting a .rev, or copying and pasting, now keeps relative data binding paths (on triggers, listeners, Components and script inputs) and library enum values. Before, a file made from an exported .rev lost the target of every relative trigger.
๐ Changing a state's type keeps its transitions' actions: changing a state to another type no longer deletes the events and listener actions on its transitions.
๐งฎ Converter copy and paste: pasting or duplicating a Component bound through a converter no longer adds another copy of the converter's binds each time. Copying a converter in the Data Panel now brings its formula tokens and group items with it. Before, the pasted converter had an empty formula or no items.
๐ฃ Formula tokens keep their binds: editing a formula no longer deletes a token's bind, or binds it to a different view model, when two view models share a name or a name contains "/".
๐ฆด Selection fixes: bones drawn over a Component can be clicked on the stage again. One click on another Hierarchy row now leaves an edit mode (it took two), and clicking an image's mesh in the Hierarchy no longer shows a blank Inspector.
๐ฉน Crash fix: fixed a crash when the editor drew a path that had just been removed, seen around selection outlines, vertex editing and Follow Path.
AI Agent
๐ผ๏ธ Partial captures no longer break the conversation: when the AI Agent captured an artboard with some text or images not drawn yet, every later message in that conversation failed. Now the capture comes back marked as partial.
๐ฆด Points added to bound paths get weights: vertices the AI Agent adds to a path bound to bones now get weights, as the Pen tool's do. Before, capturing that artboard could crash the editor.
Scripting
๐ค context:font(name) in the editor: scripts that call context:font(name) now work in the editor. Before, the call failed, and a state machine running that script slowed down until the editor froze.
โป๏ธ Artboard inputs that loop back: a script whose Artboard input leads back to its own artboard (a script in A takes B as an input, and B contains A as a Component) no longer crashes. The repeated input is left empty.
๐จ Faster GPU scripts on WebGL: GPU script passes no longer stall every frame waiting on the GPU.
Runtime
โก Faster playback: a state machine layer resting on a pose, or on a one-shot animation that has finished, no longer re-applies it every frame while nothing changes. Artboards that keep most of their content behind Solos also skip the hidden options every frame. On test files, idle advance time dropped from 0.093 ms to 0.038 ms, and busy scenes advance 24 to 28% faster.
๐ Trackpad flicks bounce at the end of a scroll view: on macOS, flicking a scroll view to its end with the trackpad now stretches past the edge and springs back, as releasing a drag does. Before, it stopped dead at the edge.
โจ๏ธ Text Input carets blink everywhere: the caret now blinks on runtimes that redraw only when something changes. Before, it could stay hidden.
๐ก๏ธ Safer file loading: files with an object a runtime can't read no longer crash on load or attach the objects after it to the wrong parent. Draw rules whose target is missing no longer crash on load either.
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.