# Freestyle Docs Documentation for Freestyle VMs and Freestyle Git. ## Pages - [Freestyle](/docs): Infrastructure for code your product runs but didn't write. - [Quickstart](/docs/quickstart): Install Freestyle and create your first VM. - [Freestyle VMs](/docs/vms): Create and control fast Linux virtual machines for agent workspaces and user sessions. - [VM Lifecycle](/docs/vms/lifecycle): Understand the VM states Freestyle exposes: running, stopped, forked, and deleted. - [SSH Access](/docs/vms/ssh): SSH into Freestyle VMs with scoped identity tokens. - [Client Sessions](/docs/vms/client-sessions): Let browser clients operate existing Freestyle VMs with scoped access tokens. - [VM Domains](/docs/vms/domains): Route HTTPS traffic from custom domains to services running inside Freestyle VMs. - [Domain Verification](/docs/vms/domain-verification): Verify that you own a custom domain before routing it to a Freestyle VM. - [Domain DNS](/docs/vms/domain-dns): Configure DNS records for custom domains that route to Freestyle VMs. - [Domain Mappings](/docs/vms/domain-mappings): Create, list, and delete mappings from custom domains to VM ports. - [Domains CLI](/docs/vms/domains-cli): Use the Freestyle CLI to verify domains and map them to VM ports. - [VPCs](/docs/vms/network/vpcs): Create private networks for Freestyle VMs and attach VM network interfaces to them. - [VPNs](/docs/vms/network/vpns): Use WireGuard to connect your computer to a Freestyle VPC. - [PTY Sessions](/docs/vms/pty): Open persistent interactive shells on a VM that survive WebSocket disconnects, VM suspends, and forks. - [Freestyle Git](/docs/git): Create and manage multi-tenant Git repositories for user- and agent-generated code. - [Repositories](/docs/git/repositories): Create, list, delete, and authenticate Freestyle Git repositories. - [Git API](/docs/git/api): Read and modify repository data through Freestyle Git APIs. - [Search](/docs/git/search): Search repository contents, filenames, commit messages, and diffs. - [Triggers](/docs/git/triggers): Send webhooks when Freestyle Git repositories receive pushes. - [GitHub Sync](/docs/git/github-sync): Synchronize Freestyle Git repositories with GitHub repositories. - [Freestyle CLI](/docs/cli): Install and use the Freestyle CLI for local VM and Git workflows. - [VM CLI](/docs/vms/cli): Use the Freestyle CLI for quick VM operations and debugging. - [Git CLI](/docs/git/cli): Use Freestyle CLI commands for Git repository lifecycle operations. - [Guides](/docs/guides): Task-oriented How-To guides for getting things done with Freestyle. - [How to Give Your OpenAI Agent a Sandbox](/docs/guides/give-your-openai-agent-a-sandbox): Give an OpenAI Agents SDK agent a fresh Linux VM by implementing the SDK's SandboxClient on Freestyle — run commands, and expose any port the agent serves as a real HTTPS domain. Then watch a computer-use agent inspect the machine, write code, and run it. Bring an OpenAI key. - [How to Give Your Mastra Agent a Sandbox](/docs/guides/give-your-mastra-agent-a-sandbox): Give a Mastra agent a fresh Linux VM to work in by implementing Mastra's Workspace sandbox interface on Freestyle — then watch a computer-use agent inspect the machine, write code, and run it. Bring a model API key. - [How to Run Claude Code in a Sandbox](/docs/guides/run-claude-code-in-a-sandbox): Bake the Claude Code CLI into a VM snapshot, run it interactively over the PTY API, run one-off prompts, and drive it from the Claude Agent SDK with spawnClaudeCodeProcess. - [How to Run GitHub Copilot in a Sandbox](/docs/guides/run-github-copilot-in-a-sandbox): Run the GitHub Copilot CLI headless inside a sandbox and drive it from the Copilot SDK over a private VPC — or from your own machine over a WireGuard VPN. The runtime link is raw-TCP JSON-RPC, so it needs VPC reachability and a fine-grained Copilot token, not an HTTPS domain or a classic PAT. - [How to Run OpenClaw in a Sandbox](/docs/guides/run-openclaw-in-a-sandbox): Install OpenClaw in a VM snapshot, run its agent gateway under systemd, and open the web UI in your browser over a Freestyle domain with token auth — HTTP and WebSocket proxied directly. Bring an OpenAI key for the model. - [How to Run Node.js in a Sandbox](/docs/guides/run-nodejs-in-a-sandbox): Build a reusable VM snapshot with the Node.js runtime, then run as many JavaScript snippets as you like on one long-lived sandbox VM. - [How to Run Bun in a Sandbox](/docs/guides/run-bun-in-a-sandbox): Bake the Bun runtime into a VM snapshot, then reuse one sandbox VM to run as much TypeScript and JavaScript as you like. - [How to Run Deno in a Sandbox](/docs/guides/run-deno-in-a-sandbox): Bake the Deno runtime into a VM snapshot, then reuse one isolated sandbox to run as many TypeScript snippets as you like — or boot the same snapshot as a public HTTP server. - [How to Run Python in a Sandbox](/docs/guides/run-python-in-a-sandbox): Build a reusable VM snapshot with Python, then run many scripts on one long-lived, isolated sandbox VM. - [How to Run Python with uv in a Sandbox](/docs/guides/run-python-with-uv-in-a-sandbox): Bake uv into a VM snapshot, then reuse one sandbox to run many Python scripts with a small helper. - [How to Run Java in a Sandbox](/docs/guides/run-java-in-a-sandbox): Bake the JDK into a VM snapshot, boot one VM, and run many Java programs on it with an isolated, reusable runJava() helper — then serve a Java HTTP server from the same snapshot over HTTPS. - [How to Run Ruby in a Sandbox](/docs/guides/run-ruby-in-a-sandbox): Build a reusable VM snapshot with the Ruby runtime, then run as many Ruby scripts as you like on one long-lived sandbox VM. - [How to Run Go in a Sandbox](/docs/guides/run-go-in-a-sandbox): Bake the Go toolchain into a reusable VM snapshot, then run as many Go programs as you like on one long-lived sandbox VM. - [How to Run PHP in a Sandbox](/docs/guides/run-php-in-a-sandbox): Bake the PHP runtime into a VM snapshot, boot one VM, and run many PHP scripts on it with an isolated, reusable runPhp() helper — then serve PHP over a public domain from the same snapshot. - [How to Run Postgres in a Sandbox](/docs/guides/run-postgres-in-a-sandbox): Build a snapshot with PostgreSQL already running, then boot a VM and run SQL queries against the live database. - [How to Run Redis in a Sandbox](/docs/guides/run-redis-in-a-sandbox): Bake a running Redis server into a VM snapshot, then create fresh sandboxes that serve key-value queries instantly with no startup step. - [How to Run MongoDB in a Sandbox](/docs/guides/run-mongodb-in-a-sandbox): Bake a running MongoDB server into a VM snapshot, then run real document insert and find queries inside an isolated sandbox with no startup wait. - [How to Run Supabase in a Sandbox](/docs/guides/run-supabase-in-a-sandbox): Boot a VM from a Docker snapshot, bring up the full Supabase stack — Postgres, Auth, REST, Realtime, Storage, and Studio behind a Kong gateway — and reach its APIs on a public domain. - [How to Run Convex in a Sandbox](/docs/guides/run-convex-in-a-sandbox): Boot a VM from a Docker snapshot, bring up the official self-hosted Convex backend with docker compose, expose it on a public domain, and connect a Convex project to it. - [How to Run Hasura in a Sandbox](/docs/guides/run-hasura-in-a-sandbox): Bring up the Hasura GraphQL Engine and its Postgres database with docker compose inside a VM, then open the Console on a public domain. - [How to Run InstantDB in a Sandbox](/docs/guides/run-instantdb-in-a-sandbox): Boot a VM from a Docker snapshot, bring up InstantDB's self-hosting compose stack, expose its sync engine on a public domain, and connect a client. - [How to Run Hexclave in a Sandbox](/docs/guides/run-hexclave-in-a-sandbox): Boot a VM from a Docker snapshot, bring up Hexclave (formerly Stack Auth) — its API, dashboard, Postgres, and ClickHouse — behind an nginx path split, and open it on a public domain. - [How to Run a Jupyter Notebook Server in a Sandbox](/docs/guides/run-jupyter-in-a-sandbox): Bake JupyterLab into a VM snapshot, boot it as a systemd service, and open the notebook on a public domain. - [How to Run a Vite Dev Server in a Sandbox](/docs/guides/run-vite-in-a-sandbox): Bake a Vite dev server into a VM snapshot, run it under systemd, and open it on a public domain. - [How to Run a Next.js Dev Server in a Sandbox](/docs/guides/run-nextjs-in-a-sandbox): Bake a Next.js dev server into a VM snapshot, run it under systemd, and open it on a public domain. - [How to Run VS Code in the Browser in a Sandbox](/docs/guides/run-vs-code-in-a-sandbox): Bake code-server — VS Code in the browser — into a VM snapshot, run it under systemd, and open the editor on a public domain. - [How to Run a Web Terminal in a Sandbox](/docs/guides/run-a-web-terminal-in-a-sandbox): Stream a VM's PTY to the browser — bridge it to an xterm.js client through a small WebSocket proxy (read-only or interactive), or bake ttyd into a snapshot. - [How to Run Docker in a Sandbox](/docs/guides/run-docker-in-a-sandbox): Bake the Docker Engine and Compose plugin into a VM snapshot, then boot sandboxes that run containers and multi-service docker compose stacks — with native overlayfs storage, cgroup v2, and published ports — and stream container logs live. ## Markdown - [Freestyle](/docs/index.md) - [Quickstart](/docs/quickstart.md) - [Freestyle VMs](/docs/vms.md) - [VM Lifecycle](/docs/vms/lifecycle.md) - [SSH Access](/docs/vms/ssh.md) - [Client Sessions](/docs/vms/client-sessions.md) - [VM Domains](/docs/vms/domains.md) - [Domain Verification](/docs/vms/domain-verification.md) - [Domain DNS](/docs/vms/domain-dns.md) - [Domain Mappings](/docs/vms/domain-mappings.md) - [Domains CLI](/docs/vms/domains-cli.md) - [VPCs](/docs/vms/network/vpcs.md) - [VPNs](/docs/vms/network/vpns.md) - [PTY Sessions](/docs/vms/pty.md) - [Freestyle Git](/docs/git.md) - [Repositories](/docs/git/repositories.md) - [Git API](/docs/git/api.md) - [Search](/docs/git/search.md) - [Triggers](/docs/git/triggers.md) - [GitHub Sync](/docs/git/github-sync.md) - [Freestyle CLI](/docs/cli.md) - [VM CLI](/docs/vms/cli.md) - [Git CLI](/docs/git/cli.md) - [Guides](/docs/guides.md) - [How to Give Your OpenAI Agent a Sandbox](/docs/guides/give-your-openai-agent-a-sandbox.md) - [How to Give Your Mastra Agent a Sandbox](/docs/guides/give-your-mastra-agent-a-sandbox.md) - [How to Run Claude Code in a Sandbox](/docs/guides/run-claude-code-in-a-sandbox.md) - [How to Run GitHub Copilot in a Sandbox](/docs/guides/run-github-copilot-in-a-sandbox.md) - [How to Run OpenClaw in a Sandbox](/docs/guides/run-openclaw-in-a-sandbox.md) - [How to Run Node.js in a Sandbox](/docs/guides/run-nodejs-in-a-sandbox.md) - [How to Run Bun in a Sandbox](/docs/guides/run-bun-in-a-sandbox.md) - [How to Run Deno in a Sandbox](/docs/guides/run-deno-in-a-sandbox.md) - [How to Run Python in a Sandbox](/docs/guides/run-python-in-a-sandbox.md) - [How to Run Python with uv in a Sandbox](/docs/guides/run-python-with-uv-in-a-sandbox.md) - [How to Run Java in a Sandbox](/docs/guides/run-java-in-a-sandbox.md) - [How to Run Ruby in a Sandbox](/docs/guides/run-ruby-in-a-sandbox.md) - [How to Run Go in a Sandbox](/docs/guides/run-go-in-a-sandbox.md) - [How to Run PHP in a Sandbox](/docs/guides/run-php-in-a-sandbox.md) - [How to Run Postgres in a Sandbox](/docs/guides/run-postgres-in-a-sandbox.md) - [How to Run Redis in a Sandbox](/docs/guides/run-redis-in-a-sandbox.md) - [How to Run MongoDB in a Sandbox](/docs/guides/run-mongodb-in-a-sandbox.md) - [How to Run Supabase in a Sandbox](/docs/guides/run-supabase-in-a-sandbox.md) - [How to Run Convex in a Sandbox](/docs/guides/run-convex-in-a-sandbox.md) - [How to Run Hasura in a Sandbox](/docs/guides/run-hasura-in-a-sandbox.md) - [How to Run InstantDB in a Sandbox](/docs/guides/run-instantdb-in-a-sandbox.md) - [How to Run Hexclave in a Sandbox](/docs/guides/run-hexclave-in-a-sandbox.md) - [How to Run a Jupyter Notebook Server in a Sandbox](/docs/guides/run-jupyter-in-a-sandbox.md) - [How to Run a Vite Dev Server in a Sandbox](/docs/guides/run-vite-in-a-sandbox.md) - [How to Run a Next.js Dev Server in a Sandbox](/docs/guides/run-nextjs-in-a-sandbox.md) - [How to Run VS Code in the Browser in a Sandbox](/docs/guides/run-vs-code-in-a-sandbox.md) - [How to Run a Web Terminal in a Sandbox](/docs/guides/run-a-web-terminal-in-a-sandbox.md) - [How to Run Docker in a Sandbox](/docs/guides/run-docker-in-a-sandbox.md)