Get started#
Bashkit is a single Rust core, a sandboxed bash interpreter with a virtual
filesystem, no fork/exec, and no host access, shipped as a package for
every major runtime. Pick the one that matches where your code runs, and follow
its quickstart to a first script in a couple of minutes.
Choose your target#
| Target | Install | Runs in | Quickstart |
|---|---|---|---|
| Rust | cargo add bashkit | Any Rust app | Get started in Rust |
| C ABI | Native shared library | C-compatible native hosts | C API |
| Python | pip install bashkit | CPython 3.9+ | Get started in Python |
| Node / Bun / Deno | npm i @everruns/bashkit | Node ≥ 18, Bun, Deno | Get started in Node |
| Browser (WASM) | npm i @everruns/bashkit-wasm | Browser, edge runtimes | Get started in the browser |
| Pyodide | micropip.install("bashkit") | Pyodide, JupyterLite | Get started in Pyodide |
| CLI | cargo install bashkit-cli | Terminal | CLI |
Which one?
- Embedding in a Rust, C-compatible, Python, or Node/Bun/Deno service → the native crate, wheel, or NAPI addon. These share the full feature set.
- Running in a browser or edge/serverless runtime (Cloudflare Workers, Vercel Edge, Deno Deploy), or anywhere a native addon can’t load → the browser (WASM) package. It even has a live terminal you can try right on the page.
- Running inside Pyodide or JupyterLite (Python in the browser) → the Pyodide wheel.
- Running scripts from a terminal → the CLI.
The same core everywhere#
Whichever target you choose, the shell semantics are identical: the same builtins, the same virtual filesystem, the same sandbox. What differs is the host API surface (async vs sync, available features) and packaging, each quickstart calls out its specifics.
Once you have a first script running, Sandbox configuration & limits covers the knobs shared across every binding: resource limits, filesystem backends, identity, and the network allowlist.
Next steps#
- LLM tools, expose Bashkit as a sandboxed tool for agent frameworks.
- Sandbox configuration & limits, resource limits and sandbox options.
- Security, sandbox boundaries and what scripts cannot do.