Skip to main content

Shareable links

Build and share deep links with your teammates to open Foxglove with specific layouts, data sources, and timeline views.

To open Foxglove using a specific layout or data source, construct a "deep link" URL using the format:

https://app.foxglove.dev/~/view?param1=value1&param2=value2

Supported query parameters are documented below, or you can copy any URL while you are using the app.

Web vs. desktop​

By default, links will open in the browser. You can open the desktop app instead using the openIn parameter:

parametertyperequireddescription
openInstringweb (default)
desktop

openIn=desktop opens in the Foxglove app. If it is not installed, it presents a landing page that prompts the user to download the app or open the link in the browser. This is the preferred approach to open the Foxglove app.

The foxglove:// URL scheme also opens in the Foxglove app. This fails silently if the Foxglove app is not installed.

prefixexample
https://app.foxglove.dev/~/viewhttps://app.foxglove.dev/~/view?ds=foxglove-websocket&ds.url=ws://localhost:8765&openIn=desktop
foxglove://openfoxglove://open?ds=foxglove-websocket&ds.url=ws://localhost:8765

Layouts​

To load a saved layout (personal or team):

parametertyperequireddescription
layoutIdstring✓Foxglove's ID for a remotely saved layout

To get a URL with the correct layoutId param, open the web app and click your desired layout in the "Layouts" menu.

Timestamp​

parametertyperequireddescription
timetimestamp
(RFC3339)
Timestamp to seek to (for non-live data sources)

Data sources​

To specify your data source, use the ds parameter as documented according to your desired data source below.

For example, a Rosbridge connection may look like the following:

https://app.foxglove.dev/~/view?ds=rosbridge-websocket&ds.url=ws%3A%2F%2Flocalhost%3A9090&layoutId=2644147b-f205-456c-ace9-69466aaac0b7

Foxglove WebSocket​

parametertyperequireddescription
dsstring✓foxglove-websocket
ds.urlstring✓WebSocket URL (i.e. ws://localhost:8765)

Rosbridge​

parametertyperequireddescription
dsstring✓rosbridge-websocket
ds.urlstring✓WebSocket URL (i.e. ws://localhost:9090)

ROS 1 Native​

(Supported on desktop only)

parametertyperequireddescription
dsstring✓ros1-socket
ds.urlstring✓ROS Master URI

Foxglove​

parametertyperequireddescription
dsstring✓foxglove-stream
ds.deviceIdstringSee below*The device id in Foxglove
ds.deviceNamestringSee below*User assigned device name
ds.starttimestamp
(RFC3339)
Start of data playback range
ds.endtimestamp
(RFC3339)
End of data playback range
ds.recordingIdstringSee below*ID of the recording to open
ds.recordingKeystringSee below*Key of the recording to open
ds.eventIdstringSee below*ID of the event to open
ds.sessionIdstringSee below*ID of the session to open
ds.sessionKeystringSee below*Key of the session to open
info

One of ds.deviceId, ds.deviceName, ds.recordingId, ds.recordingKey, ds.eventId, ds.sessionId, or ds.sessionKey is required. If multiple are provided, Foxglove uses the first one in this order: ds.recordingId, ds.recordingKey, ds.deviceId, ds.deviceName, ds.eventId, ds.sessionId, ds.sessionKey.

Remote files​

parametertyperequireddescription
dsstring✓remote-file
ds.urlstring✓URL to .bag or .mcap file(s). Use multiple parameter entries to specify multiple files. (i.e. ds.url="…"&ds.url="…")

Remote data loader​

parametertyperequireddescription
dsstring✓remote-data-loader
ds.dataLoaderUrlstring✓URL of your remote data loader deployment (for example https://loader.example/).
ds.manifestParamsstringEncoded manifest query parameters (application/x-www-form-urlencoded, without a leading ?). Example: ds.manifestParams=recording%3Dfirst-recording. When present, sibling ds.* keys are ignored.
ds.*stringLegacy. Sibling manifest parameters when ds.manifestParams is omitted (for example ds.recording=…). Prefer ds.manifestParams.
ds.comparestringSet to true to compare multiple sources. Requires two or more ds.manifestParams values.

Timeline​

To share links to the timeline view, use the format:

https://app.foxglove.dev/~/timeline?param1=value1&param2=value2

Time range​

Set the time range displayed on the timeline. Defaults to the last 7 days if omitted.

parametertyperequireddescription
starttimestamp
(RFC3339)
Start of the displayed time range
endtimestamp
(RFC3339)
End of the displayed time range

Device filter​

Filter which devices are shown on the timeline.

parametertyperequireddescription
deviceFilterstringFilter displayed devices by name or ID

Device selection​

Highlight a time range on a specific device. These parameters are applied on load and then removed from the URL.

parametertyperequireddescription
selectedDevicestringDevice ID or name
selectedStarttimestamp
(RFC3339)
Start of the selected range
selectedEndtimestamp
(RFC3339)
End of the selected range