Skip to main content

Overview

Every sandbox includes a sandbox command for inspecting runtime state, discovering ports, and diagnosing issues. No credentials required.

Commands

CommandDescription
sandbox statusShow runtime service status and resource usage
sandbox portsShow detected local ports and external URLs
sandbox url <port>Print the external URL for a specific port
sandbox appShow primary app port and common run hints
sandbox doctorCheck installed runtimes and sandbox basics

sandbox status

Output
The app service shows waiting until you start a process on APP_PORT. This is normal.

sandbox ports

Output
A background scanner detects non-reserved TCP listeners every 10 seconds. Ports are auto-labeled based on process name and common conventions (Vite, Next.js, Django, Flask, Rails, etc.).
Secondary ports use prefix routing (/_port/3000/). Most dev servers work without changes. Bind to 0.0.0.0 to ensure the gateway can reach them.

sandbox app

Output

sandbox doctor

Output
Only installed tools are shown. Missing tools are silently omitted.

Troubleshooting

The helper is installed during image build. Rebuild the toolbox image to get the latest version. As a workaround, check status files directly: cat /tmp/devbox-status.json | jq .status.
The port scanner runs every 10 seconds. Wait a few seconds after starting a service, then retry. Verify your service is listening: ss -tlnp | grep LISTEN.
Verify the service binds to 0.0.0.0 or 127.0.0.1, not a specific interface. Check sandbox status for service states.