Connect to a lab
Open the lab's page in the dashboard. The connection information panel holds everything below, with a copy button on each row.
VS Code in your browser
Click Code. Enter the code-server password from the connection panel.
You get a full editor with a terminal — press Ctrl + ` to open it.
This needs no VPN and no setup, which makes it the fastest way in and the right answer when something else is not working.
SSH
Requires a connected device, because labs are private.
ssh <your-username>@<your-lab-ip>
Both values are on the lab's page — the SSH Command row is ready to paste.
Authentication uses your SSH keys. Every enabled key on your account is installed at deploy time.
Port 22 is reachable over the tunnel and is never published to the internet, on any plan.
Your own editor over SSH
Once SSH works, any editor with remote support works.
VS Code Desktop
Install the Remote - SSH extension, then press F1 and choose Remote-SSH: Connect to Host. Add a host entry:
Host mylab
HostName <your-lab-ip>
User <your-username>
JetBrains IDEs
File → Remote Development → SSH, then enter the same host, user and key.
A graphical desktop
Labs that ship a desktop expose it in the connection panel with its own URL and a VNC password. Kali is the common example.
Reaching services running in your lab
A web app on a port inside the lab is reachable over the tunnel at
http://<your-lab-ip>:<port> — no configuration needed, and private to you.
To put it on the internet with a domain and HTTPS instead, see Publishing ports.
If you cannot get in
| Symptom | Likely cause |
|---|---|
| code-server URL says "Not running" | The lab is not deployed, or its editor did not start. Redeploy. |
| SSH times out | The tunnel is down, or the lab is stopped. Check with the browser editor first. |
| SSH asks for a password | Your key is not installed. Add it, then redeploy. |
| Password is rejected | If you set a custom password, use that one — not the generated value. |
More in Troubleshooting → Cannot connect.
Do it with an AI assistant
You can also do this by asking an AI assistant connected to your account — see Connect an AI assistant to set one up.
| Ask | What the assistant does |
|---|---|
| “What is the IP and password for my ubuntu lab?” | Finds the lab with list_labs, then reads the address, username and password with lab_info |
| “I can't SSH in — is my lab even running?” | lab_status, then lab_info for the address to use |
| “Is the app on port 3000 in my lab actually answering?” | Makes a request from inside the lab with lab_probe |
| “Run df -h in my lab” | run_command |
For a copy, the assistant must use the instance id that list_labs returns. Asked by lab name alone, it reaches your standard instance — a different container with a different address.