# Freestyle > Infrastructure for code you didn't write ## Pages - [Home](https://www.freestyle.sh/) - [Blog](https://www.freestyle.sh/blog) - [Pricing](https://www.freestyle.sh/pricing) - [Products](https://www.freestyle.sh/products) - [Careers](https://www.freestyle.sh/careers) - [VMs](https://www.freestyle.sh/products/vms) - [Git](https://www.freestyle.sh/products/git) - [Compare](https://www.freestyle.sh/compare) - [Freestyle vs Daytona](https://www.freestyle.sh/compare/daytona) ## Articles - [Designing APIs for Agents](https://www.freestyle.sh/blog/opinion/designing-apis-for-agents): Good design for agents is not the same as good design for humans. - [The Top 5 Sandboxes for Claude Code](https://www.freestyle.sh/blog/product/top-5-claude-code-sandboxes): A ranked comparison of the best Claude Code sandbox platforms for teams that need isolated coding agents, real terminals, dev servers, previews, state, and safe review. - [The Top 5 AI Agent Runtime Platforms](https://www.freestyle.sh/blog/product/top-5-ai-agent-runtime-platforms): A ranked comparison of the strongest runtime platforms for AI agent products that need durable machines, live services, terminals, state, and real operating-system behavior. - [The Top 5 Sandboxes for OpenAI Agents SDK](https://www.freestyle.sh/blog/product/top-5-openai-agents-sdk-sandboxes): A ranked comparison of the best sandboxes for OpenAI Agents SDK workflows, including Freestyle VMs, Runloop, E2B, Daytona, and Vercel Sandbox. - [Deno Sandbox vs VMs for Deno](https://www.freestyle.sh/blog/product/deno-sandbox-vs-freestyle-vms-for-deno): Deno Sandbox is a strong Deno Deploy-native microVM for short-lived untrusted code, but serious Deno coding agents need a real Linux VM with durable terminals, services, ports, SSH, forks, and long-running state. - [Your Agent Does Not Need a Filesystem. It Needs a Source of Truth](https://www.freestyle.sh/blog/opinion/agent-filesystem-source-of-truth): AI agent filesystem debates are really about truth: what changed, what is running, what can be resumed, and what a human can safely trust. - [AI Agent State Should Be Checkpointed, Not Synced](https://www.freestyle.sh/blog/opinion/ai-agent-state-should-be-checkpointed-not-synced): Filesystem debates for AI agents miss the operational question: when should an agent freeze a working moment, branch it, resume it, or discard it? - [AI Agent Storage Needs Three Layers, Not One Filesystem](https://www.freestyle.sh/blog/opinion/ai-agent-storage-three-layers): AI agent storage debates collapse files, memory, artifacts, and runtime state into one overloaded filesystem. The better architecture separates durable records, active workspaces, and evidence. - [The Best AI Sandbox for Agent CLIs](https://www.freestyle.sh/blog/product/best-ai-sandbox-for-agent-clis): Agent CLIs need more than command execution. The best AI sandbox for Claude Code, Copilot, OpenClaw, and headless coding agents is a real Linux VM with PTYs, services, ports, private networking, and durable runtime state. - [Cloud Storage vs Working Directories for AI Agents](https://www.freestyle.sh/blog/product/cloud-storage-vs-working-directories-ai-agents): AI agents need object storage for durable artifacts, but their active work belongs in a real Linux working directory with processes, terminals, ports, and lifecycle. - [Persistent Volumes vs VM Snapshots for AI Agents](https://www.freestyle.sh/blog/product/persistent-volumes-vs-vm-snapshots-ai-agents): AI agents need persistent storage, but a volume is not the same as a recoverable workspace. Compare persistent volumes, filesystems, and VM snapshots for stateful agent products. - [Best Product to Build the Next Replit](https://www.freestyle.sh/blog/product/replit-alternative-ai-agents): If you want to build the next Replit-style AI app builder, start with a programmable Linux VM runtime with durable terminals, ports, SSH, forks, and long-running state. - [Vercel Sandbox Alternative for AI Agents](https://www.freestyle.sh/blog/product/vercel-sandbox-alternative-ai-agents): Vercel Sandbox is strong for Vercel-native code execution, but AI agent products that need an always-available workspace, durable terminals, SSH, ports, and machine-level forks need a real VM. - [The Best AI Sandbox for Docker Compose](https://www.freestyle.sh/blog/product/best-ai-sandbox-docker-compose): AI agents that need Docker Compose need more than a command runner. They need a real Linux VM that can run dockerd, multi-container stacks, logs, ports, snapshots, and durable sessions. - [AWS Fargate Alternative for AI Agents](https://www.freestyle.sh/blog/product/aws-fargate-alternative-ai-agents): AWS Fargate is strong serverless container infrastructure, but AI agents that need durable sessions, terminals, ports, files, SSH, and forks need a real Linux VM. - [The Best AI Sandbox for QA Agents Runs the Whole Test Rig](https://www.freestyle.sh/blog/product/best-ai-sandbox-for-qa-agents): AI QA agents need more than a code runner or browser API. The best sandbox for QA agents is a real Linux VM that can run the app, tests, services, browser, logs, and artifacts together. - [The Best AI Sandbox for WebSocket Apps](https://www.freestyle.sh/blog/product/best-ai-sandbox-websocket-apps): WebSocket-heavy agent products need more than one-shot code execution. The best AI sandbox for realtime apps is a real Linux VM that can run services, expose ports, keep terminals alive, and preserve state. - [Judge0 Alternative for AI Agents](https://www.freestyle.sh/blog/product/judge0-alternative-ai-agents): Judge0 is excellent for online code execution, but AI agent products need more than submissions and stdout. They need a real Linux VM with terminals, services, files, ports, SSH, and long-running state. - [Riza Alternative for AI Agents](https://www.freestyle.sh/blog/product/riza-alternative-ai-agents): Riza is a focused code interpreter API for executing generated code, but AI agents that need terminals, services, ports, files, SSH, and long-running state need a real Linux VM. - [AWS Lambda Alternative for Long-Running AI Agents](https://www.freestyle.sh/blog/product/aws-lambda-alternative-ai-agents): AWS Lambda is excellent for event-driven functions, but long-running AI agents need a real Linux VM with persistent processes, files, terminals, ports, and forkable state. --- ## Documentation To learn more about Freestyle's products and services, see the full documentation at https://www.freestyle.sh/docs: # Freestyle Docs Documentation and guides for Freestyle VMs, Freestyle Git, and sandbox workflows. ## 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 SandboxClient. - [How to Give Your Mastra Agent a Sandbox](/docs/guides/give-your-mastra-agent-a-sandbox): Give a Mastra agent a fresh Linux VM by implementing Mastra's Workspace sandbox interface. - [How to Run Claude Code in a Sandbox](/docs/guides/run-claude-code-in-a-sandbox): Bake Claude Code into a VM snapshot, then run it over PTY, one-off prompts, or the Claude Agent SDK. - [How to Run GitHub Copilot in a Sandbox](/docs/guides/run-github-copilot-in-a-sandbox): Run the GitHub Copilot CLI headless in a sandbox and drive it over a private VPC or WireGuard VPN. - [How to Run OpenClaw in a Sandbox](/docs/guides/run-openclaw-in-a-sandbox): Run OpenClaw in a VM snapshot and open its web UI. - [How to Run Chromium in a Sandbox](/docs/guides/run-chromium-and-chrome-in-a-sandbox): Run Chrome-family browsers headless or headed, connect over CDP, watch through noVNC, and give a computer-use agent control. - [How to Run GNOME in a Sandbox](/docs/guides/run-gnome-in-a-sandbox): Build a GNOME desktop with TigerVNC, Chromium, and noVNC, then snapshot and reuse it. - [How to Stream Audio Alongside noVNC](/docs/guides/stream-audio-with-vnc-in-a-sandbox): Add browser audio to a noVNC desktop with a PulseAudio null sink and a sidecar WebM/Opus stream served from the same VM. - [How to Run Node.js in a Sandbox](/docs/guides/run-nodejs-in-a-sandbox): Bake Node.js into a VM snapshot, then run JavaScript snippets on one sandbox VM. - [How to Run Bun in a Sandbox](/docs/guides/run-bun-in-a-sandbox): Bake Bun into a VM snapshot, then run TypeScript and JavaScript on one sandbox VM. - [How to Run Deno in a Sandbox](/docs/guides/run-deno-in-a-sandbox): Bake Deno into a VM snapshot, then run TypeScript snippets or serve HTTP from the same sandbox. - [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, then run Java programs and serve HTTP from the same sandbox. - [How to Run Ruby in a Sandbox](/docs/guides/run-ruby-in-a-sandbox): Bake Ruby into a VM snapshot, then run Ruby scripts on one sandbox VM. - [How to Run Go in a Sandbox](/docs/guides/run-go-in-a-sandbox): Bake Go into a VM snapshot, then run Go programs on one sandbox VM. - [How to Run PHP in a Sandbox](/docs/guides/run-php-in-a-sandbox): Bake PHP into a VM snapshot, then run scripts and serve PHP from the same sandbox. - [How to Run Postgres in a Sandbox](/docs/guides/run-postgres-in-a-sandbox): Bake PostgreSQL into a VM snapshot, then boot a VM and run SQL queries. - [How to Run Redis in a Sandbox](/docs/guides/run-redis-in-a-sandbox): Bake Redis into a VM snapshot, then boot sandboxes with a ready key-value store. - [How to Run MongoDB in a Sandbox](/docs/guides/run-mongodb-in-a-sandbox): Bake MongoDB into a VM snapshot, then run document queries with no startup wait. - [How to Run Supabase in a Sandbox](/docs/guides/run-supabase-in-a-sandbox): Run the Supabase stack in a Docker-backed VM and reach its APIs on a public domain. - [How to Run Convex in a Sandbox](/docs/guides/run-convex-in-a-sandbox): Run the self-hosted Convex backend in a Docker-backed VM and connect a Convex project to it. - [How to Run Hasura in a Sandbox](/docs/guides/run-hasura-in-a-sandbox): Run Hasura and Postgres in a VM, then open the Console on a public domain. - [How to Run InstantDB in a Sandbox](/docs/guides/run-instantdb-in-a-sandbox): Run InstantDB's self-hosting stack in a Docker-backed VM and expose its sync engine on a public domain. - [How to Run Hexclave in a Sandbox](/docs/guides/run-hexclave-in-a-sandbox): Run Hexclave in a Docker-backed VM and open its API and dashboard 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, then open the notebook on a public domain. - [How to Run Iron Proxy on a Router VM](/docs/guides/run-iron-proxy-on-a-router-vm): Route a VM through a router VM that runs iron-proxy, then configure the client VM to use that proxy by default. - [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 into a VM snapshot, then open VS Code in the browser. - [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 with xterm.js or ttyd. - [How to Run Docker in a Sandbox](/docs/guides/run-docker-in-a-sandbox): Bake Docker into a VM snapshot, then boot sandboxes that run containers and Docker Compose stacks. - [How to Run Android in a Sandbox](/docs/guides/run-android-in-a-sandbox): Build a reusable Android 15 emulator image, watch it through noVNC, and give a computer-use agent control through adb. ## 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 Chromium in a Sandbox](/docs/guides/run-chromium-and-chrome-in-a-sandbox.md) - [How to Run GNOME in a Sandbox](/docs/guides/run-gnome-in-a-sandbox.md) - [How to Stream Audio Alongside noVNC](/docs/guides/stream-audio-with-vnc-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 Iron Proxy on a Router VM](/docs/guides/run-iron-proxy-on-a-router-vm.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) - [How to Run Android in a Sandbox](/docs/guides/run-android-in-a-sandbox.md)