Overview
Features
Stateful Python machines
Each machine is a stateful Python process with its own execution state, enabling ongoing interaction and persistence across instructions.
Instruction-based execution
Interact with a machine by sending Python statements and expressions; the machine processes one instruction at a time and returns results.
REPL interface and lifecycle
Use a REPL-like interface to connect to new machines and obtain IDs to reconnect later, enabling continuous work sessions.
Automatic memory-to-disk swapping
Idle machines are swapped from memory to disk and swapped back on demand, enabling long-running repls without high memory usage.
CLI and SDK access
Interact via the CLI (e.g., login, repl, machine list) and via the ForeverVM SDK for programmatic control.
Stdout and stderr capture
Execute code and stream both stdout and stderr for real-time observation of output.
Memory limits
Create machines with memory_mb to cap RAM usage (e.g., 512MB) for controlled resource consumption.
Tag-based machine management
Create machines with tags and filter or list them by tags (e.g., env, owner, project) for organized management.
Who Is This For?
- Developers:Use ForeverVM's API/CLI/SDK to run Python code in isolated, stateful machines for experimentation and testing.
- DevOps / SREs:Provide secure, memory-limited Python sandboxes for automated tests, experiments, and reproducible runs.
- Platform integrators / SDK users:Embed ForeverVM into apps or workflows using the SDK to execute Python code in sandboxed machines.




