Skip to main content

Devbox deep links

Devbox deep links let tools, agents, and teammates open a Devbox to a specific initial display state. A link can select a tmux target, open an exposed HTTP service in the embedded preview, choose split or overlay preview mode, seed preview sizing, and open the Devbox workspace window maximized.

Use deep links for handoffs where the first view matters: reviewing an agent's tmux session, demoing a running app, or sending a teammate directly to the relevant preview.

URL format

Use the Devbox route for the organization that owns the Devbox:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?<params>

For personal or unscoped Devbox links, use:

https://cloud.morph.so/web/devboxes/<devbox_id>?<params>

Deep-link params are display intent for the current navigation. They do not change the Devbox's shared defaults.

Examples

Open a specific tmux session and window:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?tmux_session_id=%249&tmux_window_id=1

Open the app HTTP service as a split preview:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?iframe_service=app&iframe_view=split&iframe_split_ratio=35

Open the app HTTP service as a maximized overlay preview:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?iframe_service=app&iframe_view=overlay&iframe_maximized=true

Open the Devbox workspace window maximized:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?devbox_window=maximized

Combine tmux, preview, and window state:

https://cloud.morph.so/web/org/<organization_id>/devboxes/<devbox_id>?tmux_session_id=%249&tmux_window_id=1&iframe_service=app&iframe_view=split&iframe_split_ratio=38.2&devbox_window=maximized

Parameters

ParameterValuesBehavior
tmux_session_idtmux session id or nameOpens a terminal attached to the requested tmux session. Required for tmux targeting.
tmux_window_idtmux window id or nameOptional tmux window within tmux_session_id.
iframe_serviceexposed HTTP service name or exact service URLOpens the requested service in the embedded preview when the service exists, is not API-key-protected, and can be embedded. Service names are recommended.
iframe_viewsplit, overlay, noneChooses the initial preview mode. none keeps the preview closed for this navigation.
iframe_split_rationumber from 20 to 80Sets the desktop split ratio. The value is the terminal pane percentage, so 35 means roughly 35% terminal and 65% preview. Values outside the range are clamped.
iframe_maximizedtrue, false, 1, 0, yes, noSeeds overlay preview maximization. If this is provided without iframe_view, the preview opens in overlay mode.
devbox_windownormal, maximized, fullscreenSets the initial workspace window state. fullscreen is accepted as an alias for the maximized Devbox workspace window.

CamelCase aliases are accepted for the iframe and window parameters, such as iframeService, iframeView, iframeSplitRatio, iframeMaximized, and devboxWindow. Prefer the snake_case names in generated links.

Service selection

For iframe_service, prefer the exposed HTTP service name:

iframe_service=app

Exact service URLs are supported for generated links when needed:

iframe_service=https%3A%2F%2Fexample.http.cloud.morph.so

If iframe_service is present and the requested service is missing, protected by API-key auth, or not embeddable, Morph does not silently replace it with another service. This prevents a precise handoff link from opening the wrong application.

If iframe_view, iframe_split_ratio, or iframe_maximized is provided without iframe_service, Morph uses the Devbox's normal preview service resolution: persisted preview choice, Devbox metadata defaults, then the first allowed exposed HTTP service.

Limitations

  • The viewer still needs access to the Devbox through the owning organization.
  • API-key-protected HTTP services are not embedded in the preview.
  • Missing or unsupported iframe_service targets do not fall back to another service.
  • Query params set display intent for the current navigation; they do not update shared Devbox metadata or teammate defaults.
  • Do not put secrets, API keys, bearer tokens, or one-time credentials in URLs.
  • On small screens, split preview mode may render as overlay because there is not enough room for a useful split layout.