How code runs
The agent writes Python. Mizura runs it in a sandbox on your device. Python is the only language that executes. R, Stata, SPSS, and SAS code gets written for you and handed over unrun.
On your device, in a sandbox
Every analysis runs in a separate restricted environment on your computer. On Linux, Mizura uses bubblewrap and resource limits. On macOS and Windows, it runs Python in WebAssembly under Node with layered runtime restrictions; this is not an operating-system sandbox. In both modes, analysis code is intended to access only the supplied dataset, staged files, and its output area, with network and host-process access blocked. Platform protections and package availability differ, so this should not be read as a guarantee against every runtime escape.
External data comes through literature and web search instead. See Evidence & literature.
The available stack includes the scientific Python stack: numpy, pandas, scipy, statsmodels, scikit-learn, matplotlib, plotnine, lifelines, and libraries used by method cards. Not every package or card is available on every platform; a missing dependency fails that run. While a run goes, the sandbox panel shows live code and output. Watch exactly what executes.
Limits
| Limit | Default |
|---|---|
| Time per run | 120 seconds |
| Memory per run | 2 GB |
| Output per run (single file and total) | 128 MB each |
| Tables / figures per run | 50 / 20 |
| Files and folders under the output directory | 5,000 entries |
The 120-second clock is the one you will meet. Long model fits. Bootstraps. Unvectorized loops. Split the work up, or vectorize it.
These are engine defaults and can be changed by the operator. Linux also applies a CPU-time limit; WebAssembly uses a wall-clock timeout and a memory watchdog instead. Check platform-specific package and runtime limits before relying on a method.
Failures you will actually see
- Timeout. The 120-second limit. Smaller runs, or vectorize.
- Out of memory. Past 2 GB. For very large datasets, ask the agent to work with the file in place instead of loading it whole. See Your data.
- A blocked operation. The code tried something the sandbox forbids. Reaching the internet. Reading a file outside the session. The error names what was blocked. Keep the analysis inside the session.
- File not found for a path on your machine. The sandbox sees staged files only. Attach the file to the message, by name.
- Stopped. You pressed Stop. Recorded as stopped, not as a timeout.
A failed run does not end the conversation. Mizura classifies the error, sends the agent a targeted hint (plus the method card's own guidance for that failure, if there is one), and the agent retries. Two consecutive failures on the same analysis triggers a deeper retry.
R, Stata, SPSS, and SAS: written, never run
Ask for a translation and Mizura saves the finished Python analysis as R, Stata, SPSS, or SAS code. It appears as a tab beside the Python, headed Not run. Written from the Python script… It was not run. Its numbers are not results. Translations ship in the replication package with the same disclaimer. A general example with no run behind it is just a code block in the chat.
Execution records
Each run leaves a record with its code, result, hashes, and seed; a data hash is included when the run has data. These records fill the replication package and make replay possible. See Reports & exports.
Open any script in Outputs to see its provenance. Execution, seed, data hash, code hash, result hash, edited-from.