Runs a command and streams its output as Server-Sent Events while it
runs. Each data: line is a JSON object: an output chunk
({"stdout":"..."} or {"stderr":"..."}), the terminal event
({"exit_code":N,"finished":true}), or an error
({"error":"...","finished":true}). The stream closes when the command
exits. The sandbox must be running; a paused sandbox returns 503.
Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs
do this automatically).
timeout_s is a hard runtime limit: the command is killed after that
many seconds regardless of output, exiting with code 124.
User to run the command as: a name, a uid, name:group, or uid:gid (default the template's user). An unknown user or group fails as bad_request (400 on POST /exec).
Example:
"root"
Response
A Server-Sent Events stream of output and lifecycle events.
One Server-Sent Event from POST /exec/stream, delivered as a data: line carrying this JSON object. Output events carry stdout or stderr (each with a timestamp); the terminal event carries finished: true with exit_code, or error and code if the command could not be run. The stream may also include SSE comment keepalive lines (: keepalive), which carry no data.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Superserve","colors":{"primary":"#B2FAB4","light":"#B2FAB4","dark":"#B2FAB4"},"logo":"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/logo.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=69233fb550a17b81d7d7fa083ca7f3de","favicon":"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/favicon.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=5c49ee9ed883d587b192cd419a4747d8","appearance":{"default":"dark","strict":true},"background":{"decoration":"gradient","color":{"dark":"#141414"}},"navbar":{"links":[{"href":"https://github.com/superserve-ai/superserve","label":"GitHub","type":"github"}],"primary":{"type":"button","label":"Get Started","href":"https://console.superserve.ai/auth/signup/?utm_source=docs\u0026utm_medium=navbar"}},"footer":{"socials":{"x":"https://x.com/superserve_ai","github":"https://github.com/superserve-ai","linkedin":"https://www.linkedin.com/company/super-serve-ai"},"links":[{"header":"Resources","items":[{"label":"Status","href":"https://status.superserve.ai"}]}]},"fonts":{"heading":{"family":"Instrument Sans"},"body":{"family":"Instrument Sans"}},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"vitesse-dark"}},"latex":false},"integrations":{"posthog":{"apiKey":"phc_gjpDKKKQJAnkxkqLrPGrAhoariKsaHNuTpI5rVhkYre","apiHost":"https://p.superserve.ai"}},"contextual":{"options":["copy","view","claude","mcp","add-mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superserve-ai-superserve-33","hasAudioNarration":false,"actualSubdomain":"superserve-ai-superserve-33","customDomains":["docs.superserve.ai"],"gitSource":{"type":"github","owner":"superserve-ai","repo":"superserve","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec322c25c041b786077789","collectionId":"79e56834-76ad-435e-a8ed-f6ef6b1592de","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec322c25c041b786077789"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee45fff52394cd3f372a82","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"REST API","count":51},{"language":"default","tag":"Documentation","count":31},{"language":"default","tag":"Integrations","count":17},{"language":"default","tag":"Sandboxes","count":14},{"language":"default","tag":"Templates","count":13},{"language":"default","tag":"Sandbox","count":10},{"language":"default","tag":"Secrets","count":10},{"language":"default","tag":"SDK Reference","count":6},{"language":"default","tag":"Reference","count":6},{"language":"default","tag":"Team Management","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/exec/run-a-command-and-stream-output-over-sse","slug":"/api-reference/exec/run-a-command-and-stream-output-over-sse","pageMetadata":{"title":"Run a command and stream output over SSE","description":"Runs a command and streams its output as Server-Sent Events while it\nruns. Each `data:` line is a JSON object: an output chunk\n(`{\"stdout\":\"...\"}` or `{\"stderr\":\"...\"}`), the terminal event\n(`{\"exit_code\":N,\"finished\":true}`), or an error\n(`{\"error\":\"...\",\"finished\":true}`). The stream closes when the command\nexits. The sandbox must be `running`; a paused sandbox returns `503`.\nActivate it first with `POST /sandboxes/{sandbox_id}/activate` (the SDKs\ndo this automatically).\n\n`timeout_s` is a hard runtime limit: the command is killed after that\nmany seconds regardless of output, exiting with code 124.\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec/stream","href":"/api-reference/exec/run-a-command-and-stream-output-over-sse","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Runs a command and streams its output as Server-Sent Events while it\\nruns. Each \", _jsx(_components.code, {\n children: \"data:\"\n }), \" line is a JSON object: an output chunk\\n(\", _jsx(_components.code, {\n children: \"{\\\"stdout\\\":\\\"...\\\"}\"\n }), \" or \", _jsx(_components.code, {\n children: \"{\\\"stderr\\\":\\\"...\\\"}\"\n }), \"), the terminal event\\n(\", _jsx(_components.code, {\n children: \"{\\\"exit_code\\\":N,\\\"finished\\\":true}\"\n }), \"), or an error\\n(\", _jsx(_components.code, {\n children: \"{\\\"error\\\":\\\"...\\\",\\\"finished\\\":true}\"\n }), \"). The stream closes when the command\\nexits. The sandbox must be \", _jsx(_components.code, {\n children: \"running\"\n }), \"; a paused sandbox returns \", _jsx(_components.code, {\n children: \"503\"\n }), \".\\nActivate it first with \", _jsx(_components.code, {\n children: \"POST /sandboxes/{sandbox_id}/activate\"\n }), \" (the SDKs\\ndo this automatically).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"timeout_s\"\n }), \" is a hard runtime limit: the command is killed after that\\nmany seconds regardless of output, exiting with code 124.\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"vitesse-dark"}},"config":{},"pageMetadata":{"title":"Run a command and stream output over SSE","description":"Runs a command and streams its output as Server-Sent Events while it\nruns. Each `data:` line is a JSON object: an output chunk\n(`{\"stdout\":\"...\"}` or `{\"stderr\":\"...\"}`), the terminal event\n(`{\"exit_code\":N,\"finished\":true}`), or an error\n(`{\"error\":\"...\",\"finished\":true}`). The stream closes when the command\nexits. The sandbox must be `running`; a paused sandbox returns `503`.\nActivate it first with `POST /sandboxes/{sandbox_id}/activate` (the SDKs\ndo this automatically).\n\n`timeout_s` is a hard runtime limit: the command is killed after that\nmany seconds regardless of output, exiting with code 124.\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec/stream","href":"/api-reference/exec/run-a-command-and-stream-output-over-sse","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"execStream","tags":["Exec"],"summary":"Run a command and stream output over SSE","description":"Runs a command and streams its output as Server-Sent Events while it\nruns. Each `data:` line is a JSON object: an output chunk\n(`{\"stdout\":\"...\"}` or `{\"stderr\":\"...\"}`), the terminal event\n(`{\"exit_code\":N,\"finished\":true}`), or an error\n(`{\"error\":\"...\",\"finished\":true}`). The stream closes when the command\nexits. The sandbox must be `running`; a paused sandbox returns `503`.\nActivate it first with `POST /sandboxes/{sandbox_id}/activate` (the SDKs\ndo this automatically).\n\n`timeout_s` is a hard runtime limit: the command is killed after that\nmany seconds regardless of output, exiting with code 124.\n","security":["d4263375-e537-407b-a17f-efb87753db05"],"requestBody":"f42ebfb4-78e1-496c-9dec-e4f3af226a24","responses":{"200":"92f8b7dc-bbc2-4059-be66-4d2eef93e20c","400":"c7d8884c-2d1e-4726-9ce4-19c61a1e7392","401":"fdb93dcc-0af9-4ee9-828b-5118fd593f42","404":"17d3a560-4e6a-4593-9d90-4909309a5270","500":"c1b8b642-afe8-46fe-811f-7785079757f9","503":"9afd8fbe-ec56-4849-b7f8-63108d826048"},"method":"post","type":"path","servers":["202b030f-fd9c-4643-9866-2d16bb6a5e40","0bc4b293-ff37-40a0-a70c-5fbc67706514"],"path":"/exec/stream","baseUrlOptions":["https://sandbox.superserve.ai","https://boxd-{sandbox_id}.sandbox.superserve.ai"],"title":"Run a command and stream output over SSE","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["command"],"properties":{"command":{"type":"string","minLength":1,"description":"Command to execute. Wrapped in `/bin/sh -c` unless `args` is provided.","isRequired":true,"uniqueKey":"command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"args.items.[INDEX]","typeLabel":"string"},"description":"If provided, `command` is used as the binary and `args` as arguments (no shell wrapping).","uniqueKey":"args","typeLabel":"string[]"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"env.additionalProperties","typeLabel":"string"},"description":"Environment variables for the command.","uniqueKey":"env","typeLabel":"object"},"working_dir":{"type":"string","description":"Working directory (default the template's working directory, else the user's home, which is `/home/user` for root).","uniqueKey":"working_dir","typeLabel":"string"},"timeout_s":{"type":"integer","default":30,"description":"Timeout in seconds.","uniqueKey":"timeout_s","typeLabel":"integer"},"user":{"type":"string","description":"User to run the command as: a name, a uid, `name:group`, or `uid:gid` (default the template's user). An unknown user or group fails as `bad_request` (400 on `POST /exec`).\n","example":"root","uniqueKey":"user","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"command":"\u003cstring>","args":["\u003cstring>"],"env":{},"working_dir":"\u003cstring>","timeout_s":30,"user":"root"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"92f8b7dc-bbc2-4059-be66-4d2eef93e20c":{"description":"A Server-Sent Events stream of output and lifecycle events.","content":{"text/event-stream":{"schema":{"type":"object","description":"One Server-Sent Event from `POST /exec/stream`, delivered as a `data:` line carrying this JSON object. Output events carry `stdout` or `stderr` (each with a `timestamp`); the terminal event carries `finished: true` with `exit_code`, or `error` and `code` if the command could not be run. The stream may also include SSE comment keepalive lines (`: keepalive`), which carry no data.\n","properties":{"timestamp":{"type":"string","format":"date-time","description":"RFC 3339 time the event was emitted (output and terminal events).","uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"stdout":{"type":"string","description":"A chunk of standard output.","uniqueKey":"stdout","typeLabel":"string"},"stderr":{"type":"string","description":"A chunk of standard error.","uniqueKey":"stderr","typeLabel":"string"},"finished":{"type":"boolean","description":"Present and `true` on the terminal event.","uniqueKey":"finished","typeLabel":"boolean"},"exit_code":{"type":"integer","description":"Process exit code, on the terminal event.","uniqueKey":"exit_code","typeLabel":"integer"},"error":{"type":"string","description":"Error message if the command could not be run.","uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Error code accompanying `error` (e.g. `bad_request`, `exec_failed`).","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"timestamp":"2023-11-07T05:31:56Z","stdout":"\u003cstring>","stderr":"\u003cstring>","finished":true,"exit_code":123,"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"c7d8884c-2d1e-4726-9ce4-19c61a1e7392":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fdb93dcc-0af9-4ee9-828b-5118fd593f42":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"17d3a560-4e6a-4593-9d90-4909309a5270":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c1b8b642-afe8-46fe-811f-7785079757f9":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"9afd8fbe-ec56-4849-b7f8-63108d826048":{"description":"The sandbox is not currently running (for example, paused) or is temporarily unavailable. For a paused sandbox, activate it with `POST /sandboxes/{sandbox_id}/activate` and retry; the SDKs do this automatically.\n","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d4263375-e537-407b-a17f-efb87753db05":{"accessToken":{"type":"apiKey","in":"header","name":"X-Access-Token","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","scopes":[],"schemeName":"accessToken"}}},"servers":{"202b030f-fd9c-4643-9866-2d16bb6a5e40":{"url":"https://sandbox.superserve.ai","description":"Shared host — send the sandbox ID in `X-Superserve-Sandbox-Id`."},"0bc4b293-ff37-40a0-a70c-5fbc67706514":{"url":"https://boxd-{sandbox_id}.sandbox.superserve.ai","description":"Per-sandbox host.","variables":{"sandbox_id":{"default":"","description":"The sandbox ID."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Access-Token","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","scopes":[],"schemeName":"accessToken"},"schema":{"title":"X-Access-Token","type":"string","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"accessToken","name":"X-Access-Token"}],"title":"accessToken"}]},"originalFileLocation":"https://api.superserve.ai/openapi.yaml"},"subdomain":"superserve-ai-superserve-33","siteName":"Superserve","title":"Run a command and stream output over SSE - Superserve","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T20:32:34.273Z","originalFileLocation":"api-reference/exec/run-a-command-and-stream-output-over-sse.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Runs a command and streams its output as Server-Sent Events while it runs. Each data: line is a JSON object: an output chunk ({\u0026quot;stdout\u0026quot;:\u0026quot;...\u0026quot;} or {\u0026quot;stderr\u0026quot;:\u0026quot;...\u0026quot;}), the terminal event ({\u0026quot;exit_code\u0026quot;:N,\u0026quot;finished\u0026quot;:true}), or an error ({\u0026quot;error\u0026quot;:\u0026quot;...\u0026quot;,\u0026quot;finished\u0026quot;:true}). The stream closes when the command exits. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically). timeout_s is a hard runtime limit: the command is killed after that many seconds regardless of output, exiting with code 124.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Superserve\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Run a command and stream output over SSE - Superserve\">\u003cmeta data-mint-head property=\"og:description\" content=\"Runs a command and streams its output as Server-Sent Events while it runs. Each data: line is a JSON object: an output chunk ({\u0026quot;stdout\u0026quot;:\u0026quot;...\u0026quot;} or {\u0026quot;stderr\u0026quot;:\u0026quot;...\u0026quot;}), the terminal event ({\u0026quot;exit_code\u0026quot;:N,\u0026quot;finished\u0026quot;:true}), or an error ({\u0026quot;error\u0026quot;:\u0026quot;...\u0026quot;,\u0026quot;finished\u0026quot;:true}). The stream closes when the command exits. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically). timeout_s is a hard runtime limit: the command is killed after that many seconds regardless of output, exiting with code 124.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Superserve\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superserve-ai-superserve-33.mintlify.site/_mintlify/api/og/v2?division=Exec\u0026amp;title=Run+a+command+and+stream+output+over+SSE\u0026amp;description=Runs+a+command+and+streams+its+output+as+Server-Sent+Events+while+it%0Aruns.+Each+%60data%3A%60+line+is+a+JSON+object%3A+an+output+chunk%0A%28%60%7B%22stdout%22%3A%22...%22%7D%60+or+%60%7B%22stderr%22\u0026amp;theme=812d3aa274a9b09d054f08f6\u0026amp;signature=1183602b358703d881511a429e8ffbb87dc11b2c686e6cf740e0c375a4ddd58c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Run a command and stream output over SSE - Superserve\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Runs a command and streams its output as Server-Sent Events while it runs. Each data: line is a JSON object: an output chunk ({\u0026quot;stdout\u0026quot;:\u0026quot;...\u0026quot;} or {\u0026quot;stderr\u0026quot;:\u0026quot;...\u0026quot;}), the terminal event ({\u0026quot;exit_code\u0026quot;:N,\u0026quot;finished\u0026quot;:true}), or an error ({\u0026quot;error\u0026quot;:\u0026quot;...\u0026quot;,\u0026quot;finished\u0026quot;:true}). The stream closes when the command exits. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically). timeout_s is a hard runtime limit: the command is killed after that many seconds regardless of output, exiting with code 124.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superserve-ai-superserve-33.mintlify.site/_mintlify/api/og/v2?division=Exec\u0026amp;title=Run+a+command+and+stream+output+over+SSE\u0026amp;description=Runs+a+command+and+streams+its+output+as+Server-Sent+Events+while+it%0Aruns.+Each+%60data%3A%60+line+is+a+JSON+object%3A+an+output+chunk%0A%28%60%7B%22stdout%22%3A%22...%22%7D%60+or+%60%7B%22stderr%22\u0026amp;theme=812d3aa274a9b09d054f08f6\u0026amp;signature=1183602b358703d881511a429e8ffbb87dc11b2c686e6cf740e0c375a4ddd58c\">\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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Superserve\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#B2FAB4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/exec/run-a-command-and-stream-output-over-sse.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.superserve.ai/#organization\",\"name\":\"Superserve\",\"url\":\"https://docs.superserve.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/logo.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=69233fb550a17b81d7d7fa083ca7f3de\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.superserve.ai#website\",\"name\":\"Superserve\",\"url\":\"https://docs.superserve.ai\",\"publisher\":{\"@id\":\"https://docs.superserve.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse#webpage\",\"url\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse\",\"name\":\"Run a command and stream output over SSE\",\"description\":\"Runs a command and streams its output as Server-Sent Events while it runs. Each data: line is a JSON object: an output chunk ({\\\"stdout\\\":\\\"...\\\"} or {\\\"stderr\\\":\\\"...\\\"}), the terminal event ({\\\"exit_code\\\":N,\\\"finished\\\":true}), or an error ({\\\"error\\\":\\\"...\\\",\\\"finished\\\":true}). The stream closes when the command exits. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically). timeout_s is a hard runtime limit: the command is killed after that many seconds regardless of output, exiting with code 124.\",\"dateModified\":\"2026-11-06T20:32:34.273Z\",\"isPartOf\":{\"@id\":\"https://docs.superserve.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Exec\",\"item\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Run a command and stream output over SSE\",\"item\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse#apireference\",\"headline\":\"Run a command and stream output over SSE\",\"name\":\"Run a command and stream output over SSE\",\"description\":\"Runs a command and streams its output as Server-Sent Events while it runs. Each data: line is a JSON object: an output chunk ({\\\"stdout\\\":\\\"...\\\"} or {\\\"stderr\\\":\\\"...\\\"}), the terminal event ({\\\"exit_code\\\":N,\\\"finished\\\":true}), or an error ({\\\"error\\\":\\\"...\\\",\\\"finished\\\":true}). The stream closes when the command exits. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically). timeout_s is a hard runtime limit: the command is killed after that many seconds regardless of output, exiting with code 124.\",\"url\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse\",\"mainEntityOfPage\":{\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-stream-output-over-sse#webpage\"},\"dateModified\":\"2026-11-06T20:32:34.273Z\",\"publisher\":{\"@id\":\"https://docs.superserve.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.superserve.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Superserve\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Superserve","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction"}]},{"anchor":"SDK Reference","icon":"code","pages":[{"title":"SDK Reference","href":"/sdk-reference/sandbox"}]},{"anchor":"REST API","icon":"server","groups":[{"group":"Sandboxes","pages":[{"title":"List all sandboxes","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes","href":"/api-reference/sandboxes/list-all-sandboxes"},{"title":"Create a new sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes","href":"/api-reference/sandboxes/create-a-new-sandbox"},{"title":"Get a sandbox by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/get-a-sandbox-by-id"},{"title":"Partially update a running sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/partially-update-a-running-sandbox"},{"title":"Delete a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/delete-a-sandbox"},{"title":"Pause a running sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/pause","href":"/api-reference/sandboxes/pause-a-running-sandbox"},{"title":"Resume a paused sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/resume","href":"/api-reference/sandboxes/resume-a-paused-sandbox"},{"title":"Activate a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/activate","href":"/api-reference/sandboxes/activate-a-sandbox"},{"title":"List a sandbox's egress activity","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/network","href":"/api-reference/sandboxes/list-a-sandboxs-egress-activity"},{"title":"List published preview ports","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/preview-ports","href":"/api-reference/sandboxes/list-published-preview-ports"},{"title":"Publish or update a preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports","href":"/api-reference/sandboxes/publish-or-update-a-preview-port"},{"title":"Unpublish a preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}/preview-ports/{port}","href":"/api-reference/sandboxes/unpublish-a-preview-port"},{"title":"Mint a token for a private preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports/{port}/token","href":"/api-reference/sandboxes/mint-a-token-for-a-private-preview-port"},{"title":"Rotate a private preview port's token generation","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports/{port}/token/rotate","href":"/api-reference/sandboxes/rotate-a-private-preview-ports-token-generation"}]},{"group":"Snapshots","pages":[{"title":"Snapshot a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/snapshot","href":"/api-reference/snapshots/snapshot-a-sandbox"},{"title":"List a sandbox's snapshots","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/snapshots","href":"/api-reference/snapshots/list-a-sandboxs-snapshots"},{"title":"Get a snapshot","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /snapshots/{snapshot_id}","href":"/api-reference/snapshots/get-a-snapshot"},{"title":"Rename a snapshot","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /snapshots/{snapshot_id}","href":"/api-reference/snapshots/rename-a-snapshot"},{"title":"Delete a snapshot","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /snapshots/{snapshot_id}","href":"/api-reference/snapshots/delete-a-snapshot"}]},{"group":"Exec","pages":[{"title":"Run a command and wait for it to finish","description":"Runs a command to completion and returns its output in a single\nresponse, retained up to a server-side cap (see `truncated`). For live\nor unbounded output use `POST /exec/stream` (Server-Sent Events) or\n`GET /exec/connect` (WebSocket). A non-zero exit code is returned in\nthe body, not as an HTTP error. The sandbox must be `running`; a\npaused sandbox returns `503`. Activate it first with\n`POST /sandboxes/{sandbox_id}/activate` (the SDKs do this\nautomatically).\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec","href":"/api-reference/exec/run-a-command-and-wait-for-it-to-finish"},{"title":"Run a command and stream output over SSE","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec/stream","href":"/api-reference/exec/run-a-command-and-stream-output-over-sse"},{"title":"Run a command over a WebSocket","description":"Runs a command over a WebSocket, streaming output back and accepting\nstdin over one connection.\n\nConnect with two `Sec-WebSocket-Protocol` values: `superserve.exec.v1`\nand `token.\u003caccess-token>`.\n\nI/O rides binary frames prefixed with a one-byte channel, so output is\nbyte-exact; lifecycle and control ride text JSON frames.\n\n- First frame (text): an `ExecRequest` JSON object. Omitting `timeout_s`\n runs with no per-command timeout.\n- Client frames: a binary frame is stdin, prefixed with channel `0x00`\n (`[0x00][bytes]`); a text frame is JSON control —\n `{\"type\":\"stdin_close\"}` or `{\"type\":\"signal\",\"name\":\"SIGINT\"}`.\n Client frames are capped at 4 MiB (servers may enforce as low as\n 64 KiB during rollout); frames over the cap close the socket with\n code 1009, so chunk larger stdin.\n- Server frames: a binary frame is output, prefixed with its channel\n (`0x01` stdout, `0x02` stderr); a text frame is JSON lifecycle —\n `{\"exit_code\":N,\"finished\":true}`, or `{\"error\":\"...\",\"code\":\"...\"}`.\n Closes on exit.\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /exec/connect","href":"/api-reference/exec/run-a-command-over-a-websocket"}]},{"group":"Files","pages":[{"title":"List a directory inside a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/files","href":"/api-reference/files/list-a-directory-inside-a-sandbox"},{"title":"Read a file from a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /files","href":"/api-reference/files/read-a-file-from-a-sandbox"},{"title":"Write a file to a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /files","href":"/api-reference/files/write-a-file-to-a-sandbox"}]},{"group":"Templates","pages":[{"title":"List templates visible to the caller","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates","href":"/api-reference/templates/list-templates-visible-to-the-caller"},{"title":"Create a template and kick off the first build","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /templates","href":"/api-reference/templates/create-a-template-and-kick-off-the-first-build"},{"title":"Get a template by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}","href":"/api-reference/templates/get-a-template-by-id"},{"title":"Delete a template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /templates/{template_id}","href":"/api-reference/templates/delete-a-template"},{"title":"List recent builds for a template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds","href":"/api-reference/templates/list-recent-builds-for-a-template"},{"title":"Rebuild an existing template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /templates/{template_id}/builds","href":"/api-reference/templates/rebuild-an-existing-template"},{"title":"Get a build by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds/{build_id}","href":"/api-reference/templates/get-a-build-by-id"},{"title":"Cancel an in-flight build","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /templates/{template_id}/builds/{build_id}","href":"/api-reference/templates/cancel-an-in-flight-build"},{"title":"Stream build logs via SSE","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds/{build_id}/logs","href":"/api-reference/templates/stream-build-logs-via-sse"}]},{"group":"Secrets","pages":[{"title":"Create a secret","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /secrets","href":"/api-reference/secrets/create-a-secret"},{"title":"List secrets for the calling team","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets","href":"/api-reference/secrets/list-secrets-for-the-calling-team"},{"title":"Get a secret's metadata","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}","href":"/api-reference/secrets/get-a-secrets-metadata"},{"title":"Rotate a secret's value","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /secrets/{name}","href":"/api-reference/secrets/rotate-a-secrets-value"},{"title":"Revoke a secret","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /secrets/{name}","href":"/api-reference/secrets/revoke-a-secret"},{"title":"Attach a secret to a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/secrets","href":"/api-reference/sandboxes/attach-a-secret-to-a-sandbox"},{"title":"Detach a secret from a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}/secrets/{env_key}","href":"/api-reference/sandboxes/detach-a-secret-from-a-sandbox"},{"title":"List proxy egress events that used this credential","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}/audit","href":"/api-reference/secrets/list-proxy-egress-events-that-used-this-credential"},{"title":"List sandboxes currently bound to this credential","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}/sandboxes","href":"/api-reference/secrets/list-sandboxes-currently-bound-to-this-credential"},{"title":"List the built-in provider shortcut catalog","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /providers","href":"/api-reference/secrets/list-the-built-in-provider-shortcut-catalog"}]},{"group":"Team Management","pages":[{"title":"Rename a team","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /teams/{team_id}","href":"/api-reference/rbac/rename-a-team"},{"title":"List team members","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /teams/{team_id}/members","href":"/api-reference/rbac/list-team-members"},{"title":"Add or invite a team member","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/members","href":"/api-reference/rbac/add-or-invite-a-team-member"},{"title":"Deactivate a team member","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /teams/{team_id}/members/{user_id}","href":"/api-reference/rbac/deactivate-a-team-member"},{"title":"List team role assignments","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /teams/{team_id}/roles","href":"/api-reference/rbac/list-team-role-assignments"},{"title":"Assign a team role","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/roles","href":"/api-reference/rbac/assign-a-team-role"},{"title":"Revoke a team role","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /teams/{team_id}/roles/{assignment_id}","href":"/api-reference/rbac/revoke-a-team-role"}]},{"group":"Activity","pages":[{"title":"List team audit-log activity","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /activity","href":"/api-reference/activity/list-team-audit-log-activity"}]}]},{"anchor":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]}]},"basePath":"","title":"Run a command and stream output over SSE - Superserve","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BUDYNlhG.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}