pydantic-monty-runtime
The monty command-line binary for the
Monty sandboxed Python interpreter.
$ monty -c "print('hello world')"
hello world
Usage
monty— start an interactive REPLmonty file.py— run a Python filemonty -c "<code>"— run a program passed as a string (likepython -c)-i/--interactive— run the file or-cprogram in a REPL session (likepython -i)-t/--type-check— type check (powered by ty) before executing-m/--mount /host/path::/virtual/path[::mode[::write_limit_bytes]]— mount a host directory into the sandbox (ro,rw, oroverlay)--max-memory 10MB,--max-duration 0.5,--max-allocations,--max-recursion-depth,--gc-interval— sandbox resource limits
Worker mode
monty subprocess runs the binary as a wire-protocol child: framed protobuf
requests on stdin, framed events on stdout (see the
monty-proto crate). This is how the
monty-pool crate — and through it the
pydantic-monty and
@pydantic/monty packages —
runs Monty with crash isolation. It is meant to be driven by a parent
process, not by hand.
PyPI packaging (pydantic-monty-runtime)
The binary is also packaged for PyPI as
pydantic-monty-runtime, the same
way uv and ruff package theirs: installing the wheel places the compiled
binary in the environment's scripts directory. It exists so that
pydantic-monty can find a monty binary without any manual setup, and is
installed automatically as a dependency of that package — you normally don't
install it directly.
Monty crates
monty— the core interpreter: Python parser, bytecode VM, and sandbox.monty-types— the shared boundary data types (values, exceptions, OS calls, resource limits) hosts use without linking the interpreter.monty-fs— host-side filesystem mounts: maps virtual sandbox paths to real host directories.monty-runtime— themontybinary: REPL, file runner, and subprocess worker mode. this cratemonty-pool— an elastic pool of crash-isolatedmontyworker subprocesses.monty-proto— the protobuf wire protocol spoken between pool parents and workers.monty-type-checking— type checking of sandboxed code, powered by ty.monty-typeshed— the trimmed typeshed stubs describing the stdlib subset Monty implements.monty-macros— the proc macros behindmonty's argument parsing.