fabro/docs/human-tools/vs-code.mdx
Bryan Helmkamp 35bd79a2ed
Update docs, frontend, marketing, and skills for .fabro extension
Update 47 MDX doc pages, OpenAPI spec, SVG diagram, language
grammar, frontend demo data, marketing page, skills, and README
to use .fabro extension. Add "fabro" to fileTypes in language
grammars. Document stack.child_workflow alongside stack.child_dotfile.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 22:38:25 -04:00

54 lines
2.9 KiB
Text

---
title: "VS Code"
description: "Open sandbox environments in VS Code for interactive editing and debugging"
---
When a Daytona sandbox has [SSH access](/human-tools/ssh-access) enabled, you can connect VS Code directly to the sandbox using the built-in [Remote - SSH](https://code.visualstudio.com/docs/remote/ssh) extension. This gives you a full IDE experience — editing, terminal, debugging, port forwarding — inside the same environment where your workflow agents are running.
<Note>
VS Code remote access requires [SSH access](/human-tools/ssh-access), which is only available with the Daytona sandbox provider.
</Note>
## Prerequisites
- [VS Code](https://code.visualstudio.com/) with the [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) extension installed
- A running Daytona sandbox with SSH access enabled
## Connecting to a sandbox
1. Start a workflow with SSH access and a preserved sandbox:
```bash
fabro run workflow.fabro --sandbox daytona --ssh --preserve-sandbox
```
2. Fabro prints the SSH connection command:
```
Sandbox: daytona (fabro-20260307-143022-a3f2)
ssh daytona@fabro-20260307-143022-a3f2.ssh.daytona.io
```
3. In VS Code, open the Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) and run **Remote-SSH: Connect to Host...**
4. Paste the hostname from the SSH command (e.g. `daytona@fabro-20260307-143022-a3f2.ssh.daytona.io`)
5. Once connected, open the workspace folder at `/home/daytona/workspace`
VS Code installs its server component on the sandbox automatically. After the initial setup, you have full IDE access to the remote environment.
## What you can do
Once connected, VS Code operates as if the sandbox filesystem were local:
- **Edit files** — Full IntelliSense, code navigation, and refactoring on the sandbox filesystem
- **Terminal** — Open integrated terminals that run directly on the sandbox
- **Debug** — Attach debuggers to processes running in the sandbox using standard launch configurations
- **Port forwarding** — Access web servers and other services running in the sandbox from your local browser
- **Extensions** — VS Code extensions install on the sandbox automatically, so linters, formatters, and language servers work as expected
## Tips
- **Use `--preserve-sandbox`** — Without it, the sandbox is destroyed when the workflow finishes and your VS Code session disconnects. Combine with `auto_stop_interval` in your [run config](/execution/run-configuration) to control idle timeout.
- **Pair with human gates** — When a workflow pauses at a [human gate](/workflows/human-in-the-loop), connect via VS Code to review the agent's changes before approving.
- **SSH credential lifetime** — Daytona SSH credentials expire after 60 minutes. If your VS Code session disconnects, you'll need to start a new run with `--ssh` to get fresh credentials.