Write Python, JavaScript, and Bash inside one program, and hand code exactly the authority it needs โ no more. Compiled to CASM bytecode and run on the CVM1 virtual machine. Early, incomplete, and moving fast.
_
Drop into another language mid-program with @python { } or @javascript { }. Python round-trips real values back into Crush today; JavaScript and Bash execute but don't yet return values.
No ambient authority. A program gets io.print, fs.read, net.get only when you grant them โ and nothing it wasn't handed. This is the core idea the language is built around.
Crush compiles to CASM bytecode and runs on the CVM1 virtual machine. In the LiteVM stack it plugs into (exo-light), the same capability set also drives a fuel-metered WebAssembly sandbox โ CVM1 and WASM capsules side by side, one enforcement model.
Crush is alpha. Here's the real state, so you can decide what to try.
The language, compiler, and VM run real programs: functions, structs, ranges (for i in 0..n), the capability system, and @python blocks with full value marshaling. cargo install gets you crushc / crush-run / crush-repl.
JavaScript and Bash blocks run but can't return values yet. There's no single crush umbrella command. The standard library is small. Multiple execution backends still have corners that disagree โ we're building a differential harness to hunt those down.
A polyglot block currently runs with the host process's full authority โ it steps outside the capability sandbox. Don't run untrusted Crush yet. The enforcement machinery already exists (the LiteVM stack gates crush's host capabilities today); routing polyglot spawns through it is the fix, and it's on the roadmap. We'd rather say so than surprise you.
The core: compiler frontend, the CVM1 runtime, the CASM assembler, and the language-frontend crates.
The comprehensive technical manual, CAST/CASM specs, and polyglot guides.
Self-playing ASCII games written in Crush, each by a different LLM given only "can you learn crush?".