rive <dir>) shows a status bar along its bottom edge, on by
default. It is a 28 point strip below the scene. The scene is laid out above it, so
the bar never covers content, and the window grows by the strip so the artboard keeps
its size.
Stats refresh twice a second, each averaged over that half second. Click a stat’s
label in the bar to open its section on this page.
The bar is only drawn in the live window. It never appears in screenshots,
--bench,
or any other headless run.FPS
Frames presented per second in the window. It is capped by the display’s refresh rate: 60 on most displays, and up to 120 on ProMotion displays.FRAME
The average time between frames, in milliseconds. A 60 Hz display that is keeping up shows 16.7 ms. A FRAME well above the display’s interval means frames are being dropped.ADVANCE
CPU time to advance the scene each frame. That covers state machines, animations, layout, data binding, and theadvance and update calls of scripts. In scripted
content, this is the usual cause of jank.
While playback is paused, ADVANCE shows a dash and the bar shows PAUSED. Toggle
playback with p in the terminal.
RECORD
CPU time to record the frame’s draw commands. Rendering is deferred: the main thread records the commands and a render thread replays them to the GPU. RECORD covers only the recording, so it excludes GPU time and presentation.HEAP
Memory owned by the file’s scripts. A file runs on one script VM, so HEAP reports whichever one it uses:
A dash means the file has no scripts.
HEAP turns amber when the runtime warns about a script heap growing steadily, which
usually means a leak or an unbounded cache, or about leaked handles. The terminal log
has the details.
MEM
The whole process’s memory, as the operating system counts it:
MEM includes HEAP, plus the runtime, artboards, images, fonts and GPU driver
allocations, and the CLI’s own compiler and file watcher. That makes it much larger
than what the same file uses inside an app. Use it to spot growth over time, not as
an absolute budget.
VM
The script VM and the tier it runs on:
A dash means the file has no scripts.
Script timings in the live window are slower than in a published file, because the
live window’s development builds meter every loop for the watchdog. To time scripts,
use
rive <dir> --bench=N, which uses release builds.Account and plan
The right side of the bar shows your account:Hiding the bar
On a paid plan, you can hide the bar in any of these ways:rive.yaml