Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.
Blaxel is the infrastructure for autonomous agents. Our platform lets you keep infinite, secure sandboxes on automatic standby while co-hosting your agents and context for near instant latency.
Using Cursor, Claude Code, Codex, Goose, or another AI coding agent?The Blaxel skills give your agent the ability to deploy AI agents, create sandboxes for code execution, host MCP servers, run batch jobs, and more…all using simple prompts, zero code required!Installing Blaxel (step 1 below) sets them up for the coding agents on your machine, with the Blaxel MCP servers. If you already have the CLI, run:
Welcome there! 👋 Make sure you have created an account on Blaxel (here → https://app.blaxel.ai), and created a first workspace (you’ll need the workspace ID).
1
Install Blaxel
Run the installer in a terminal:
curl -fsSL https://blaxel.ai/install.sh | sh
irm https://blaxel.ai/install.ps1 | iex
The installer checks the Blaxel CLI (bl) against the release checksums, installs it, and adds it to your PATH. On macOS and Linux, it also installs completions for your current shell if you use zsh, bash, or fish. On Windows, configure PowerShell completions separately. It then runs bl setup, which shows what it found and installs it when you press Enter: the Blaxel skills and MCP servers for the coding agents on your machine (Claude Code, Codex, Cursor and others), then the browser login. Run it again at any time to add what is missing.
Install with Homebrew
brew install blaxel-ai/blaxel/blaxelbl setup
Homebrew 6.0.0+ requires explicit trust for non-official taps, so use the fully qualified formula name.
Installer options
On macOS and Linux, set these variables for sh:
Variable
Effect
VERSION=v0.1.119
Install that release instead of the latest
BINDIR=/usr/local/bin
Install to that folder instead of ~/.local/bin
BL_INSTALL_SETUP=false
Install the CLI only, and run bl setup later
BL_INSTALL_SKILLS=false
Leave your coding agents alone
BL_INSTALL_PATH=false
Do not add bl to your PATH
BL_INSTALL_COMPLETION=false
Skip the shell completions
For example, to install a specific release for all users:
curl -fsSL https://blaxel.ai/install.sh | sudo VERSION=v0.1.119 BINDIR=/usr/local/bin sh
Under sudo, the installer still sets up your own shell, coding agents and login. In CI, it installs the CLI only and leaves the shell configuration and coding agents alone. On Windows, run $env:BL_INSTALL_SETUP = "false" before the installer to install the CLI only.
2
Login
The installer logs you in. To log in again or to another workspace, open a terminal and run:
bl login
Learn more about authentication on Blaxel
The Blaxel SDK requires two environment variables to authenticate:
Variable
Description
BL_WORKSPACE
Your Blaxel workspace name
BL_API_KEY
Your Blaxel API key
You can create an API key from the Blaxel console. Your workspace name is visible in the URL when you log in to the console (e.g. app.blaxel.ai/{workspace}).Set them as environment variables or add them to a .env file at the root of your project:
When developing locally, you can also log in to your workspace with Blaxel CLI (as shown above). This allows you to run Blaxel SDK functions that will automatically connect to your workspace without additional setup. When you deploy on Blaxel, authentication is handled automatically — no environment variables needed.
3
Create your first resource
Blaxel is the ultimate toolkit for AI agent builders. Our flagship product is the sandbox, although we also offer other services for the rest of your agentic workloads on our infrastructure.Sandboxes are secure, instant-launching compute environments that you can use for running AI code. Blaxel lets you keep sandboxes on automatic standby with optimized agent hosting for near instant latency.With Blaxel sandboxes, you get:
Automatic scale-to-zero after 5s inactivity, resume from standby under 25ms even after weeks.
Micro-VMs with full access to file system, processes and logs — and native support for Zero Data Retention (ZDR).
Preview URLs with your own custom domain.
Create a sandbox
Sandboxes can be created programmatically using Blaxel SDK. Install the SDK:
pip install blaxel
uv pip install blaxel
pnpm install @blaxel/core
npm install @blaxel/core
yarn add @blaxel/core
bun add @blaxel/core
Create your first sandbox:
import { SandboxInstance } from "@blaxel/core";async function main() { // Create a new sandbox const sandbox = await SandboxInstance.createIfNotExists({ name: "my-sandbox", image: "blaxel/base-image:latest", // public or custom image memory: 4096, // in MB ports: [{ target: 3000, protocol: "HTTP" }], // ports to expose labels: { env: "dev", project: "my-project" }, // labels region: "us-pdx-1" // deployment region }); console.log("Sandbox created: ", {sandbox});}main().catch(console.error);
import asynciofrom blaxel.core import SandboxInstanceasync def main(): # Create a new sandbox sandbox = await SandboxInstance.create_if_not_exists({ "name": "my-sandbox", "image": "blaxel/base-image:latest", # public or custom image "memory": 4096, # in MB "ports": [{ "target": 3000 }], # ports to expose "labels": {"env": "dev", "project": "my-project"}, # labels "region": "us-pdx-1" # deployment region }) print(f"Sandbox created: {sandbox}")if __name__ == "__main__": asyncio.run(main())
Learn how to manage sandboxes
Read the complete guide for creating & connecting to sandboxes using Blaxel SDK.
Or deploy another type of resource:
Deploy an agent, batch job or MCP server
Deploy your agent’s components on a purpose-built computing infrastructure for agentics.
Let’s initialize a first app. The following command initializes a new pre-scaffolded local repository ready for developing and deploying your agent on Blaxel.
bl new agent
You can now develop your agent application using any framework you want (or none), and use the BlaxelSDK to leverage other Blaxel deployments. A placeholder HTTP API server is already preconfigured in /src/main.py or /src/main.ts.
Let’s initialize a first batch job definition. The following command initializes a new pre-scaffolded local repository ready for developing and deploying your job on Blaxel.
bl new job
You can now develop your job and use the BlaxelSDK to leverage other Blaxel deployments in /src/index.py or /src/index.ts.
You can quickly initialize a new MCP server from scratch by using CLI command bl new. This initializes a new pre-scaffolded local repo where your entire code can be added.
Run the following command to serve your workload locally, replacing <<DIRECTORY-NAME>> with the name of the workload’s root directory:
cd <<DIRECTORY-NAME>>;bl serve;
Agent: send a test invocation
Query your agent locally by making a POST request to this endpoint: http://localhost:1338 with the following payload format: {"inputs": "Hello world!"}:
Execute your job locally by making a POST request to this endpoint: http://localhost:1338 with the following payload format: {"tasks": [{"param1": "value1"}]}
You can test it by running the following command which launches both the MCP server and a web application to query it (MCP Inspector, managed by MCP) locally.
pnpm inspect
BL_DEBUG=true uv run mcp dev src/server.py
The web application is accessible at: http://127.0.0.1:6274. Alternatively, you can just simply serve the server locally by running bl serve --hotreload.
To push to Blaxel, run the following command. Blaxel will handle the build and deployment:
bl deploy
Your workload is made available as a serverless auto scalableglobal endpoint 🌎.
3
Query your deployment
Agent: send an invocation request
Run an inference from a terminal with the following command:
bl chat <<AGENT-NAME>>
This gives you a chat-like interface where you can interact with your agent. To use this when serving locally, just add option --local.Alternatively, just call theglobal endpoint.
Job: execute the job
Trigger an execution of your batch job from a terminal by running:
# Run a job using Blaxel CLI with --data argumentbl run job <<JOB-NAME>> --data '{"tasks": [{"name": "John"}, {"name": "Jane"}]}'
When you deploy an MCP server on Blaxel, an HTTP endpoint is generated on Global Agentics Network to connect to the server.The server endpoint looks like this:
You are ready to run AI with Blaxel! Here’s a curated list of guides which may be helpful for you to make the most of Blaxel, but feel free to explore the product on your own!
Connect your coding agent to Blaxel
Let your AI coding assistant (Cursor, Claude Code, Windsurf…) create and manage Blaxel resources using natural language.
Create agentic code sandboxes
Complete guide for spawning sandboxed VMs for your agents to access.
Schedule and execute batch tasks
Complete guide for creating and running batch jobs from your agents.
Host serverless agents
Complete guide for deploying AI agents on Blaxel.
Enforce policies
Complete guide for managing deployment and routing policies on the Global Agentics Network.
Although we designed this documentation to be as comprehensive as possible, you are welcome to contact support@blaxel.ai or the community on Discord with any questions or feedback you have.
Last modified on October 5, 2026
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Documentation","description":"Blaxel documentation: cloud sandboxes, AI agent hosting, MCP servers, batch jobs, and model gateway for building and deploying AI-powered applications.","colors":{"primary":"#F0652D","light":"#FD7B35","dark":"#F0652D"},"logo":{"light":"https://mintcdn.com/blaxel/Z-RIT2VoXMT2Aw7L/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Z-RIT2VoXMT2Aw7L\u0026q=85\u0026s=7a7cf1e3c766c77f97f32e5c0d4fd209","dark":"https://mintcdn.com/blaxel/Z-RIT2VoXMT2Aw7L/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=Z-RIT2VoXMT2Aw7L\u0026q=85\u0026s=17297eca3e92fe15a91eed262f17d659"},"favicon":"https://mintcdn.com/blaxel/nH6Nd4qmP2OsLhOO/favicon.svg?fit=max\u0026auto=format\u0026n=nH6Nd4qmP2OsLhOO\u0026q=85\u0026s=484b8f0ebe3fb56aef259d514eeaa18c","appearance":{"default":"system"},"background":{"color":{"dark":"#09090B"}},"navbar":{"links":[{"icon":"calendar","href":"/changelog","label":"Changelog"},{"icon":"robot","href":"/skills-mcp","label":"Agent Skill"},{"icon":"puzzle-piece","href":"https://blaxel.ai/integrations","label":"Integrations"},{"icon":"discord","href":"/Community","label":"Community"}],"primary":{"type":"button","label":"Blaxel Console","href":"https://app.blaxel.ai"}},"footer":{"socials":{"github":"https://github.com/blaxel-ai","linkedin":"https://www.linkedin.com/company/blaxel-ai","twitter":"https://x.com/blaxelai","discord":"https://discord.gg/CsWKUZUHFQ"}},"search":{"prompt":"Search Blaxel docs..."},"seo":{"metatags":{"og:type":"website","og:site_name":"Blaxel Documentation"},"indexing":"navigable"},"fonts":{"family":"Inter"},"integrations":{"posthog":{"apiKey":"phc_HGJ7t7Qa8cJJilL0CONU5se4vM6jU6nKFCuoCC9LSha","apiHost":"https://events.blaxel.ai"}},"banner":{"content":"Blaxel has joined Baseten to build the future of agentic infrastructure! [Read our announcement.](https://www.baseten.co/blog/blaxel-is-joining-baseten-to-build-the-future-of-agentic-cloud/)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","cursor","devin","download-spec"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":"calendar","href":"/changelog"},{"anchor":"Blaxel Skills \u0026 MCP","icon":"robot","href":"/skills-mcp"},{"anchor":"Integrations directory","icon":"puzzle-piece","href":"https://blaxel.ai/integrations"},{"anchor":"Community","icon":"discord","href":"/Community"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"blaxel","hasAudioNarration":false,"actualSubdomain":"blaxel","customDomains":["docs.blaxel.ai"],"gitSource":{"type":"github","owner":"blaxel-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea4fb657fdbd4069e68d77","collectionId":"ef2167ab-02f4-4e46-aed7-5229aa571906","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea4fb657fdbd4069e68d77"},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea4fb657fdbd4069e68d77","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Platform APIs Reference","count":179},{"language":"default","tag":"Management API","count":176},{"language":"default","tag":"Documentation","count":114},{"language":"default","tag":"Overview","count":75},{"language":"default","tag":"CLI Reference","count":73},{"language":"default","tag":"Commands","count":72},{"language":"default","tag":"Sandbox API Reference","count":43},{"language":"default","tag":"Troubleshooting","count":41},{"language":"default","tag":"Tutorials and Examples","count":35},{"language":"default","tag":"compute","count":35}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"support@blaxel.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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":"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":"llms-txt-v2","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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar .nav-logo{height:2.5rem;width:auto}#navbar:has(#banner){display:flex;flex-direction:column}#navbar:has(#banner)>.max-w-8xl{width:100%}#navbar:has(#banner)>div[aria-hidden=true]{display:none}#banner{position:relative;inset:auto;order:1;padding:1.25rem 3rem;background:0 0;font-size:.9375rem;font-weight:400}#banner>div{width:100%;max-width:70rem;margin:0;padding:1rem 3.5rem 1rem 1.75rem;border:1px solid #394655;border-radius:.75rem;background:radial-gradient(ellipse at 50% 0,rgb(99 216 226/12%),transparent 70%),linear-gradient(110deg,#121b29,#081827 52%,#141925);box-shadow:0 12px 32px -16px rgb(7 11 17/40%),inset 0 1px 0 rgb(255 255 255/5%)}#banner>button{right:max(4rem,calc((100% - 70rem)/2 + 1rem))}#banner p{color:#dbdbdb!important;line-height:1.5}#banner a{display:inline-flex;align-items:center;gap:.5rem;margin-left:.75rem;color:#fff!important;text-decoration:none;white-space:nowrap}#banner a::after{content:\"\";width:1.25rem;height:1.25rem;background-color:#eb7229;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='black' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h12M10 4l5 5-5 5'/%3E%3C/svg%3E\") center/contain no-repeat}#banner a:hover{text-decoration:underline;text-decoration-color:#fff}#banner a:focus-visible{border-radius:2px;outline:2px solid #eb7229;outline-offset:4px}@media (max-width:767px){#banner{padding:1rem;text-align:left}#banner>div{padding:1rem 2.75rem 1rem 1rem}#banner a{display:flex;width:fit-content;margin:.375rem 0 0}#banner>button{top:1.75rem;right:1.75rem;transform:none}}"}],"page":{"pagePath":"Get-started","slug":"/Get-started","pageMetadata":{"title":"Get started","description":"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.","href":"/Get-started"},"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: \"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\"\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`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Callout,Card,CodeBlock,CodeGroup,Heading,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Callout)_missingMdxReference(`Callout`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Blaxel is the `,_jsx(_components.strong,{children:`infrastructure for autonomous agents`}),`. Our platform lets you keep infinite, secure sandboxes on automatic standby while co-hosting your agents and context for near instant latency.`]}),`\n`,_jsxs(Callout,{icon:`lightbulb`,color:`#a3e0c5`,iconType:`solid`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Using Cursor, Claude Code, Codex, Goose, or another AI coding agent?`})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/skills-mcp`,children:`Blaxel skills`}),` give your agent the ability to deploy AI agents, create sandboxes for code execution, host MCP servers, run batch jobs, and more…all using simple prompts, zero code required!`]}),_jsx(_components.p,{children:`Installing Blaxel (step 1 below) sets them up for the coding agents on your machine, with the Blaxel MCP servers. If you already have the CLI, run:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` setup`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`quickstart`,children:`Quickstart`}),`\n`,_jsxs(_components.p,{children:[`Welcome there! 👋 Make sure you have created an account on Blaxel (here → `,_jsx(_components.a,{href:`https://app.blaxel.ai`,children:`https://app.blaxel.ai`}),`), and created a first `,_jsx(_components.a,{href:`Security/Workspace-access-control`,children:`workspace`}),` (you’ll need the workspace ID).`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Install Blaxel`,children:[_jsx(_components.p,{children:`Run the installer in a terminal:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`macOS and Linux`,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -fsSL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://blaxel.ai/install.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sh`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Windows`,numberOfLines:`1`,language:`powershell`,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:`powershell`,children:_jsxs(_components.code,{language:`powershell`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`irm https:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`//`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`blaxel.ai`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`install.ps1 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`|`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` iex`})]}),`\n`]})})})]}),_jsxs(_components.p,{children:[`The installer checks the Blaxel CLI (`,_jsx(_components.code,{children:`bl`}),`) against the release checksums, installs it, and adds it to your `,_jsx(_components.code,{children:`PATH`}),`. On macOS and Linux, it also installs completions for your current shell if you use zsh, bash, or fish. On Windows, `,_jsx(_components.a,{href:`/cli-reference/introduction#shell-autocompletion`,children:`configure PowerShell completions`}),` separately. It then runs `,_jsx(_components.a,{href:`/cli-reference/commands/bl_setup`,children:_jsx(_components.code,{children:`bl setup`})}),`, which shows what it found and installs it when you press Enter: the `,_jsx(_components.a,{href:`/skills-mcp#blaxel-skills`,children:`Blaxel skills`}),` and MCP servers for the coding agents on your machine (Claude Code, Codex, Cursor and others), then the browser login. Run it again at any time to add what is missing.`]}),_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Install with Homebrew`,icon:`beer-mug-empty`,id:`install-with-homebrew`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`brew`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blaxel-ai/blaxel/blaxel`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` setup`})]}),`\n`]})})}),_jsx(_components.p,{children:`Homebrew 6.0.0+ requires explicit trust for non-official taps, so use the fully qualified formula name.`})]}),_jsxs(Accordion,{title:`Installer options`,icon:`sliders`,id:`installer-options`,children:[_jsxs(_components.p,{children:[`On macOS and Linux, set these variables for `,_jsx(_components.code,{children:`sh`}),`:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Effect`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`VERSION=v0.1.119`})}),_jsx(_components.td,{children:`Install that release instead of the latest`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BINDIR=/usr/local/bin`})}),_jsxs(_components.td,{children:[`Install to that folder instead of `,_jsx(_components.code,{children:`~/.local/bin`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_INSTALL_SETUP=false`})}),_jsxs(_components.td,{children:[`Install the CLI only, and run `,_jsx(_components.code,{children:`bl setup`}),` later`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_INSTALL_SKILLS=false`})}),_jsx(_components.td,{children:`Leave your coding agents alone`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_INSTALL_PATH=false`})}),_jsxs(_components.td,{children:[`Do not add `,_jsx(_components.code,{children:`bl`}),` to your `,_jsx(_components.code,{children:`PATH`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_INSTALL_COMPLETION=false`})}),_jsx(_components.td,{children:`Skip the shell completions`})]})]})]}),_jsx(_components.p,{children:`For example, to install a specific release for all users:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -fsSL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://blaxel.ai/install.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` VERSION=v0.1.119`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` BINDIR=/usr/local/bin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sh`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.code,{children:`sudo`}),`, the installer still sets up your own shell, coding agents and login. In CI, it installs the CLI only and leaves the shell configuration and coding agents alone. On Windows, run `,_jsx(_components.code,{children:`$env:BL_INSTALL_SETUP = \"false\"`}),` before the installer to install the CLI only.`]})]})]})]}),_jsxs(Step,{title:`Login`,children:[_jsx(_components.p,{children:`The installer logs you in. To log in again or to another workspace, open a terminal and run:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`]})})}),_jsxs(Accordion,{title:`Learn more about authentication on Blaxel`,id:`learn-more-about-authentication-on-blaxel`,children:[_jsx(_components.p,{children:`The Blaxel SDK requires two environment variables to authenticate:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_WORKSPACE`})}),_jsx(_components.td,{children:`Your Blaxel workspace name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BL_API_KEY`})}),_jsx(_components.td,{children:`Your Blaxel API key`})]})]})]}),_jsxs(_components.p,{children:[`You can create an API key from the `,_jsx(_components.a,{href:`https://app.blaxel.ai/profile/security`,children:`Blaxel console`}),`. Your workspace name is visible in the URL when you log in to the console (e.g. `,_jsx(_components.code,{children:`app.blaxel.ai/{workspace}`}),`).`]}),_jsxs(_components.p,{children:[`Set them as environment variables or add them to a `,_jsx(_components.code,{children:`.env`}),` file at the root of your project:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` BL_WORKSPACE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`my-workspace`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` BL_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`my-api-key`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`When developing locally, you can also `,_jsx(_components.strong,{children:`log in to your workspace with Blaxel CLI`}),` (as shown above). This allows you to run Blaxel SDK functions that will automatically connect to your workspace without additional setup. When you deploy on Blaxel, authentication is handled automatically — no environment variables needed.`]})]})]}),_jsxs(Step,{title:`Create your first resource`,children:[_jsxs(_components.p,{children:[`Blaxel is the ultimate toolkit for AI agent builders. Our flagship product is the `,_jsx(_components.strong,{children:`sandbox`}),`, although we also offer other services for the rest of your agentic workloads on our infrastructure.`]}),_jsx(_components.p,{children:`Sandboxes are secure, instant-launching compute environments that you can use for running AI code. Blaxel lets you keep sandboxes on automatic standby with optimized agent hosting for near instant latency.`}),_jsx(_components.p,{children:`With Blaxel sandboxes, you get:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Automatic scale-to-zero after 5s inactivity, resume from standby under 25ms even after weeks.`}),`\n`,_jsx(_components.li,{children:`Micro-VMs with full access to file system, processes and logs — and native support for Zero Data Retention (ZDR).`}),`\n`,_jsx(_components.li,{children:`Preview URLs with your own custom domain.`}),`\n`]}),_jsxs(Accordion,{title:`Create a sandbox`,icon:`box`,id:`create-a-sandbox`,children:[_jsx(_components.p,{children:`Sandboxes can be created programmatically using Blaxel SDK. Install the SDK:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python (pip)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blaxel`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python (uv)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`uv`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` blaxel`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript (pnpm)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @blaxel/core`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript (npm)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @blaxel/core`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript (yarn)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`yarn`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @blaxel/core`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript (bun)`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @blaxel/core`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})})]}),_jsx(_components.p,{children:`Create your first sandbox:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`16`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`SandboxInstance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@blaxel/core\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Create a new sandbox`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` sandbox`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` SandboxInstance`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createIfNotExists`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"my-sandbox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` image:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"blaxel/base-image:latest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// public or custom image`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` memory:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 4096`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// in MB`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ports:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`target:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`protocol:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"HTTP\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ports to expose`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` labels:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"dev\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`project:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"my-project\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// labels`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` region:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"us-pdx-1\"`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // deployment region`})]}),`\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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sandbox created: \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`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:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`17`,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:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` asyncio`})]}),`\n`,_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:` blaxel.core `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SandboxInstance`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`():`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Create a new sandbox`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sandbox `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` SandboxInstance.create_if_not_exists({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-sandbox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"blaxel/base-image:latest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# public or custom image`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"memory\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`4096`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# in MB`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ports\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"target\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# ports to expose`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"labels\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"env\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dev\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"project\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-project\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# labels`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"region\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"us-pdx-1\"`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # deployment region`})]}),`\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:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sandbox created: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`sandbox`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` __name__`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"__main__\"`}),_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:` asyncio.run(main())`})}),`\n`]})})})]}),_jsx(Card,{title:`Learn how to manage sandboxes`,icon:`box`,href:`/Sandboxes/Overview`,children:_jsx(_components.p,{children:`Read the complete guide for creating \u0026 connecting to sandboxes using Blaxel SDK.`})})]}),_jsx(_components.p,{children:`Or deploy another type of resource:`}),_jsxs(Accordion,{title:`Deploy an agent, batch job or MCP server`,id:`deploy-an-agent-batch-job-or-mcp-server`,children:[_jsx(_components.p,{children:`Deploy your agent’s components on a purpose-built computing infrastructure for agentics.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create the resource`,children:_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Create an agent app`,icon:`robot`,id:`create-an-agent-app`,children:[_jsxs(Warning,{children:[`In Python, you will need to `,_jsx(_components.a,{href:`https://pip.pypa.io/en/stable/installation/`,children:`have pip installed`}),`; in TypeScript, you will need to `,_jsx(_components.a,{href:`https://docs.npmjs.com/downloading-and-installing-node-js-and-npm`,children:`have npm installed`}),` for this.`]}),_jsxs(_components.p,{children:[`Let’s initialize a first app. The following command initializes a new `,_jsx(_components.strong,{children:`pre-scaffolded local repository`}),` ready for developing and deploying your agent on Blaxel.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` new`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` agent`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`You can now develop your agent application using any framework you want (or none), and use the `,_jsx(_components.a,{href:`sdk-reference/introduction`,children:`Blaxel`}),` `,_jsx(_components.a,{href:`sdk-reference`,children:`SDK`}),` to `,_jsx(_components.a,{href:`Agents/Develop-an-agent`,children:`leverage other Blaxel deployments`}),`. A placeholder HTTP API server is already preconfigured in `,_jsx(_components.code,{children:`/src/main.py`}),` or `,_jsx(_components.code,{children:`/src/main.ts`}),`.`]})]}),_jsxs(Accordion,{title:`Create a batch job`,icon:`list-check`,id:`create-a-batch-job`,children:[_jsxs(Warning,{children:[`In Python, you will need to `,_jsx(_components.a,{href:`https://pip.pypa.io/en/stable/installation/`,children:`have pip installed`}),`; in TypeScript, you will need to `,_jsx(_components.a,{href:`https://docs.npmjs.com/downloading-and-installing-node-js-and-npm`,children:`have npm installed`}),` for this.`]}),_jsxs(_components.p,{children:[`Let’s initialize a first batch job definition. The following command initializes a new `,_jsx(_components.strong,{children:`pre-scaffolded local repository`}),` ready for developing and deploying your job on Blaxel.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` new`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` job`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`You can now develop your job and use the `,_jsx(_components.a,{href:`sdk-reference/introduction`,children:`Blaxel`}),` `,_jsx(_components.a,{href:`sdk-reference`,children:`SDK`}),` to leverage other Blaxel deployments in `,_jsx(_components.code,{children:`/src/index.py`}),` or `,_jsx(_components.code,{children:`/src/index.ts`}),`.`]})]}),_jsxs(Accordion,{title:`Create an MCP server`,icon:`screwdriver-wrench`,id:`create-an-mcp-server`,children:[_jsxs(Warning,{children:[`In Python, you will need to `,_jsx(_components.a,{href:`https://pip.pypa.io/en/stable/installation/`,children:`have pip installed`}),`; in TypeScript, you will need to `,_jsx(_components.a,{href:`https://docs.npmjs.com/downloading-and-installing-node-js-and-npm`,children:`have npm installed`}),` for this.`]}),_jsxs(_components.p,{children:[`You can quickly `,_jsx(_components.strong,{children:`initialize a new MCP server from scratch`}),` by using CLI command `,_jsx(_components.code,{children:`bl new`}),`. This initializes a new pre-scaffolded local repo where your entire code can be added.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` new`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`You can now `,_jsx(_components.a,{href:`Functions/Create-MCP-server`,children:`develop your MCP server`}),` using the `,_jsx(_components.a,{href:`sdk-reference/introduction`,children:`Blaxel`}),` `,_jsx(_components.a,{href:`sdk-reference`,children:`SDK`}),` in `,_jsx(_components.code,{children:`/src/server.py`}),` or `,_jsx(_components.code,{children:`/src/server.ts`}),`.`]})]})]})}),_jsxs(Step,{title:`Test and deploy your workload`,children:[_jsxs(_components.p,{children:[`Run the following command to serve your workload locally, replacing `,_jsx(_components.code,{children:`\u003c\u003cDIRECTORY-NAME>>`}),` with the name of the workload’s root directory:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`DIRECTORY-NAME>>;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`bl serve;`})}),`\n`]})})}),_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Agent: send a test invocation`,icon:`robot`,id:`agent-send-a-test-invocation`,children:[_jsxs(_components.p,{children:[`Query your agent locally by making a `,_jsx(_components.strong,{children:`POST`}),` request to this endpoint: `,_jsx(_components.a,{href:`http://localhost:1338`,children:_jsx(_components.code,{children:`http://localhost:1338`})}),` with the following payload format: `,_jsx(_components.code,{children:`{\"inputs\": \"Hello world!\"}`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"inputs\": \"Hello world!\"}'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://localhost:1338`})]}),`\n`]})})})]}),_jsxs(Accordion,{title:`Job: execute the job locally`,icon:`list-check`,id:`job-execute-the-job-locally`,children:[_jsxs(_components.p,{children:[`Execute your job locally by making a `,_jsx(_components.strong,{children:`POST`}),` request to this endpoint: `,_jsx(_components.a,{href:`http://localhost:1338`,children:_jsx(_components.code,{children:`http://localhost:1338`})}),` with the following payload format: `,_jsx(_components.code,{children:`{\"tasks\": [{\"param1\": \"value1\"}]}`})]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"tasks\": [{\"name\": \"John\"}, {\"name\": \"Jane\"}]}'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http://localhost:1338`})]}),`\n`]})})})]}),_jsxs(Accordion,{title:`MCP server: test the server`,icon:`screwdriver-wrench`,id:`mcp-server-test-the-server`,children:[_jsxs(_components.p,{children:[`You can test it by running the following command which launches `,_jsx(_components.strong,{children:`both`}),` the MCP server and a web application to query it (`,_jsx(_components.a,{href:`https://github.com/modelcontextprotocol/inspector`,children:`MCP Inspector`}),`, managed by MCP) locally.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` inspect`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`3`,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:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`BL_DEBUG`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`true`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` uv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dev`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` src/server.py`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})})]}),_jsxs(_components.p,{children:[`The web application is accessible at: `,_jsx(_components.a,{href:`http://127.0.0.1:6274/`,children:`http://127.0.0.1:6274`}),`. Alternatively, you can just simply `,_jsx(_components.a,{href:`Functions/Deploy-a-function`,children:`serve the server`}),` locally by running `,_jsx(_components.code,{children:`bl serve --hotreload`}),`.`]})]})]}),_jsxs(_components.p,{children:[`To `,_jsx(_components.strong,{children:`push to Blaxel`}),`, run the following command. Blaxel will handle the build and deployment:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Your workload is made available as a `,_jsx(_components.strong,{children:`serverless auto scalable`}),` `,_jsx(_components.strong,{children:`global endpoint`}),` 🌎.`]})]}),_jsx(Step,{title:`Query your deployment`,children:_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Agent: send an invocation request`,icon:`robot`,id:`agent-send-an-invocation-request`,children:[_jsx(_components.p,{children:`Run an inference from a terminal with the following command:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`AGENT-NAME>>`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This gives you a chat-like interface where you can interact with your agent. To use this when serving locally, just add option `,_jsx(_components.code,{children:`--local`}),`.`]}),_jsxs(_components.p,{children:[`Alternatively, `,_jsx(_components.strong,{children:`just call the`}),` `,_jsx(_components.a,{href:`Agents/Query-agents`,children:`global endpoint`}),`.`]})]}),_jsxs(Accordion,{title:`Job: execute the job`,icon:`list-check`,id:`job-execute-the-job`,children:[_jsx(_components.p,{children:`Trigger an execution of your batch job from a terminal by running:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Run a job using Blaxel CLI with --data argument`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` job`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`JOB-NAME>>`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"tasks\": [{\"name\": \"John\"}, {\"name\": \"Jane\"}]}'`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Alternatively, `,_jsx(_components.strong,{children:`just call the`}),` `,_jsx(_components.a,{href:`Jobs/Overview`,children:`global endpoint`}),`.`]})]}),_jsxs(Accordion,{title:`MCP server: test the server`,icon:`screwdriver-wrench`,id:`mcp-server-test-the-server-1`,children:[_jsxs(_components.p,{children:[`When you deploy an MCP server on Blaxel, an `,_jsx(_components.strong,{children:`HTTP endpoint`}),` is generated on Global Agentics Network to connect to the server.`]}),_jsx(_components.p,{children:`The server endpoint looks like this:`}),_jsx(CodeBlock,{filename:`Connect to an MCP server`,numberOfLines:`3`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`https://run.blaxel.ai/{`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`YOUR-WORKSPACE`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}/functions/{`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`YOUR-SERVER-NAME`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}/mcp`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})}),_jsxs(_components.p,{children:[`Read more about `,_jsx(_components.a,{href:`Functions/Invoke-functions`,children:`how to connect to the server here`}),`.`]})]})]})})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsx(_components.p,{children:`You are ready to run AI with Blaxel! Here’s a curated list of guides which may be helpful for you to make the most of Blaxel, but feel free to explore the product on your own!`}),`\n`,_jsx(Card,{title:`Connect your coding agent to Blaxel`,icon:`robot`,href:`/skills-mcp`,children:_jsx(_components.p,{children:`Let your AI coding assistant (Cursor, Claude Code, Windsurf…) create and manage Blaxel resources using natural language.`})}),`\n`,_jsx(Card,{title:`Create agentic code sandboxes`,icon:`box`,href:`/Sandboxes/Overview`,children:_jsx(_components.p,{children:`Complete guide for spawning sandboxed VMs for your agents to access.`})}),`\n`,_jsx(Card,{title:`Schedule and execute batch tasks`,icon:`list-check`,href:`/Jobs/Overview`,children:_jsx(_components.p,{children:`Complete guide for creating and running batch jobs from your agents.`})}),`\n`,_jsx(Card,{title:`Host serverless agents`,icon:`earth-americas`,href:`/Agents/Overview`,children:_jsx(_components.p,{children:`Complete guide for deploying AI agents on Blaxel.`})}),`\n`,_jsx(Card,{title:`Enforce policies`,icon:`server`,href:`/Model-Governance/Policies`,children:_jsx(_components.p,{children:`Complete guide for managing deployment and routing policies on the Global Agentics Network.`})}),`\n`,_jsx(Heading,{level:`2`,id:`questions`,children:`Questions?`}),`\n`,_jsxs(_components.p,{children:[`Although we designed this documentation to be as comprehensive as possible, you are welcome to contact `,_jsx(_components.a,{href:`mailto:support@blaxel.ai`,children:`support@blaxel.ai`}),` or the community on `,_jsx(_components.a,{href:`https://discord.gg/CsWKUZUHFQ`,children:`Discord`}),` with any questions or feedback you have.`]})]})}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":"Get started","description":"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.","href":"/Get-started"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Quickstart","slug":"quickstart","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]},{"title":"Questions?","slug":"questions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"blaxel","siteName":"Documentation","title":"Get started - Documentation","contextualStarterQuestions":[{"_id":"6ac40839df796feb978de152","deploymentId":"672e5f6ba9a398341da2aaec","questionText":"What are Blaxel skills?","status":"active","generatedBy":"contextual","path":"Get-started","createdAt":"2026-10-05T20:27:37.571Z","updatedAt":"2026-10-05T20:27:37.571Z","__v":0},{"_id":"6ac40839df796feb978de153","deploymentId":"672e5f6ba9a398341da2aaec","questionText":"Do I need a workspace first?","status":"active","generatedBy":"contextual","path":"Get-started","createdAt":"2026-10-05T20:27:37.571Z","updatedAt":"2026-10-05T20:27:37.571Z","__v":0},{"_id":"6ac40839df796feb978de151","deploymentId":"672e5f6ba9a398341da2aaec","questionText":"How do I install Blaxel?","status":"active","generatedBy":"contextual","path":"Get-started","createdAt":"2026-10-05T20:27:37.571Z","updatedAt":"2026-10-05T20:27:37.571Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-05T20:27:26.043Z","gitLastModified":"2026-10-05T20:26:50.000Z","originalFileLocation":"Get-started.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=\"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_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/blaxel/uaLoRkh_ONjRStCE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get started - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Blaxel Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.blaxel.ai/Get-started\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://blaxel.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Get+started\u0026amp;description=Step-by-step+quickstart+guide+to+install+the+Blaxel+CLI%2C+create+a+cloud+sandbox%2C+run+processes%2C+manage+files%2C+and+deploy+your+first+AI+agent.\u0026amp;theme=2ee6a4a0c0526ef8591d7c25\u0026amp;signature=cc662e50d179d31c773255dea79c55f4f3af3bf4c7dd5e2d5801e561e197c32d\">\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=\"Get started - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://blaxel.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Get+started\u0026amp;description=Step-by-step+quickstart+guide+to+install+the+Blaxel+CLI%2C+create+a+cloud+sandbox%2C+run+processes%2C+manage+files%2C+and+deploy+your+first+AI+agent.\u0026amp;theme=2ee6a4a0c0526ef8591d7c25\u0026amp;signature=cc662e50d179d31c773255dea79c55f4f3af3bf4c7dd5e2d5801e561e197c32d\">\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/blaxel/uaLoRkh_ONjRStCE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F0652D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.blaxel.ai/Get-started\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/Get-started.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.blaxel.ai/#organization\",\"name\":\"Documentation\",\"url\":\"https://docs.blaxel.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/blaxel/Z-RIT2VoXMT2Aw7L/images/logo-light.svg?fit=max\u0026auto=format\u0026n=Z-RIT2VoXMT2Aw7L\u0026q=85\u0026s=7a7cf1e3c766c77f97f32e5c0d4fd209\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.blaxel.ai#website\",\"name\":\"Documentation\",\"url\":\"https://docs.blaxel.ai\",\"publisher\":{\"@id\":\"https://docs.blaxel.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.blaxel.ai/Get-started#webpage\",\"url\":\"https://docs.blaxel.ai/Get-started\",\"name\":\"Get started\",\"description\":\"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\",\"dateModified\":\"2026-10-05T20:26:50.000Z\",\"isPartOf\":{\"@id\":\"https://docs.blaxel.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.blaxel.ai/Get-started#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.blaxel.ai/Get-started#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.blaxel.ai/Overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get started\",\"item\":\"https://docs.blaxel.ai/Get-started\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.blaxel.ai/Get-started#article\",\"headline\":\"Get started\",\"name\":\"Get started\",\"description\":\"Step-by-step quickstart guide to install the Blaxel CLI, create a cloud sandbox, run processes, manage files, and deploy your first AI agent.\",\"url\":\"https://docs.blaxel.ai/Get-started\",\"mainEntityOfPage\":{\"@id\":\"https://docs.blaxel.ai/Get-started#webpage\"},\"dateModified\":\"2026-10-05T20:26:50.000Z\",\"publisher\":{\"@id\":\"https://docs.blaxel.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.blaxel.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Documentation","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"calendar","href":"/changelog"},{"anchor":"Blaxel Skills \u0026 MCP","icon":"robot","href":"/skills-mcp"},{"anchor":"Integrations directory","icon":"puzzle-piece","href":"https://blaxel.ai/integrations"},{"anchor":"Community","icon":"discord","href":"/Community"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Blaxel: infrastructure for autonomous agents","description":"Introduction to Blaxel core building blocks: perpetual sandboxes, Agent Drive shared filesystem, and networking primitives.","sidebarTitle":"Overview","href":"/Overview"},{"title":"Get started","href":"/Get-started"},{"title":"Blaxel Skills \u0026 MCP","icon":"robot","description":"Connect Claude, Codex, Cursor, Claude Code, Windsurf, or other AI assistants to manage your Blaxel resources and search the Blaxel docs via MCP.","href":"/skills-mcp"},{"title":"Community","sidebarTitle":"Community","href":"/Community"}]},{"group":"Sandboxes","pages":[{"title":"Sandboxes","sidebarTitle":"Overview","href":"/Sandboxes/Overview"},{"group":"Expiration policies","pages":[{"title":"Expiration policies","href":"/Sandboxes/Expiration"},{"title":"Lifecycle signals","href":"/Sandboxes/Lifecycle-signals"}]},{"title":"Process execution","href":"/Sandboxes/Processes"},{"group":"File system","pages":[{"title":"File system","sidebarTitle":"Overview","href":"/Sandboxes/Filesystem"},{"title":"Code generation tools","href":"/Sandboxes/Codegen-tools"}]},{"title":"Log streaming","href":"/Sandboxes/Log-streaming"},{"title":"Snapshots and forking","sidebarTitle":"Snapshots \u0026 forking","tag":"private preview","href":"/Sandboxes/Fork"},{"title":"Archive and unarchive sandboxes","sidebarTitle":"Archive","tag":"private preview","href":"/Sandboxes/Archive"},{"group":"Ports, previews \u0026 sessions","pages":[{"title":"Ports","href":"/Sandboxes/Ports"},{"title":"Real-time previews","href":"/Sandboxes/Preview-url"},{"title":"Handle CORS on Blaxel","sidebarTitle":"CORS","href":"/Sandboxes/CORS"},{"title":"Client-side sessions","href":"/Sandboxes/Sessions"},{"title":"Standby control","href":"/Sandboxes/Standby-control"}]},{"title":"Sandbox schedules","sidebarTitle":"Schedule","href":"/Sandboxes/Schedules"},{"group":"Proxy","pages":[{"title":"Proxy","tag":"public preview","href":"/Sandboxes/Proxy"},{"title":"Proxy routing with secrets injection","tag":"public preview","href":"/Sandboxes/Proxy-secrets-injection"},{"title":"Domain filtering","tag":"public preview","href":"/Sandboxes/Proxy-domains"}]},{"title":"Volumes for sandboxes","sidebarTitle":"Volumes","href":"/Sandboxes/Volumes"},{"title":"Build reusable sandbox images with Dockerfiles","sidebarTitle":"Images","href":"/Sandboxes/Templates"},{"title":"Run sandbox workloads as a non-root user","sidebarTitle":"Non-root user","href":"/Sandboxes/Non-root-user"},{"title":"Sandbox variables and secrets","sidebarTitle":"Variables \u0026 secrets","href":"/Sandboxes/Variables-and-secrets"},{"title":"Sandbox MCP server","sidebarTitle":"MCP server","href":"/Sandboxes/MCP"},{"title":"Sandbox best practices","sidebarTitle":"Best practices","href":"/Sandboxes/best-practices"}]},{"group":"Agent Drive","pages":[{"title":"Agent Drive overview","sidebarTitle":"Overview","tag":"private preview","href":"/Agent-drive/Overview"},{"title":"Drive permissions","sidebarTitle":"Permissions","tag":"private preview","href":"/Agent-drive/Permissions"},{"title":"Access Agent Drive over S3","sidebarTitle":"S3 endpoint","tag":"private preview","href":"/Agent-drive/S3-endpoint"}]},{"group":"Volumes","pages":[{"title":"Volumes","sidebarTitle":"Overview","href":"/Volumes/Overview"},{"title":"Volume templates","href":"/Volumes/Volumes-templates"}]},{"group":"Batch Jobs","pages":[{"title":"Jobs","sidebarTitle":"Overview","href":"/Jobs/Overview"},{"title":"Develop a job","href":"/Jobs/Develop-a-job"},{"group":"Deploy a job","pages":[{"title":"Deploy jobs","href":"/Jobs/Deploy-a-job"},{"title":"Deploy jobs with a Dockerfile","sidebarTitle":"Deploy with a Dockerfile","href":"/Jobs/Deploy-dockerfile-jobs"},{"title":"Deploy multiple jobs from a mono-repo","sidebarTitle":"Deploy multiple resources","href":"/Jobs/Deploy-multiple-jobs"},{"title":"Deploy multiple jobs from a single image","href":"/Jobs/Deploy-shared-image"}]},{"group":"Manage job execution","pages":[{"title":"Manage job execution in TypeScript","href":"/Jobs/Manage-job-execution-ts"},{"title":"Manage job execution in Python","href":"/Jobs/Manage-job-execution-py"}]},{"title":"Variables and secrets for jobs","sidebarTitle":"Variables and secrets","href":"/Jobs/Variables-and-secrets-jobs"}]},{"group":"Applications","pages":[{"title":"Applications","sidebarTitle":"Overview","tag":"private preview","href":"/Applications/Overview"}]},{"group":"MCP Servers Hosting","pages":[{"title":"MCP servers","sidebarTitle":"Overview","href":"/Functions/Overview"},{"title":"Quickstart: Adapt an existing MCP server for Blaxel","href":"/Functions/Adapt-Existing-MCP-server"},{"title":"Quickstart: Develop a custom MCP server","href":"/Functions/Create-MCP-server"},{"title":"Deploy custom MCP servers","href":"/Functions/Deploy-a-function"},{"title":"Query MCP servers","href":"/Functions/Invoke-functions"},{"title":"Code mode","href":"/Functions/Code-mode"},{"title":"Variables and secrets for MCP servers","sidebarTitle":"Variables and secrets","href":"/Functions/Variables-and-secrets"},{"title":"OAuth flow for integrations","href":"/Functions/oauth-flow"}]},{"group":"Model Gateway","pages":[{"title":"Model APIs","sidebarTitle":"Overview","href":"/Models/Overview"},{"title":"External model APIs","href":"/Models/External-model-apis"},{"title":"Query a model API","href":"/Models/Query-a-model"}]},{"group":"Observability","pages":[{"title":"Logs \u0026 traces","href":"/Observability/Overview"}]},{"group":"Integrations","pages":[{"title":"Integrations","sidebarTitle":"Overview","href":"/Integrations"},{"group":"Model providers integrations","pages":[{"title":"OpenAI integration","href":"/Integrations/OpenAI"},{"title":"Anthropic integration","href":"/Integrations/Anthropic"},{"title":"Mistral AI integration","href":"/Integrations/MistralAI"},{"title":"Cohere integration","href":"/Integrations/Cohere"},{"title":"xAI integration","href":"/Integrations/xAI"},{"title":"DeepSeek integration","href":"/Integrations/DeepSeek"},{"title":"HuggingFace integration","href":"/Integrations/HuggingFace"},{"title":"Azure AI Foundry integration","href":"/Integrations/Azure-AI-Foundry"}]},{"group":"MCP server integrations","pages":[{"title":"Google Maps","href":"/Integrations/Google-Maps"},{"title":"Gmail","href":"/Integrations/Gmail"}]},{"group":"Agent frameworks and tools","pages":[{"title":"OpenAI Agents API on Blaxel","sidebarTitle":"OpenAI Agents API","href":"/Integrations/OpenAI-Agents-API"},{"title":"AgentMail","href":"/Integrations/AgentMail"},{"title":"Rippletide","href":"/Integrations/Rippletide"}]}]},{"group":"Administration \u0026 security","pages":[{"group":"Workspaces and permissions","pages":[{"title":"Workspaces, users and roles","href":"/Security/Workspace-access-control"},{"title":"Baseten managed workspaces","href":"/Security/Baseten-managed-workspaces"},{"title":"Service accounts","href":"/Security/Service-accounts"}]},{"title":"Access tokens","href":"/Security/Access-tokens"},{"title":"Billing Explorer API","href":"/Security/Billing-Explorer-API"},{"group":"Identity \u0026 Access","pages":[{"title":"Domain capture","href":"/Security/Domain-capture"},{"title":"SAML \u0026 Directory Sync","tag":"preview","href":"/Security/SSO-Directory-sync"}]},{"title":"Usage and quotas","href":"/Security/Quotas"},{"title":"Data collection and privacy","href":"/Security/Data-collection-and-privacy"},{"title":"Policies","href":"/Model-Governance/Policies"},{"group":"Infrastructure","pages":[{"title":"Regions","href":"/Infrastructure/Regions"},{"title":"Generations","href":"/Infrastructure/Gens"},{"title":"Dedicated egress gateways","tag":"private preview","href":"/Infrastructure/Dedicated-egress-gateways"},{"title":"Custom domains","href":"/Infrastructure/Custom-domains"},{"title":"HTTP validation","tag":"private preview","href":"/Infrastructure/Custom-domains-http-validation"}]}]},{"group":"Troubleshooting","pages":[{"title":"Troubleshoot Blaxel deployments, runtime, and CLI errors","sidebarTitle":"Troubleshoot common errors","href":"/troubleshooting"},{"title":"Error codes reference","href":"/troubleshooting/error-codes"},{"group":"Knowledge base","pages":[{"title":"Knowledge Base","sidebarTitle":"Overview","href":"/knowledge-base/overview"},{"group":"Integrations","pages":[{"title":"Set up Next.js with Blaxel Sandboxes","href":"/knowledge-base/integrations/setting-up-nextjs-with-blaxel-sandboxes"},{"title":"Set up Astro with Blaxel Sandboxes","href":"/knowledge-base/integrations/setting-up-astro-with-blaxel-sandboxes"},{"title":"Set up Vite with Blaxel Sandboxes","href":"/knowledge-base/integrations/setting-up-vite-with-blaxel-sandboxes"},{"title":"Set up Expo with Blaxel Sandboxes","href":"/knowledge-base/integrations/setting-up-expo-with-blaxel-sandboxes"}]},{"group":"Configuration and Operation","pages":[{"title":"Using custom domains with sandboxes","href":"/knowledge-base/configuration-and-operation/using-custom-domains-with-sandboxes"},{"title":"Getting static IP addresses for Blaxel sandboxes","href":"/knowledge-base/configuration-and-operation/getting-static-ip-addresses-for-blaxel-sandboxes"},{"title":"Understanding sandbox active vs standby states and billing","href":"/knowledge-base/configuration-and-operation/understanding-sandbox-active-vs-standby-states-and-billing"},{"title":"Understanding sandbox TTL and expiration policies","href":"/knowledge-base/configuration-and-operation/understanding-sandbox-ttl-and-expiration-policies"},{"title":"Use template names instead of image IDs when creating sandboxes","href":"/knowledge-base/configuration-and-operation/use-template-names-instead-of-image-id-when-creating-sandboxes"},{"title":"Ensure sandboxes use the latest deployed image","href":"/knowledge-base/configuration-and-operation/ensure-sandboxes-use-the-latest-deployed-image"},{"title":"Volume resizing for running sandboxes","href":"/knowledge-base/configuration-and-operation/volume-resizing-for-running-sandboxes"},{"title":"Sandbox inactivity with long-running processes","href":"/knowledge-base/configuration-and-operation/sandbox-inactivity-with-long-running-processes"},{"title":"Batch delete sandboxes from the CLI","href":"/knowledge-base/configuration-and-operation/batch-delete-sandboxes-from-the-cli"}]},{"group":"Security and Authentication","pages":[{"title":"Setting up MCP servers with authentication on Blaxel","href":"/knowledge-base/security-and-authentication/setting-up-mcp-servers-with-authentication-on-blaxel"},{"title":"Multi-Factor Authentication (MFA) and compliance requirements","href":"/knowledge-base/security-and-authentication/multi-factor-authentication-mfa-and-compliance-requirements"},{"title":"How to authenticate the Blaxel CLI in CI environments","href":"/knowledge-base/security-and-authentication/how-to-authenticate-the-bl-cli-in-ci-environments"}]},{"group":"Troubleshooting","pages":[{"title":"Resolving sandbox creation issues","href":"/knowledge-base/troubleshooting/resolving-sandbox-creation-issues"},{"title":"Resolving sandbox creation race conditions and duplicate requests","href":"/knowledge-base/troubleshooting/resolving-sandbox-creation-race-conditions-and-duplicate-requests"},{"title":"Troubleshooting custom Docker image deployment issues","href":"/knowledge-base/troubleshooting/troubleshooting-custom-docker-image-deployment-issues"},{"title":"Sandbox limits and quota exceeded errors","href":"/knowledge-base/troubleshooting/sandbox-limits-and-quota-exceeded-errors"},{"title":"WebSocket connection timeouts and the 15-minute limit","href":"/knowledge-base/troubleshooting/websocket-connection-timeouts-and-15-minute-limit"},{"title":"Handling Preview not found 404 errors in sandboxes","href":"/knowledge-base/troubleshooting/handling-preview-not-found-404-errors-in-sandboxes"},{"title":"Resolving sandbox restarts caused by nc not found","href":"/knowledge-base/troubleshooting/sandbox-restarting-nc-not-found"},{"title":"When localhost goes silent in Debian-based sandboxes","href":"/knowledge-base/troubleshooting/when-localhost-goes-silent-in-debian-based-sandboxes"},{"title":"Fix Miniflare inspector startup failures on Carbon sandboxes","href":"/knowledge-base/troubleshooting/miniflare-inspector-startup-failures-on-carbon"},{"title":"SSL certificate verification errors when cloning repositories","href":"/knowledge-base/troubleshooting/ssl-certificate-verification-errors-when-cloning-repositories"},{"title":"Resolving ENOSPC no space left on device errors","href":"/knowledge-base/troubleshooting/resolve-enospc-no-space-left-on-device-errors"}]}]}]}]},{"tab":"Tutorials and Examples","pages":[{"title":"Tutorials and Examples","href":"/Tutorials/Overview"}]},{"tab":"Platform APIs Reference","pages":[{"title":"Platform APIs Reference","href":"/api-reference/introduction"}]},{"tab":"Sandbox API Reference","pages":[{"title":"Sandbox API Reference","href":"/api-reference/archive/export-the-filesystem-changes-to-a-presigned-url"}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/sdk-reference/introduction"}]},{"tab":"CLI Reference","pages":[{"title":"CLI Reference","href":"/cli-reference/introduction"}]},{"tab":"Deployment Reference","pages":[{"title":"Deployment Reference","href":"/deployment-reference"}]}]},"basePath":"","title":"Get started - Documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["10e4515597"],"chunks":["BannerMarkdown-DIeMibn4.js","dist-DJnKvr0g.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-B2v50t8t.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}