Transactional filesystem simulation
Make the change.
Before you make it real.¶
Run workspace automation in a virtual snapshot. Review the proposed changes. Commit when you're ready. One fast Rust engine, at home in Rust and Python.
use vsh::{ReceiptDetail, RunRequest, Runtime, RuntimeConfig};
fn main() -> Result<(), vsh::VshError> {
let config = RuntimeConfig::new("./project");
let runtime = Runtime::open(config)?;
let code = "vsh_write('/workspace/hello.txt', 'Hello, VSH!')";
let request = RunRequest::new(code)
.with_detail(ReceiptDetail::Full);
let receipt = runtime.preview(request)?;
println!("{:?}", receipt.changes);
Ok(())
}
These vsh_* functions are included in VSH. Start with the
self-contained installation tutorial for worker setup and a complete
preview → review → commit example.
Find your way in.¶
Same engine. Your workflow.
Every change, accounted for.¶
From an idea to a verified result.
- 01 / Simulate
A real virtual workspace
Monty functions and
pathlibshare one copy-on-write snapshot. Reads see earlier writes. - 02 / Inspect
Evidence you can review
Inspect changed paths and bounded content. Policy and approval bind to the exact transaction.
- 03 / Commit
Revalidated, then applied
VSH checks for drift, applies the approved changes, and verifies the result with recovery support.
VSH is for bounded workspace transformations. Monty has no host mount, subprocess, network capability, or ambient environment. See the guarantees for the precise execution and commit contract.