Shareable links
Build and share deep links with your teammates to open Foxglove with specific layouts and data sources.
To open Foxglove using a specific layout or data source, construct a "deep link" URL using the format:
https://app.foxglove.dev/{YOUR-FOXGLOVE-SLUG}/view?param1=value2¶m2=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:
parameter | type | required | description |
---|---|---|---|
openIn | string | web (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.
prefix | example |
---|---|
https://app.foxglove.dev/{YOUR-FOXGLOVE-SLUG}/view | https://app.foxglove.dev/{YOUR-FOXGLOVE-SLUG}/view?ds=foxglove-websocket&ds.url=ws://localhost:8765&openIn=desktop |
foxglove://open | foxglove://open?ds=foxglove-websocket&ds.url=ws://localhost:8765 |
Layouts
To load a saved layout (personal or team):
parameter | type | required | description |
---|---|---|---|
layoutId | string | ✓ | 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
parameter | type | required | description |
---|---|---|---|
time | timestamp (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/{YOUR-FOXGLOVE-SLUG}/view?ds=rosbridge-websocket&ds.url=ws%3A%2F%2Flocalhost%3A9090&layoutId=2644147b-f205-456c-ace9-69466aaac0b7
Foxglove WebSocket
parameter | type | required | description |
---|---|---|---|
ds | string | ✓ | foxglove-websocket |
ds.url | string | ✓ | WebSocket URL (i.e. ws://localhost:8765 ) |
Rosbridge
parameter | type | required | description |
---|---|---|---|
ds | string | ✓ | rosbridge-websocket |
ds.url | string | ✓ | WebSocket URL (i.e. ws://localhost:9090 ) |
ROS 1 Native
(Supported on desktop only)
parameter | type | required | description |
---|---|---|---|
ds | string | ✓ | ros1-socket |
ds.url | string | ✓ | ROS Master URI |
Foxglove
parameter | type | required | description |
---|---|---|---|
ds | string | ✓ | foxglove-stream |
ds.deviceId | string | See below* | The device id in Foxglove |
ds.deviceName | string | See below* | User assigned device name |
ds.start | timestamp (RFC3339) | With ds.deviceId or ds.deviceName | Start of data playback range |
ds.end | timestamp (RFC3339) | With ds.deviceId or ds.deviceName | End of data playback range |
ds.recordingId | string | See below* | ID of the recording to open |
ds.recordingKey | string | See below* | Key of the recording to open |
ds.importId | string | Deprecated. Prefer ds.recordingId instead | ID of the import to open |
One of ds.deviceId
, ds.deviceName
, ds.recordingId
or ds.recordingKey
is required
Remote files
parameter | type | required | description |
---|---|---|---|
ds | string | ✓ | remote-file |
ds.url | string | ✓ | URL to .bag or .mcap file |