Migrations

Modal Sandboxes to Vakna: SDK calls and vakna commands

Note
This page is generated from a mock CLI, and its numbers are placeholders.

Verified against vakna 0.0.0-mock on

Each Modal Sandboxes call maps to one vakna command below. Their calls are from their public docs, checked on 20 October 2026, with the page for each. Vakna is a CLI; they are SDKs, so a row maps a call to a command, not a function to a function.

Which vakna command replaces each Modal call?

Modal (JavaScript SDK) vakna
modal.sandboxes.create(app, image) (docs) vakna create
sb.exec([...]), then p.stdout.readText() and p.wait() (docs) vakna shell <box> -- <command>
modal.sandboxes.list({ appId }) (docs) vakna list
sb.terminate() (docs) vakna delete <box>
sb.snapshotFilesystem(), then modal.sandboxes.create(app, snapshot) (docs) vakna snapshot <box>, vakna fork <box> --count <n> -- <command>
blockNetwork, outboundDomainAllowlist at create (docs) lockdown by default, vakna net allow <host>
sb.filesystem.writeText(...) (docs) tar c . | vakna shell <box> -- tar x
modal.sandboxes.fromId(id) (docs) address the box by name or id in any command

What has no equivalent in Vakna?

  • Images defined in code, such as modal.Image.debian_slim().pip_install(...) (docs).
  • Tunnels that expose a port to the internet, raw TCP included (docs).
  • Volumes mounted into a sandbox (docs).

Where does Modal do more?

  • SDKs in Python, JavaScript and Go, Python first (docs).
  • Sandboxes that run up to 24 hours, with an idle timeout (docs).
  • Many sandboxes from one filesystem snapshot, and directory snapshots mounted into another sandbox (docs).

What does Vakna do that Modal's docs don't show?

  • Suspend and resume with processes and memory kept. Modal documents no pause; its memory snapshots are experimental and end the sandbox (docs).
  • A fork's receipt groups failures by signature.

View as Markdown