mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
These commands all operate on a run's sandbox environment. Grouping them under `fabro sandbox` makes the mental model clear and avoids confusion with `fabro asset cp`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
53 lines
2.8 KiB
Text
53 lines
2.8 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 a preserved Daytona sandbox:
|
|
|
|
```bash
|
|
fabro run workflow.fabro --sandbox daytona --preserve-sandbox
|
|
```
|
|
|
|
2. Use `fabro sandbox ssh` to get the connection command:
|
|
|
|
```bash
|
|
fabro sandbox ssh <run-id> --print
|
|
```
|
|
|
|
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 by default. If your VS Code session disconnects, run `fabro sandbox ssh <run-id>` again to get fresh credentials (use `--ttl` to set a custom expiry).
|