UseDocumentation Index
Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
Use this file to discover all available pages before exploring further.
Sandbox.shell() for interactive TTY sessions. It returns a TerminalSession with raw byte streaming and no output buffering, purpose-built for interactive use. For batch command execution, use exec() instead.
Shell session
shell() always allocates a TTY and enables stdin. The returned TerminalSession streams raw bytes (no UTF-8 decode/encode round-trip), making it safe for terminal escape sequences and binary output.
Send commands and read output
TerminalSession does not buffer output. Stdout and stderr are merged into a single raw byte stream on session.output (there are no separate stdout/stderr attributes on the result). Consume session.output continuously; if you stop reading, backpressure from the bounded queue stalls the remote session.
Terminal resize
Send resize messages when the terminal dimensions change.resize() is fire-and-forget on TerminalSession.
Exiting
End a shell session by closing stdin or sending an exit command:session.wait() or session.result() to block for the exit code.
Commands and use cases
| Use case | Approach |
|---|---|
| One-off command from terminal | cwsandbox exec <id> echo hello |
| Interactive shell from terminal | cwsandbox sh <id> |
| Run a script, capture output (SDK) | exec(["python", "script.py"]) |
| Interactive shell session (SDK) | shell(["/bin/bash"]) |
| Send input to a command (SDK) | exec(["cat"], stdin=True) |
| Terminal application (vim, htop) | shell(["vim"]) + CLI raw mode |
See also
- Command execution - Running commands with
exec() - Sandbox logging - Streaming container logs