Quick install
Install Celesto with a single command:Manual install
If you prefer to install step by step:pip install celesto pulls in the matching smolvm-core wheel automatically — most users do not need Rust installed.
Linux may prompt for
sudo during celesto setup to install host packages (nftables, iproute2) and configure runtime permissions. Firecracker itself installs into your home directory at ~/.smolvm/bin, so it needs no system folders. On macOS, setup installs QEMU via Homebrew.newgrp kvm, or log out and back in.
Choose where Firecracker is installed
On Linux,celesto setup installs Firecracker into ~/.smolvm/bin for the user who runs the command. The install is atomic: Celesto stages the binary in a temporary file and moves it into place, so a partially downloaded binary never replaces a working one. If a firecracker binary is already on your PATH, Celesto keeps using it and does not install a duplicate.
To install into a different folder for one setup run, pass --firecracker-dir:
PATH, set SMOLVM_FIRECRACKER_DIR so later Celesto commands can find the binary:
- The
--firecracker-dirflag, if passed. - The
SMOLVM_FIRECRACKER_DIRenvironment variable. When either of these is set, Celesto only looks in that folder. - Any
firecrackerbinary onPATH. - The per-user default,
~/.smolvm/bin/firecracker.
Fedora Atomic desktops
Silverblue, Bluefin, and other Fedora Atomic systems work with the normalcelesto setup command when the required host tools are already installed. Celesto never modifies the rpm-ostree deployment itself. If a required tool is missing, setup prints the exact sudo rpm-ostree install command to run, and asks you to reboot before retrying.
Install from source
Build Celesto from source when you want the latest unreleased changes, or when you plan to modify Celesto itself. This compiles the Rust helper package (smolvm-core) locally instead of downloading a prebuilt wheel.
You need Git, uv (the Python package manager Celesto uses), and the Rust toolchain.
1
Clone the repository
2
Build and install
smolvm-core from the Rust sources in the checkout.Confirm the local build loaded correctly:It prints a report of the native helpers available on your machine.
3
Set up the host and verify
celesto setup installs host dependencies — Firecracker on Linux, QEMU on macOS — and configures permissions. celesto doctor confirms your machine is ready to run sandboxes.uv run celesto ... from the repository directory, so they use the build in your checkout. To use a plain celesto command instead, activate the environment with source .venv/bin/activate.
For contribution guidelines, tests, and code style checks, see CONTRIBUTING.md.
Requirements
- Linux
- macOS
- Ubuntu, Debian, or Fedora.
celesto setupinstalls missing host packages withaptordnf. On rpm-ostree systems such as Fedora Atomic, it prints therpm-ostreecommand to run instead. Other distributions work but you may need to install host dependencies yourself - KVM support — the kernel feature that lets Celesto run virtual machines. Check with
ls /dev/kvm - x86_64 architecture
- Python 3.10+
SMOLVM_BACKEND is unset or auto, Celesto picks the best backend that is actually installed on your machine. It prefers Firecracker on Linux and QEMU on macOS, and falls back through Firecracker → QEMU → libkrun so it never resolves to a hypervisor your host cannot run.
If nothing suitable is installed, celesto sandbox create fails immediately with a plain-English message telling you what to install — before downloading the base image, so a missing hypervisor no longer costs you a multi-hundred-MB download.
To force a specific backend:
Optional extras
Install extras for agent framework examples or the web dashboard:Troubleshooting
Linux: KVM not available
Linux: KVM not available
If For cloud VMs, enable nested virtualization in your hypervisor settings.
/dev/kvm doesn’t exist, enable virtualization:Linux: Permission denied on /dev/kvm
Linux: Permission denied on /dev/kvm
Add your user to the
kvm group and activate it:macOS: qemu-system not found
macOS: qemu-system not found
Ensure Homebrew’s bin directory is in your
PATH:Uninstall
Next steps
Quickstart
Run your first sandbox in minutes
Basic usage
Learn about VM configuration options
Custom images
Build your own VM images with custom tools
API reference
Explore the complete API
