Skip to main content
These examples use a CoreWeave API access token in CWSANDBOX_API_KEY. For Forge API key authentication, see Get started. For CKS requirements, see Placement modes. This page shows how to terminate sandboxes reliably so resources are released when your code finishes or exits unexpectedly. Use these patterns to avoid leaving orphaned sandboxes running after your script completes. Use a context manager to handle cleanup automatically:
For sandboxes created without a context manager, call .stop() explicitly:
As a safety net, the SDK registers global cleanup handlers for atexit and signals (Ctrl+C, SIGTERM). These handlers stop sandboxes that belong to a Session, so session-managed sandboxes stop even on unexpected exits. A sandbox created directly with Sandbox.run() isn’t part of a session, so it keeps running after the process exits until you stop it or its lifetime expires. See Set up Claude Code with the Sandboxes SDK for a workflow that relies on this. For batch cleanup, tagging strategies, and orphan recovery, see the Cleanup patterns guide.
Last modified on October 14, 2026