Skip to main content
The preview window (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 the advance 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
Free and signed-out accounts always see the bar.