GitHub - BandarLabs/sandboxflow: Visual node-based workflow manager for sandboxes and LLMs

2 min read Original article ↗

Sandbox Flow Playground

Sandbox Flow is a visual workflow builder for running sandboxes, LLMs, and browser automation in one canvas.

What You Can Build

demosandboxflow.mp4
  • Sandbox pipelines across InstaVM, E2B, and Daytona
  • LLM chains across OpenAI and Anthropic
  • Browser automation with Cloudflare Browser Rendering
  • Mixed graphs where node output feeds downstream nodes using {{node_id}}

Key Features

  • Three node groups in one canvas:
    • Sandbox: InstaVM / E2B / Daytona
    • LLM: OpenAI / Anthropic
    • Browser: Cloudflare Browser Rendering
  • Per-sandbox execution mode switch: Python or Bash
  • Pipeline execution in dependency order
  • Variable substitution with {{node_id}} (raw multiline output supported)
  • File browser support across sandbox providers
  • Environment fallback for API keys when UI fields are empty
  • One-click Python workflow export
  • AI graph generation from natural language

Visual Walkthrough

  1. Sandbox Node (InstaVM / E2B / Daytona)

Sandbox node

  1. LLM Node (OpenAI / Anthropic)

LLM node

  1. Browser Node (Cloudflare Browser Rendering)

Browser node

  1. Duplicate Feature (duplicate a node while reusing the same VM/session)

Duplicate a VM

  1. Browse Files Feature (explore VM directories and download files)

Browse files in VM

  1. Experimental Graph Creator (generate a graph from a natural-language prompt)

Experimental graph creator

Quick Start

1. Install dependencies

pip install -r requirements.txt

2. Set API keys (optional but recommended)

If keys are not supplied in the UI, Sandbox Flow reads from environment variables:

export INSTAVM_API_KEY=...
export E2B_API_KEY=...
export DAYTONA_API_KEY=...
export OPENAI_API_KEY=...
export ANTHROPIC_API_KEY=...
export CLOUDFLARE_API_TOKEN=...
export CLOUDFLARE_ACCOUNT_ID=...

3. Run

python sandbox_visualizer.py

Open: http://localhost:8089

Usage Notes

  • Use {{node_id}} in a node command to inject a previous node's output.
  • For sandbox nodes, choose Python or Bash per node before execution.
  • Browser nodes accept either:
    • A plain URL (defaults to screenshot action), or
    • JSON payload/command supported by Cloudflare Browser Rendering endpoint logic.

API Endpoints

  • GET /api/nodes
  • POST /api/nodes
  • DELETE /api/nodes
  • DELETE /api/nodes/{node_id}
  • POST /api/nodes/{node_id}/execute
  • POST /api/nodes/{node_id}/download
  • POST /api/nodes/{node_id}/connect
  • DELETE /api/edges/{edge_id}
  • POST /api/pipeline/execute
  • POST /api/graph/generate