From 4707589943e94edf8dc075c07eee1ac4b5369075 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sat, 7 Mar 2026 17:51:01 -0500 Subject: [PATCH] Add Sprites docs page and mark Slack/exe.dev as in progress Co-Authored-By: Claude Opus 4.6 --- docs/administration/sandboxing.mdx | 2 +- docs/docs.json | 1 + docs/integrations/exe-dev.mdx | 2 +- docs/integrations/slack.mdx | 4 ++ docs/integrations/sprites.mdx | 64 ++++++++++++++++++++++++++++++ 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 docs/integrations/sprites.mdx diff --git a/docs/administration/sandboxing.mdx b/docs/administration/sandboxing.mdx index d6ed8fe94..c14c37962 100644 --- a/docs/administration/sandboxing.mdx +++ b/docs/administration/sandboxing.mdx @@ -5,7 +5,7 @@ description: "Sandboxing workflow execution" Sandboxes isolate agent execution from the host machine. When an agent runs a shell command, edits a file, or searches code, it does so inside a sandbox — preventing unintended side effects on the host and providing a reproducible environment for each run. -Arc supports four sandbox providers: `local` (no isolation), `docker` (container-level), `daytona` (cloud VM), and `exe` (cloud VM via [exe.dev](https://exe.dev)). See [Environments](/execution/environments) for full provider-specific configuration. +Arc supports five sandbox providers: `local` (no isolation), `docker` (container-level), `daytona` (cloud VM), `exe` (cloud VM via [exe.dev](https://exe.dev)), and `sprites` (persistent VM via [Sprites](https://sprites.dev), in progress). See [Environments](/execution/environments) for full provider-specific configuration. ## Network access control diff --git a/docs/docs.json b/docs/docs.json index 6a9bd27e1..e2f1d564e 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -93,6 +93,7 @@ "integrations/daytona", "integrations/slack", "integrations/exe-dev", + "integrations/sprites", "integrations/brave-search" ] }, diff --git a/docs/integrations/exe-dev.mdx b/docs/integrations/exe-dev.mdx index 2d75113c2..cb17f844d 100644 --- a/docs/integrations/exe-dev.mdx +++ b/docs/integrations/exe-dev.mdx @@ -4,7 +4,7 @@ description: "Run Arc workflows in fast ephemeral VMs from exe.dev" --- -The exe.dev sandbox provider is in **beta** and not yet generally available. This page describes the planned integration. We'll update it when exe.dev support ships. +The exe.dev sandbox provider is **in progress** and not yet available for use. This page describes the planned integration. We'll update it when exe.dev support ships. [exe.dev](https://exe.dev) provides fast ephemeral cloud VMs for Arc workflows. Each run gets a fresh VM with full machine-level isolation, connected via SSH. diff --git a/docs/integrations/slack.mdx b/docs/integrations/slack.mdx index 2b4769138..bcea44cfc 100644 --- a/docs/integrations/slack.mdx +++ b/docs/integrations/slack.mdx @@ -3,6 +3,10 @@ title: "Slack" description: "Answer human-in-the-loop questions directly from Slack" --- + +The Slack integration is **in progress** and not yet available for use. This page describes the planned integration. We'll update it when Slack support ships. + + Arc's Slack integration lets your team answer [human-in-the-loop](/workflows/human-in-the-loop) questions without leaving Slack. When a workflow reaches a human gate, Arc posts an interactive message to a Slack channel with buttons for each option. Team members click a button (or reply in a thread for freeform input), and the workflow continues. The integration uses Slack's [Socket Mode](https://api.slack.com/apis/socket-mode), so no public URL or webhook endpoint is required — Arc connects outbound over a WebSocket. diff --git a/docs/integrations/sprites.mdx b/docs/integrations/sprites.mdx new file mode 100644 index 000000000..ada2b4827 --- /dev/null +++ b/docs/integrations/sprites.mdx @@ -0,0 +1,64 @@ +--- +title: "Sprites" +description: "Run Arc workflows in persistent Sprites VMs from Fly.io" +--- + + +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. + + +[Sprites](https://sprites.dev) (by Fly.io) provides persistent, hardware-isolated Linux microVMs for Arc 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://-.sprites.app/`) +- VMs auto-sleep after inactivity and wake on the next command +- Pre-installed toolchains include ripgrep + +## Configuration + +```bash +arc run start 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, Arc 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.