--- title: ⌨️ CLI manual order: 1150 --- ## rerun The Rerun command-line interface: * Spawn viewers to visualize Rerun recordings and other supported formats. * Start a gRPC server to share recordings over the network, on native or web. * Inspect, edit and filter Rerun recordings. **Usage**: ` rerun [OPTIONS] [URL_OR_PATHS]… [COMMAND]` **Commands** * `analytics`: Configure the behavior of our analytics. * `auth`: Authentication with the redap. * `download`: Download recordings and save them as .rrd files. * `man`: Generates the Rerun CLI manual (markdown). * `mcap`: Manipulate the contents of .mcap files. * `viewer-mcp`: Run an MCP server that controls a running Rerun Viewer. * `reset`: Reset the memory of the Rerun Viewer. * `rrd`: Manipulate the contents of .rrd and .rbl files. * `server`: In-memory Rerun data server. **Arguments** * `` > Any combination of: > - A gRPC url to a Rerun server > - A path to a Rerun .rrd recording > - A path to a Rerun .rbl blueprint > - An HTTP(S) URL to an .rrd or .rbl file to load > - A path to an image or mesh, or any other file that Rerun can load (see https://www.rerun.io/docs/concepts/logging-and-ingestion/importers/overview) > > If no arguments are given, a server will be hosted which a Rerun SDK can connect to. **Options** * `--bind ` > What bind address IP to use. > > `::` will listen on all interfaces, IPv6 and IPv4. > > [Default: `0.0.0.0`] * `--memory-limit ` > An upper limit on how much memory the Rerun Viewer should use. > When this limit is reached, Rerun will drop the oldest data. > Example: `16GB` or `50%` (of system total). > You can also set this in the settings panel. * `--server-memory-limit ` > An upper limit on how much memory the gRPC server (`--serve-web`) should use. > The server buffers log messages for the benefit of late-arriving viewers. > When this limit is reached, Rerun will drop the oldest data. > Example: `16GB` or `50%` (of system total). > > [Default: `1GiB`] * `--newest-first ` > If true, play back the most recent data first when new clients connect. > > [Default: `false`] * `--cors-allow-origin ` > Additional origin patterns allowed to make CORS requests to the gRPC server. > > Use this when hosting a custom viewer on a different domain. Patterns are matched against the full Origin header (e.g. `https://example.com:8080`), using glob-style matching where `*` matches any sequence of characters. Can be specified multiple times. > > Examples: `--cors-allow-origin "https://*.example.com"` `--cors-allow-origin "https://example.com:8080"` `--cors-allow-origin "https://example.com:*"` * `--persist-state ` > Whether the Rerun Viewer should persist the state of the viewer to disk. > When persisted, the state will be stored at the following locations: > - Linux: `/home/UserName/.local/share/rerun` > - macOS: `/Users/UserName/Library/Application Support/rerun` > - Windows: `C:\Users\UserName\AppData\Roaming\rerun` > > [Default: `true`] * `--port ` > What port do we listen to for SDKs to connect to over gRPC. > > Use `auto` to always start a new viewer with a free port if the default is taken. > > [Default: `9876`] * `--new ` > Alias for `--port auto`. Always start a new viewer. > > If the port is already in use, a free port will be picked automatically. > > [Default: `false`] * `--profile ` > Start with the puffin profiler running. > > [Default: `false`] * `--save ` > Stream incoming log events to an .rrd file at the given path. * `--screenshot-to ` > Take a screenshot of the app and quit. We use this to generate screenshots of our examples. Useful together with `--window-size`. * `--serve-web ` > This will host a web-viewer over HTTP, and a gRPC server, unless one or more URIs are provided that can be viewed directly in the web viewer. > > If started, the web server will act like a proxy, listening for incoming connections from logging SDKs, and forwarding it to Rerun viewers. > > [Default: `false`] * `--serve-grpc ` > This will host a gRPC server. > > The server will act like a proxy, listening for incoming connections from logging SDKs, and forwarding it to Rerun viewers. > > [Default: `false`] * `--connect ` > Do not attempt to start a new server, instead try to connect to an existing one. > > Optionally accepts a URL to a gRPC server. > > The scheme must be one of `rerun://`, `rerun+http://`, or `rerun+https://`, and the pathname must be `/proxy`. > > The default is `rerun+http://127.0.0.1:9876/proxy`. * `--expect-data-soon ` > This is a hint that we expect a recording to stream in very soon. > > This is set by the `spawn()` method in our logging SDK. > > The viewer will respond by fading in the welcome screen, instead of showing it directly. This ensures that it won't blink for a few frames before switching to the recording. > > [Default: `false`] * `-j, --threads ` > The number of compute threads to use. > > If zero, the same number of threads as the number of cores will be used. If negative, will use that much fewer threads than cores. > > Rerun will still use some additional threads for I/O. > > [Default: `-2`] * `--version ` > Print version and quit. > > [Default: `false`] * `--web-viewer ` > Start the viewer in the browser (instead of locally). > > Requires Rerun to have been compiled with the `web_viewer` feature. > > This implies `--serve-web`. > > [Default: `false`] * `--web-viewer-port ` > What port do we listen to for hosting the web viewer over HTTP. A port of 0 will pick a random port. > > [Default: `9090`] * `--hide-welcome-screen ` > Hide the normal Rerun welcome screen. > > [Default: `false`] * `--detach-process ` > Detach the native Rerun Viewer process from the invoking process. > > Ignored for any command that doesn't spawn a viewer. > > [Default: `false`] * `--headless ` > Run the viewer in headless mode (no OS window). > > The viewer is driven by an offscreen `egui_kittest` harness, while the gRPC server keeps running so SDK clients can still log data and request screenshots via `save_screenshot`. > > [Default: `false`] * `--window-size ` > Set the screen resolution (in logical points), e.g. "1920x1080". Useful together with `--screenshot-to`. * `--renderer ` > Override the default graphics backend and for a specific one instead. > > When using `--web-viewer` this should be one of: `webgpu`, `webgl`. > > When starting a native viewer instead this should be one of: > > * `vulkan` (Linux & Windows only) > > * `gl` (Linux & Windows only) > > * `metal` (macOS only) * `--video-decoder ` > Overwrites hardware acceleration option for video decoding. > > By default uses the last provided setting, which is `auto` if never configured. > > Depending on the decoder backend, these settings are merely hints and may be ignored. > However, they can be useful in some situations to work around issues. > > Possible values: > > * `auto` > May use hardware acceleration if available and compatible with the codec. > > * `prefer_software` > Should use a software decoder even if hardware acceleration is available. > If no software decoder is present, this may cause decoding to fail. > > * `prefer_hardware` > Should use a hardware decoder. > If no hardware decoder is present, this may cause decoding to fail. * `--test-receive ` > Ingest data and then quit once the goodbye message has been received. > > Used for testing together with `RERUN_PANIC_ON_WARN=1`. > > Fails if no messages are received, or if no messages are received within a dozen or so seconds. > > [Default: `false`] ## rerun analytics Configure the behavior of our analytics. **Usage**: `rerun analytics ` **Commands** * `details`: Prints extra information about analytics. * `clear`: Deletes everything related to analytics. * `email`: Associate an email address with the current user. * `enable`: Enable analytics. * `disable`: Disable analytics. * `config`: Prints the current configuration. ## rerun analytics email Associate an email address with the current user. **Usage**: `rerun analytics email ` **Arguments** * `` ## rerun auth Authentication with the redap. **Usage**: `rerun auth ` **Commands** * `login`: Log into Rerun. * `logout`: Log out of Rerun. * `token`: Retrieve the stored access token. * `generate-token`: Generate a fresh access token. ## rerun auth login Log into Rerun. This command opens a page in your default browser, allowing you to log in to Rerun Hub. Once you've logged in, your credentials are stored on your machine. To sign up, contact us through the form linked at . **Usage**: `rerun auth login [OPTIONS]` **Options** * `--no-open-browser ` > Post a link instead of directly opening in the browser. > > [Default: `false`] * `--force ` > Trigger the full login flow even if valid credentials already exist. > > [Default: `false`] ## rerun auth logout Log out of Rerun. This command clears the credentials stored on your machine and ends your session. **Usage**: `rerun auth logout [OPTIONS]` **Options** * `--no-open-browser ` > Post a link instead of directly opening in the browser. > > [Default: `false`] ## rerun auth generate-token Generate a fresh access token. You can use this token to authorize requests to Rerun Hub. It's closer to an API key than an access token, as it can be revoked before it expires. **Usage**: `rerun auth generate-token [OPTIONS] --server --expiration ` **Options** * `--server ` > Origin of the server to request the token from. * `--expiration ` > Duration of the token, either in: - "human time", e.g. `1 day`, or - ISO 8601 duration format, e.g. `P1D`. * `--permission ` > Which permission the token should have. > > [`read`, `read-write`] > > [Default: `read`] ## rerun download Download recordings and save them as .rrd files. Supports downloading from Rerun Hub as well as any other supported URI. **Usage**: `rerun download [OPTIONS] …` **Arguments** * `` > One or more URIs to download. **Options** * `-o, --output-dir ` > Override the output directory for the downloaded `.rrd` files. > > Defaults to the current working directory. ## rerun mcap Manipulate the contents of .mcap files. **Usage**: `rerun mcap ` **Commands** * `convert`: Convert an .mcap file to an .rrd. * `info`: Print recording, channel, and compression information for an .mcap file. * `check`: Check an .mcap file for structural and timeline issues. ## rerun mcap convert Convert an .mcap file to an .rrd. **Usage**: `rerun mcap convert [OPTIONS] ` **Arguments** * `` > Paths to read from. Reads from standard input if none are specified. **Options** * `-o, --output ` > Path to write to. Writes to standard output if unspecified. * `--application-id ` > If set, specifies the application id of the output. * `-d, --decoder ` > Specifies which decoders to apply during conversion. * `--disable-raw-fallback ` > Disable using the raw decoder as a fallback for unsupported channels. By default, channels that cannot be handled by semantic decoders (protobuf, ROS2) will be processed by the raw decoder. > > [Default: `false`] * `--recording-id ` > If set, specifies the recording id of the output. > > When this flag is set and multiple input .rdd files are specified, blueprint activation commands will be dropped from the resulting output. * `--timestamp-offset-ns ` > If set, an offset in nanoseconds to add to all timestamp timelines. > > This can be used to shift all timestamps of the MCAP file if they are not yet relative to the UNIX epoch. > > Duration and sequence timelines are not affected by this offset. * `--timeline-type ` > The timeline type to use for timestamp timelines. > > "timestamp" (default) creates `TimestampNs` timelines (nanoseconds since Unix epoch). "duration" creates `DurationNs` timelines (nanosecond durations). > > [Default: `timestamp`] * `-y, --include-topic-regex ` > Include only topics matching this regex (RE2 syntax). Repeatable. > > If omitted, all topics are included. Patterns are not implicitly anchored; use `^` / `$` if you need anchoring. > > Example: `-y "^/tf.*" -n ".*depth.*" -y "^/camera/(compressed|camera_info)$"` * `-n, --exclude-topic-regex ` > Exclude topics matching this regex (RE2 syntax). Repeatable. > > Applied after includes: a topic is kept only if it matches an include (or no includes are set) AND matches no exclude. * `--start-time