Skip to content
Guides · Reference

What's Pre-installed in a Sandboxer Sandbox?

Updated October 27, 2026 .md

Short answer: A new default sandbox runs Ubuntu 24.04 with Python 3.12, Node.js 22, Go, Rust, Bun, Docker with Compose, git, gh, Google Chrome and six coding agents, including Claude Code and Codex. Java, Ruby, PHP, .NET and Deno are not installed. You have passwordless sudo, so apt adds anything missing in seconds.

This is a measured inventory, not a wish list. On 2026-10-27 we created one fresh default sandbox on prod, ran the script below inside it, and copied the output into these tables. The image is updated over time, so versions will move. Run the script yourself to see what your sandbox has today.

The machine#

Measured
OS Ubuntu 24.04.5 LTS
Kernel 6.18.56-sandboxer (x86_64)
CPU 4 vCPU; the model depends on the host machine (check with lscpu)
RAM 7.8 GiB usable of 8 GB
Disk / is 56 GB, 51 GB free on a new sandbox
User user, home /home/user, passwordless sudo, in the docker and kvm groups
Virtualization /dev/kvm present
Variables SANDBOXER_ID, SANDBOXER_SUBDOMAIN, SANDBOXER_API_URL, SANDBOXER_TOKEN

The CPU model depends on the host machine your sandbox lands on; run lscpu to see yours. Other sizes change the vCPU, RAM and disk numbers; see Machines & sizes.

Languages and runtimes#

Tool Installed Version on 2026-10-27
python3 Yes 3.12.3
node Yes v22.23.3
bun Yes 1.4.3
go Yes 1.27.2 (in /usr/local/go)
rustc, cargo Yes 1.99.1, through rustup 1.29.1
gcc Yes 13.3.0
clang Yes 18.1.3
perl Yes 5.38.2
java No apt install openjdk-21-jdk-headless
ruby No apt install ruby-full
php No apt install php-cli
dotnet No Microsoft's install script or apt feed
deno No Deno's install script

Package managers and build tools#

Tool Installed Version
pip, pip3 Yes 24.0 (system Python 3.12)
uv, uvx Yes 0.13.1
pipx Yes 1.4.3
npm, npx Yes 10.9.9
pnpm Yes 12.14.0
rustup Yes 1.29.1
apt Yes 2.8.3
make Yes GNU Make 4.3
cmake Yes 3.28.3
ninja Yes 1.11.1
pkg-config Yes 1.8.1
yarn No npm i -g yarn or corepack enable
snap, brew No

Containers, version control and browsers#

Tool Installed Version
docker Yes 29.9.0, daemon running, overlay2, no sudo needed
docker compose Yes v5.6.0
docker buildx Yes v0.38.0
podman, kubectl No
git Yes 2.43.0
gh Yes 2.102.0
git lfs No apt install git-lfs
google-chrome Yes 155.0.8059.39, headless works out of the box
chromium, firefox No
Desktop Yes XFCE (xfce4-session), Xvfb, x11vnc, xdotool 3.20160805.1

The desktop pieces are there so sbx desktop can stream a screen; see Desktop.

Coding agents#

Command Installed Version
claude (Claude Code) Yes 2.1.301
codex (Codex CLI) Yes 0.163.0
opencode Yes 1.19.3
pi Yes 0.73.1
kimi Yes 1.52.0
vibe (Mistral) Yes 2.26.1
gemini, aider, cursor-agent No

The agents are installed but not signed in. Your environment's credential switches decide which logins a sandbox receives; see Environments & secrets.

Utilities and Sandboxer tools#

Tool Installed Version
curl Yes 8.5.0
wget Yes 1.21.4
jq Yes 1.7
rg (ripgrep) Yes 14.1.0
tmux Yes 3.4
htop Yes 3.3.0
vim, nano Yes 9.1, 7.2
ffmpeg Yes 6.1.1
rsync Yes 3.2.7
ssh Yes OpenSSH 9.6p1
zip, unzip Yes 3.0, 6.00
sqlite3, psql, redis-cli No apt install sqlite3 postgresql-client redis-tools
fd, fzf, bat, tree, yq, screen No apt has all of them
host Yes Sandboxer's port-hosting helper, not the DNS lookup tool
sbx Not on PATH in our sandbox See below

host 3000 gives a port inside the sandbox an HTTPS URL, the same as sbx host from your laptop. Note that it shadows the BIND host DNS tool; use dig or getent hosts for lookups.

Check it yourself#

Save this as inventory.sh, copy it in and run it. Any tool that is missing prints missing, so it is safe on any Linux box.

#!/usr/bin/env bash
v() { local name=$1; shift
  if command -v "${1%% *}" >/dev/null 2>&1; then
    printf '%-16s %s\n' "$name" "$("$@" 2>&1 | grep -m1 -v '^\s*$' | cut -c1-80)"
  else printf '%-16s %s\n' "$name" missing; fi; }
printf '%-16s %s\n' os "$(. /etc/os-release; echo "$PRETTY_NAME")"
printf '%-16s %s\n' kernel "$(uname -r)"
printf '%-16s %s\n' cpu "$(nproc) x $(grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | xargs)"
printf '%-16s %s\n' ram "$(free -h | awk '/Mem:/{print $2}')"
printf '%-16s %s\n' disk "$(df -h "$HOME" | awk 'NR==2{print $2" total, "$4" free"}')"
v python3 python3 --version; v node node --version; v go go version
v rustc rustc --version;     v java java -version;    v bun bun --version
v deno deno --version;       v uv uv --version;       v pnpm pnpm --version
v docker docker --version;   v compose docker compose version
v git git --version;         v gh gh --version;       v chrome google-chrome --version
v claude claude --version;   v codex codex --version; v opencode opencode --version
v pi pi --version;           v rg rg --version;       v sbx sbx --version
sbx scp ./inventory.sh sb_0ergpfe5w6:/home/user/
sbx exec sb_0ergpfe5w6 --timeout 300 bash -lc "bash ~/inventory.sh"
os               Ubuntu 24.04.5 LTS
kernel           6.18.56-sandboxer
cpu              4 x …
ram              7.8Gi
disk             56G total, 51G free
python3          Python 3.12.3
node             v22.23.3
go               go version go1.27.2 linux/amd64
rustc            rustc 1.99.1 (58cf8f9c3 2026-10-13)
java             missing
…
claude           2.1.301 (Claude Code)
codex            codex-cli 0.163.0
…
sbx              missing

Our full script also checks the package managers, build tools, desktop pieces and utilities in the tables above. Use bash -lc so the login PATH applies: uv, bun, cargo and your ~/.local/bin are added there.

Add what's missing#

You have root, so the simplest fix is apt. In the same sandbox this installed Java 21, SQLite and Git LFS in 10 seconds:

sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq openjdk-21-jdk-headless sqlite3 git-lfs
java -version      # openjdk version "21.0.12.1" 2026-08-18
sqlite3 --version  # 3.45.1 2024-01-30 …
git lfs version    # git-lfs/3.4.1 (GitHub; linux amd64; go 1.22.2)

The sbx CLI inside a sandbox#

sbx was not on the PATH of our fresh sandbox. The Linux installer puts it in ~/.local/bin, and the sandbox's own scoped key works as its API key:

curl -fsSL https://sandboxer.com/install | sh
SANDBOXER_API_KEY="$SANDBOXER_TOKEN" sbx info self --json | jq -c '{id: .sandbox.id, state: .sandbox.state}'
# {"id":"sb_0ergpfe5w6","state":"ready"}

SANDBOXER_TOKEN can only act on this one sandbox, so this doesn't give the sandbox your account.

Install it once, not every time#

To add the same packages to each new sandbox, pass a setup script on create. It runs in the background once the sandbox is ready, and setupStatus tells you when it has finished:

cat > setup.sh <<'EOF'
#!/usr/bin/env bash
set -e
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq sqlite3 openjdk-21-jdk-headless
EOF

sbx new --type default --setup-file ./setup.sh
sbx info sb_70nzuovdqr --json | jq -c '{setupStatus: .sandbox.setupStatus, setupError: .sandbox.setupError}'
# {"setupStatus":"running",…}  then, about 10 seconds later:
# {"setupStatus":"done","setupError":null}
sbx exec sb_70nzuovdqr bash -lc "java -version 2>&1 | head -1"
# openjdk version "21.0.12.1" 2026-08-18

Wait for done before you rely on what the script installs: in our run, java was still missing while setupStatus was running.

Packages you install live on the sandbox disk, so they are kept across sbx stop and sbx resume, and a fork copies them. To start every new sandbox with your extras, set the sandbox up once and save it as a template: see Turn a sandbox into a reusable template. For repositories with their own setup script, use an environment.

FAQ#

Which Python and Node.js versions does a Sandboxer sandbox have?#

On 2026-10-27, Python 3.12.3 (Ubuntu's system Python) and Node.js v22.23.3 with npm 10.9.9 and pnpm 12.14.0. uv 0.13.1 is installed if you need another Python version.

Is Docker pre-installed and running?#

Yes. Docker 29.9.0 with Compose v5.6.0 and buildx v0.38.0 is installed, the daemon runs at boot, and user is in the docker group, so docker run works without sudo.

Are Claude Code and Codex pre-installed?#

Yes. claude 2.1.301, codex 0.163.0, opencode, pi, kimi and vibe are installed globally. They are not signed in until you sign in or your environment passes your logins.

Is Java or Ruby installed?#

No. Install them with apt (openjdk-21-jdk-headless, ruby-full) or a version manager such as sdkman or rbenv. Java 21 installed in about 10 seconds in our test.

Will the versions on this page stay the same?#

No. The image is updated over time, and these are the versions we measured on 2026-10-27. Run the inventory script in your own sandbox to see what it has now.

More guides

Top AI sandbox platforms for code execution in 2026, ranked

For running AI-written code we rank Sandboxer, Freestyle and E2B first: each gives code its own VM with an API or SDK and can pause with memory. Pick Daytona for Windows or GPUs, Modal or Northflank for GPUs at scale, E2B or Northflank to run in your own cloud, and Vercel Sandbox if your app lives on Vercel.

Read the guide
Best sandboxes for running coding agents (Claude Code, Codex, Gemini CLI) in 2026, ranked

For coding agents we rank Sandboxer first: a full Ubuntu VM with Claude Code and Codex preinstalled, Docker, and stop-and-resume that keeps the agent's session in memory. Freestyle and Amp Orbs also keep memory across pauses. Pick E2B for prebuilt agent templates on open source, Docker Sandboxes for free local runs, and Codespaces if you live in GitHub.

Read the guide
Best Daytona sandbox alternatives in 2026, ranked

The best Daytona alternatives depend on why you're switching. For a full Linux microVM on every sandbox with memory-saving stop and Docker, we rank Sandboxer first. E2B suits open source and self-hosting, Modal massive short-job fleets, Northflank bring-your-own-cloud with GPUs, and Vercel Sandbox apps on Vercel.

Read the guide
Best E2B alternatives in 2026, ranked

If you're leaving E2B for longer sessions or a fuller machine, we rank Sandboxer first, then Freestyle: both give each sandbox a full Linux VM that keeps memory across pauses, with Docker and no short session cap. Pick Daytona for Windows or GPUs, Northflank for bring-your-own-cloud, and stay on E2B if you need open source.

Read the guide