Create a sandbox, run code, serve a URL, and fork it from a snapshot
A sandbox is a disposable environment your code creates, uses, and throws away. In about five minutes you’ll create one, run code in it, serve a URL, fork it from a memory snapshot, and attach a GPU. For a persistent machine that keeps its disk between sessions, start with the VM quickstart.
Using Cursor, Claude Code, or Codex? Run beam setup agent to connect your coding agent to your workspace. See agent setup.
Finish signing in through your browser, then run beam whoami to check your workspace.
Run Code, Serve a URL, and Fork
Save this as sandbox.py and run python sandbox.py:
sandbox.py
from beam import Sandbox# Create a sandbox and run codesb = Sandbox(cpu=1, memory="1Gi", keep_warm_seconds=600).create()print(sb.process.run_code("print(sum(range(10)))").stdout) # 45# Start a web server and get a URLsb.fs.write_text("/workspace/index.html", "Hello from a Beam sandbox")sb.process.exec( "python3", "-m", "http.server", "8000", "--bind", "0.0.0.0", cwd="/workspace",)print(sb.expose_port(8000))# Snapshot memory, including the running server, then fork itsnapshot_id = sb.snapshot_memory()sb.terminate()forks = [Sandbox().create_from_memory_snapshot(snapshot_id) for _ in range(3)]for fork in forks: print(fork.list_urls()) # each fork serves its own copy fork.terminate()
Preview URLs are public. Add authentication in your app before serving anything sensitive.
Add a GPU
Attach a GPU with one argument:
from beam import Sandboxsb = Sandbox(gpu="RTX4090", memory="8Gi").create()p = sb.process.exec("nvidia-smi")p.wait()print(p.logs.read())sb.terminate()
Requesting a GPU doesn’t install CUDA libraries. Add packages such as torch to the sandbox image.
Control Outbound Traffic
Each sandbox is isolated from your app and other workloads. Block outbound traffic or allow only specific hostnames, wildcard domains, IPs or CIDRs:
from beam import Sandboxsb = Sandbox(block_network=True).create() # no outbound trafficsb.update_network_permissions(block_network=False, allow_list=[]) # reopen it at runtimesb.terminate()sb = Sandbox(allow_list=["api.openai.com"]).create() # or allow only this APIsb.terminate()
To give the agent credentials, use brokered secrets. The guest receives placeholders; the worker supplies the real values only in HTTPS headers to approved hosts. With block_network=True and secrets, only their approved hosts are reachable. The guest has no automatic Beam workspace token.
Next Steps
Give an Agent a Dev Box
Create a persistent VM that pauses when idle.
Snapshots
Save filesystem or memory state and fork it.
Networking
Preview URLs and outbound rules.
TypeScript SDK
Create and operate sandboxes from Node.js.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Beam","description":"Beam provides CPU and GPU machines for agents, billed by the millisecond: persistent VMs that pause with their memory intact, sandboxes that boot in seconds, and GPU endpoints for inference.","colors":{"primary":"#477ff7","light":"#93c5fd","dark":"#2563eb"},"logo":{"light":"https://mintcdn.com/slai-beam/StmwwthCMFzpzgft/logo/dark-logo.svg?fit=max\u0026auto=format\u0026n=StmwwthCMFzpzgft\u0026q=85\u0026s=23387d001289bc6dcbe6be3f49769690","dark":"https://mintcdn.com/slai-beam/StmwwthCMFzpzgft/logo/light-logo.svg?fit=max\u0026auto=format\u0026n=StmwwthCMFzpzgft\u0026q=85\u0026s=0e0baef0b1593f56b60113ffd67fd744"},"favicon":"https://mintcdn.com/slai-beam/ZujHWu-L9dNBQS2M/logo/favicon.png?fit=max\u0026auto=format\u0026n=ZujHWu-L9dNBQS2M\u0026q=85\u0026s=b6614f50c2766c80749cc429d96a3a05","navbar":{"links":[{"href":"https://join.slack.com/t/beam-cloud/shared_invite/zt-4bf7jalhy-KI0ebGXk4vKpcDofwDjCLA","label":"Community"},{"href":"https://status.beam.cloud","label":"Status"}],"primary":{"type":"button","label":"Dashboard","href":"https://platform.beam.cloud"}},"footer":{"socials":{"website":"https://beam.cloud","github":"https://github.com/beam-cloud/beta9","slack":"https://join.slack.com/t/beam-cloud/shared_invite/zt-4bf7jalhy-KI0ebGXk4vKpcDofwDjCLA"}},"seo":{"metatags":{"og:image":"https://www.beam.cloud/meta-hero.png"},"indexing":"navigable"},"fonts":{"family":"Inter"},"integrations":{"ga4":{"measurementId":"G-XN1SS41L9X"},"posthog":{"apiKey":"phc_VhYc3jzbsDBBGtZHU3fLefqRq6wE8FxZLy1zJk1cLeB","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"markdown":{"instructions":["Install the Beam CLI, sign in, and connect coding agents to the Beam MCP server with `curl -fsSL https://www.beam.cloud/install | sh`. To also create a VM, run `curl -fsSL https://www.beam.cloud/install | sh -s -- --vm`.","VMs are persistent Linux machines without GPUs. Defaults: 4 CPUs, 8 GiB of RAM, a 50 GiB disk, Ubuntu 24.04, and a browser desktop. A running VM accrues usage until you stop, pause, or remove it, or until an idle timeout puts it to sleep.","Stopping a VM keeps its disk and discards RAM and processes. Pausing keeps both, and resuming restores them. To pause after 5 idle minutes and wake on access, run `beam vm update NAME --ttl 300 --idle-action pause --auto-resume`.","Core VM commands: `beam vm new NAME`, `beam vm ssh NAME`, `beam vm sync NAME ./dir`, `beam vm exec NAME -- CMD`, `beam vm expose NAME PORT --protected`, `beam vm fork NAME NEW_NAME`, `beam vm pause NAME`, `beam vm stop NAME`, `beam vm rm NAME`.","For GPUs, use a sandbox or a deployed endpoint. Sandboxes are disposable environments that boot in seconds and fork from snapshots.","Current rates are at https://www.beam.cloud/pricing."]},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Slack Community","icon":"slack","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://join.slack.com/t/beam-cloud/shared_invite/zt-4bf7jalhy-KI0ebGXk4vKpcDofwDjCLA"},{"anchor":"Github","icon":"github","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://github.com/beam-cloud/beta9"},{"anchor":"Twitter","icon":"twitter","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://twitter.com/beam_cloud"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"slai-beam","hasAudioNarration":false,"actualSubdomain":"slai-beam","customDomains":["docs.beam.cloud"],"gitSource":{"type":"github","owner":"slai-labs","repo":"beam-docs","deployBranch":"main","contentDirectory":"","mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aebc6eaa34c0c6c22ffe281","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Documentation","count":83},{"language":"default","tag":"Examples","count":16},{"language":"default","tag":"Building Blocks","count":12},{"language":"default","tag":"Inference","count":11},{"language":"default","tag":"Virtual Machines","count":11},{"language":"default","tag":"Advanced Topics","count":9},{"language":"default","tag":"Start Here","count":9},{"language":"default","tag":"API Reference","count":7},{"language":"default","tag":"Sandboxes","count":7},{"language":"default","tag":"Data and Storage","count":5}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@beam.cloud"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar ul:has(>#topbar-cta-button)>li:not(#topbar-cta-button)>a{padding:0.375rem 0.75rem;border-radius:9999px;background-color:rgb(243 244 246);color:rgb(17 24 39);font-size:0.875rem;line-height:1.25rem;transition:background-color 150ms ease}#navbar ul:has(>#topbar-cta-button)>li:not(#topbar-cta-button)>a:hover{background-color:rgb(229 231 235);color:rgb(17 24 39)}.dark #navbar ul:has(>#topbar-cta-button)>li:not(#topbar-cta-button)>a{background-color:rgb(255 255 255 / 0.08);color:rgb(255 255 255)}.dark #navbar ul:has(>#topbar-cta-button)>li:not(#topbar-cta-button)>a:hover{background-color:rgb(255 255 255 / 0.14);color:rgb(255 255 255)}#topbar-cta-button>a{padding:0.375rem 0.875rem;border-radius:9999px;border-color:transparent;background-color:#477ff7;color:#ffffff;transition:background-color 150ms ease}#topbar-cta-button>a:hover{background-color:#2563eb;color:#ffffff}#topbar-cta-button>a svg{display:none}"}],"page":{"pagePath":"v2/getting-started/quickstart-sandbox","slug":"/v2/getting-started/quickstart-sandbox","pageMetadata":{"title":"Run Agent Code in a Sandbox","sidebarTitle":"Sandboxes","description":"Create a sandbox, run code, serve a URL, and fork it from a snapshot","icon":"box","href":"/v2/getting-started/quickstart-sandbox"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a sandbox, run code, serve a URL, and fork it from a snapshot\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Heading,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A sandbox is a disposable environment your code creates, uses, and throws away. In about five minutes you’ll create one, run code in it, serve a URL, fork it from a memory snapshot, and attach a GPU. For a persistent machine that keeps its disk between sessions, start with the `,_jsx(_components.a,{href:`/v2/getting-started/quickstart-vm`,children:`VM quickstart`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Using Cursor, Claude Code, or Codex? Run `,_jsx(_components.code,{children:`beam setup agent`}),` to connect your coding agent to your workspace. See `,_jsx(_components.a,{href:`/v2/getting-started/add-to-cursor-claude`,children:`agent setup`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`install-and-sign-in`,children:`Install and Sign In`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python3`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` venv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .venv`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`source`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .venv/bin/activate`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`python`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --upgrade`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` beam-client`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`beam`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Finish signing in through your browser, then run `,_jsx(_components.code,{children:`beam whoami`}),` to check your workspace.`]}),`\n`,_jsx(Heading,{level:`2`,id:`run-code-serve-a-url-and-fork`,children:`Run Code, Serve a URL, and Fork`}),`\n`,_jsxs(_components.p,{children:[`Save this as `,_jsx(_components.code,{children:`sandbox.py`}),` and run `,_jsx(_components.code,{children:`python sandbox.py`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:`sandbox.py`,numberOfLines:`22`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`22`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` beam `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Create a sandbox and run code`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`cpu`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`memory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1Gi\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`keep_warm_seconds`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).create()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(sb.process.run_code(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"print(sum(range(10)))\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).stdout) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# 45`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Start a web server and get a URL`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.fs.write_text(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/workspace/index.html\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Hello from a Beam sandbox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.process.exec(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"python3\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-m\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http.server\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"8000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"--bind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.0.0.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` cwd`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/workspace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(sb.expose_port(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`8000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Snapshot memory, including the running server, then fork it`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`snapshot_id `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sb.snapshot_memory()`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.terminate()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`forks `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [Sandbox().create_from_memory_snapshot(snapshot_id) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` _ `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` range`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fork `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` forks:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(fork.list_urls()) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# each fork serves its own copy`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fork.terminate()`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Preview URLs are public. Add authentication in your app before serving anything sensitive.`})}),`\n`,_jsx(Heading,{level:`2`,id:`add-a-gpu`,children:`Add a GPU`}),`\n`,_jsx(_components.p,{children:`Attach a GPU with one argument:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` beam `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`gpu`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RTX4090\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`memory`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"8Gi\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).create()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`p `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sb.process.exec(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"nvidia-smi\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`p.wait()`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(p.logs.read())`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.terminate()`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Requesting a GPU doesn’t install CUDA libraries. Add packages such as `,_jsx(_components.code,{children:`torch`}),` to the sandbox `,_jsx(_components.a,{href:`/v2/environment/custom-images`,children:`image`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`control-outbound-traffic`,children:`Control Outbound Traffic`}),`\n`,_jsx(_components.p,{children:`Each sandbox is isolated from your app and other workloads. Block outbound traffic or allow only specific hostnames, wildcard domains, IPs or CIDRs:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` beam `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`block_network`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).create() `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# no outbound traffic`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.update_network_permissions(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`block_network`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`allow_list`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[]) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# reopen it at runtime`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.terminate()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Sandbox(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`allow_list`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"api.openai.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]).create() `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# or allow only this API`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sb.terminate()`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`To give the agent credentials, use `,_jsx(_components.a,{href:`/v2/environment/secrets#brokered-secrets-for-vms-and-sandboxes`,children:`brokered secrets`}),`. The guest receives placeholders; the worker supplies the real values only in HTTPS headers to approved hosts. With `,_jsx(_components.code,{children:`block_network=True`}),` and secrets, only their approved hosts are reachable. The guest has no automatic Beam workspace token.`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Give an Agent a Dev Box`,icon:`server`,href:`/v2/getting-started/quickstart-vm`,children:_jsx(_components.p,{children:`Create a persistent VM that pauses when idle.`})}),_jsx(Card,{title:`Snapshots`,icon:`camera`,href:`/v2/sandbox/snapshots`,children:_jsx(_components.p,{children:`Save filesystem or memory state and fork it.`})}),_jsx(Card,{title:`Networking`,icon:`globe`,href:`/v2/sandbox/networking`,children:_jsx(_components.p,{children:`Preview URLs and outbound rules.`})}),_jsx(Card,{title:`TypeScript SDK`,icon:`code`,href:`/v2/reference/ts-sdk`,children:_jsx(_components.p,{children:`Create and operate sandboxes from Node.js.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Run Agent Code in a Sandbox","sidebarTitle":"Sandboxes","description":"Create a sandbox, run code, serve a URL, and fork it from a snapshot","icon":"box","href":"/v2/getting-started/quickstart-sandbox"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Install and Sign In","slug":"install-and-sign-in","depth":2,"children":[]},{"title":"Run Code, Serve a URL, and Fork","slug":"run-code-serve-a-url-and-fork","depth":2,"children":[]},{"title":"Add a GPU","slug":"add-a-gpu","depth":2,"children":[]},{"title":"Control Outbound Traffic","slug":"control-outbound-traffic","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"slai-beam","siteName":"Beam","title":"Run Agent Code in a Sandbox - Beam","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T21:36:43.403Z","originalFileLocation":"v2/getting-started/quickstart-sandbox.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a sandbox, run code, serve a URL, and fork it from a snapshot\">\u003cmeta data-mint-head name=\"application-name\" content=\"Beam\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Run Agent Code in a Sandbox - Beam\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a sandbox, run code, serve a URL, and fork it from a snapshot\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Beam\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.beam.cloud/meta-hero.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Run Agent Code in a Sandbox - Beam\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a sandbox, run code, serve a URL, and fork it from a snapshot\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.beam.cloud/meta-hero.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/slai-beam/vbRSBpVzlMVt02hX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Beam\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#477ff7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/getting-started/quickstart-sandbox.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.beam.cloud/#organization\",\"name\":\"Beam\",\"url\":\"https://docs.beam.cloud\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/slai-beam/StmwwthCMFzpzgft/logo/dark-logo.svg?fit=max\u0026auto=format\u0026n=StmwwthCMFzpzgft\u0026q=85\u0026s=23387d001289bc6dcbe6be3f49769690\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.beam.cloud#website\",\"name\":\"Beam\",\"url\":\"https://docs.beam.cloud\",\"publisher\":{\"@id\":\"https://docs.beam.cloud/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox#webpage\",\"url\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox\",\"name\":\"Run Agent Code in a Sandbox\",\"description\":\"Create a sandbox, run code, serve a URL, and fork it from a snapshot\",\"dateModified\":\"2026-10-21T21:36:43.403Z\",\"isPartOf\":{\"@id\":\"https://docs.beam.cloud#website\"},\"breadcrumb\":{\"@id\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start Here\",\"item\":\"https://docs.beam.cloud/v2/getting-started/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Run Agent Code in a Sandbox\",\"item\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox#article\",\"headline\":\"Run Agent Code in a Sandbox\",\"name\":\"Run Agent Code in a Sandbox\",\"description\":\"Create a sandbox, run code, serve a URL, and fork it from a snapshot\",\"url\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox\",\"mainEntityOfPage\":{\"@id\":\"https://docs.beam.cloud/v2/getting-started/quickstart-sandbox#webpage\"},\"image\":\"https://www.beam.cloud/meta-hero.png\",\"dateModified\":\"2026-10-21T21:36:43.403Z\",\"publisher\":{\"@id\":\"https://docs.beam.cloud/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.beam.cloud#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Beam\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Beam\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/v2/getting-started/quickstart-sandbox.md","siteName":"Beam","nav":{"global":{"anchors":[{"anchor":"Slack Community","icon":"slack","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://join.slack.com/t/beam-cloud/shared_invite/zt-4bf7jalhy-KI0ebGXk4vKpcDofwDjCLA"},{"anchor":"Github","icon":"github","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://github.com/beam-cloud/beta9"},{"anchor":"Twitter","icon":"twitter","color":{"light":"#6365f1","dark":"#6365f1"},"href":"https://twitter.com/beam_cloud"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Start Here","pages":[{"title":"Introduction","icon":"table-rows","href":"/v2/getting-started/introduction"},{"title":"Give an Agent a Dev Box","sidebarTitle":"Virtual Machines","description":"Create a persistent VM, put a project on it, share a private URL, and let it sleep when idle","icon":"server","href":"/v2/getting-started/quickstart-vm"},{"title":"Run Agent Code in a Sandbox","sidebarTitle":"Sandboxes","icon":"box","href":"/v2/getting-started/quickstart-sandbox"},{"title":"Quickstart: Deploy an Endpoint","sidebarTitle":"Endpoints","description":"Sign in, run a Python function, and deploy a web API","icon":"hand-wave","href":"/v2/getting-started/quickstart"},{"title":"Set Up Coding Agents","icon":"plug","href":"/v2/getting-started/add-to-cursor-claude"},{"title":"Installation","icon":"download","href":"/v2/getting-started/installation"},{"title":"Authentication and Workspaces","icon":"key","href":"/v2/getting-started/authentication"},{"title":"Core Concepts","icon":"notebook","href":"/v2/getting-started/core-concepts"},{"title":"Using the Dashboard","icon":"browser","href":"/v2/getting-started/dashboard"}]},{"group":"Virtual Machines","pages":[{"title":"Overview","icon":"server","href":"/v2/vm/overview"},{"title":"Configuration","icon":"sliders","href":"/v2/vm/configuration"},{"title":"Secrets","icon":"lock","href":"/v2/vm/secrets"},{"title":"Lifecycle","icon":"power-off","href":"/v2/vm/lifecycle"},{"title":"Storage and Snapshots","icon":"database","href":"/v2/vm/storage"},{"title":"Commands and SSH","icon":"terminal","href":"/v2/vm/processes"},{"title":"Networking","icon":"network-wired","href":"/v2/vm/networking"},{"title":"Desktop","icon":"desktop","href":"/v2/vm/desktop"},{"title":"Docker and Compose","icon":"docker","href":"/v2/vm/docker"},{"title":"CLI Reference","icon":"code","href":"/v2/vm/cli"},{"title":"SDK","icon":"code","href":"/v2/vm/sdk"}]},{"group":"Sandboxes","pages":[{"title":"Overview","icon":"box","href":"/v2/sandbox/overview"},{"title":"Sandbox Configuration","icon":"wrench","href":"/v2/sandbox/configuration"},{"title":"Snapshots","icon":"camera","href":"/v2/sandbox/snapshots"},{"title":"Process Management","icon":"terminal","href":"/v2/sandbox/processes"},{"title":"Networking","icon":"globe","href":"/v2/sandbox/networking"},{"title":"File System Operations","icon":"folder","href":"/v2/sandbox/filesystem"},{"title":"Docker in Sandboxes","icon":"docker","href":"/v2/sandbox/docker"}]},{"group":"Inference","pages":[{"title":"Hosted Model Inference","icon":"brain","href":"/v2/endpoint/hosted-models"},{"title":"Creating a Web Endpoint","icon":"laptop-code","href":"/v2/endpoint/overview"},{"title":"Hosting a Web Server","icon":"server","href":"/v2/endpoint/web-server"},{"title":"Realtime and Streaming","icon":"bolt","href":"/v2/endpoint/realtime"},{"title":"Pre-Loading Models","icon":"circle-down","href":"/v2/endpoint/loaders"},{"title":"Cold Start Performance","icon":"rocket","href":"/v2/topics/cold-start"},{"title":"Keeping Containers Warm","icon":"hotjar","href":"/v2/endpoint/keep-warm"},{"title":"Concurrent Inputs","icon":"cubes-stacked","href":"/v2/scaling/concurrent-inputs"},{"title":"GPU Acceleration","icon":"microchip","href":"/v2/environment/gpu"},{"title":"Versioning","icon":"code-compare","href":"/v2/endpoint/versioning"},{"title":"Sending File Payloads","icon":"file","href":"/v2/endpoint/sending-file-payloads"}]},{"group":"Building Blocks","pages":[{"title":"Running Async Tasks","icon":"layer-group","href":"/v2/task-queue/running-tasks"},{"title":"Querying Task Status","icon":"check-double","href":"/v2/task-queue/query-status"},{"title":"Running Functions Remotely","icon":"cloud","href":"/v2/function/running-functions"},{"title":"Scheduled Jobs","icon":"clock","href":"/v2/function/scheduled-job"},{"title":"Queues","icon":"grip-lines","href":"/v2/function/queues"},{"title":"Distributed Maps","icon":"book","href":"/v2/function/maps"},{"title":"Deploy Containers","icon":"docker","href":"/v2/hosting/containers"},{"title":"Deployment Lifecycle","icon":"code-branch","href":"/v2/hosting/deployments"},{"title":"Environment Variables and References","icon":"link","href":"/v2/hosting/references"},{"title":"Stacks","icon":"layer-group","href":"/v2/hosting/stacks"},{"title":"Host a Web Service","icon":"hammer","href":"/v2/pod/web-service"},{"title":"Networking","icon":"sitemap","href":"/v2/pod/networking"}]},{"group":"Container Images","pages":[{"title":"Container Images","icon":"gears","href":"/v2/environment/custom-images"},{"title":"Custom Registries","icon":"list","href":"/v2/environment/custom-registries"},{"title":"CPU and RAM","icon":"server","href":"/v2/environment/resources"},{"title":"Storing Secrets","icon":"lock","href":"/v2/environment/secrets"}]},{"group":"Data and Storage","pages":[{"title":"Managed Databases","icon":"database","href":"/v2/data/databases"},{"title":"Distributed Storage Volumes","icon":"hard-drive","href":"/v2/data/volume"},{"title":"Durable Disks","icon":"database","href":"/v2/data/durable-disks"},{"title":"Mounting S3 Buckets","icon":"bucket","href":"/v2/data/external-storage"},{"title":"Ephemeral Files and Images","icon":"upload","href":"/v2/data/output"}]},{"group":"Scaling","pages":[{"title":"Scaling Out","icon":"boxes-stacked","href":"/v2/scaling/concurrency"},{"title":"Parallelizing Functions","icon":"boxes-stacked","href":"/v2/scaling/parallelizing-functions"}]},{"group":"Operations","pages":[{"title":"Logs and Metrics","icon":"chart-line","href":"/v2/operations/observability"},{"title":"Workspace MCP","icon":"plug","href":"/v2/operations/mcp"},{"title":"Webhooks","icon":"webhook","href":"/v2/operations/webhooks"}]},{"group":"Run in Your Cloud","pages":[{"title":"Compute Pools","icon":"server","href":"/v2/scaling/pools"},{"title":"Overview","icon":"building","href":"/v2/self-hosting/overview"},{"title":"Local Development Cluster","icon":"computer","href":"/v2/self-hosting/local-machine"},{"title":"Deploying Beta9 on AWS","icon":"aws","href":"/v2/self-hosting/aws"}]},{"group":"Advanced Topics","pages":[{"title":"Integrate into CI/CD","icon":"link","href":"/v2/topics/ci"},{"title":"Input and Output Schemas","icon":"brackets-curly","href":"/v2/topics/schemas"},{"title":"Timeouts and Retries","icon":"clock","href":"/v2/topics/timeouts-and-retries"},{"title":"Public Endpoints","icon":"unlock","href":"/v2/topics/public-endpoints"},{"title":"Task Callbacks","icon":"bell","href":"/v2/topics/callbacks"},{"title":"Send Events Between Apps","icon":"circle","href":"/v2/topics/signal"},{"title":"Runtime Variables","icon":"code","href":"/v2/topics/context"},{"title":"Working in Jupyter Notebooks","icon":"book","href":"/v2/environment/jupyter-notebook"},{"title":"Remote vs. Local Environment","icon":"house","href":"/v2/environment/remote-versus-local"}]},{"group":"Resources","pages":[{"title":"Pricing and Billing","icon":"dollar-sign","href":"/v2/resources/pricing-and-billing"},{"title":"Using Beam Docs with AI Tools","icon":"robot","href":"/v2/resources/ai-tools"},{"title":"Troubleshooting","icon":"question","href":"/v2/resources/faq"}]},{"group":"Security","pages":[{"title":"Security overview","icon":"shield-halved","href":"/v2/security/security"},{"title":"Terms of Service","icon":"handshake","href":"/v2/security/terms-and-conditions"},{"title":"Privacy Policy","icon":"user-secret","href":"/v2/security/privacy-policy"},{"title":"Data Processing Addendum","icon":"file-shield","hidden":true,"href":"/v2/security/data-processing-addendum"},{"title":"Subprocessor List","icon":"list-check","hidden":true,"href":"/v2/security/subprocessor-list"}]}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/v2/examples/overview"}]},{"tab":"Python SDK","pages":[{"title":"Python SDK","href":"/v2/reference/py-sdk"}]},{"tab":"JavaScript / TypeScript","pages":[{"title":"JavaScript / TypeScript","href":"/v2/reference/ts-sdk"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/v2/reference/cli"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/v2/reference/api"}]}]},"basePath":"","title":"Run Agent Code in a Sandbox - Beam","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}