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
| Parameter | Values | Behavior |
|---|---|---|
tmux_session_id | tmux session id or name | Opens a terminal attached to the requested tmux session. Required for tmux targeting. |
tmux_window_id | tmux window id or name | Optional tmux window within tmux_session_id. |
iframe_service | exposed HTTP service name or exact service URL | Opens 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_view | split, overlay, none | Chooses the initial preview mode. none keeps the preview closed for this navigation. |
iframe_split_ratio | number from 20 to 80 | Sets 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_maximized | true, false, 1, 0, yes, no | Seeds overlay preview maximization. If this is provided without iframe_view, the preview opens in overlay mode. |
devbox_window | normal, maximized, fullscreen | Sets 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_servicetargets 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.