mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-05 08:10:39 +00:00
64 lines
2.1 KiB
Text
64 lines
2.1 KiB
Text
---
|
|
title: "Sprites"
|
|
description: "Run Fabro workflows in persistent Sprites VMs from Fly.io"
|
|
---
|
|
|
|
<Warning>
|
|
The Sprites sandbox provider is **in progress** and not yet available for use. This page describes the planned integration. We'll update it when Sprites support ships.
|
|
</Warning>
|
|
|
|
[Sprites](https://sprites.dev) (by Fly.io) provides persistent, hardware-isolated Linux microVMs for Fabro workflows. Unlike ephemeral providers, Sprites VMs persist across runs with auto-sleep/wake — so dependencies stay installed and caches stay warm.
|
|
|
|
## How it works
|
|
|
|
- Each run creates (or reuses) a Sprite VM via the `sprite` CLI
|
|
- Agent tool calls (shell commands, file edits, grep, glob) execute via `sprite exec` inside the VM
|
|
- The working directory is `/home/sprite`
|
|
- Each Sprite has a preview URL (e.g. `https://<name>-<org>.sprites.app/`)
|
|
- VMs auto-sleep after inactivity and wake on the next command
|
|
- Pre-installed toolchains include ripgrep
|
|
|
|
## Configuration
|
|
|
|
```bash
|
|
fabro run workflow.dot --sandbox sprites
|
|
```
|
|
|
|
```toml title="run.toml"
|
|
[sandbox]
|
|
provider = "sprites"
|
|
```
|
|
|
|
A full configuration example with all Sprites-specific options:
|
|
|
|
```toml title="run.toml"
|
|
[sandbox]
|
|
provider = "sprites"
|
|
|
|
[sandbox.sprites]
|
|
org = "my-org"
|
|
url_auth = "public"
|
|
sprite_name = "my-existing-sprite"
|
|
```
|
|
|
|
| Option | Description |
|
|
|---|---|
|
|
| `org` | Sprites organization name (passed as `--org` to the CLI) |
|
|
| `url_auth` | Preview URL auth mode: `"public"` or `"sprite"` (default) |
|
|
| `sprite_name` | Reuse an existing Sprite instead of creating a new one. Skips create and destroy — useful for development |
|
|
|
|
## Prerequisites
|
|
|
|
- The `sprite` CLI installed and authenticated (`sprite login`)
|
|
- A `SPRITE_TOKEN` environment variable (or interactive login)
|
|
|
|
## Reusing Sprites
|
|
|
|
Set `sprite_name` to reuse an existing Sprite across runs. When set, Fabro skips creation and destruction — the Sprite persists between runs with its filesystem intact:
|
|
|
|
```toml title="run.toml"
|
|
[sandbox.sprites]
|
|
sprite_name = "my-dev-sprite"
|
|
```
|
|
|
|
This is useful for development workflows where you want to keep installed dependencies and project state between runs.
|