Base Image
What every Tenki Sandbox session ships with out of the box, and how to add your own tools.
Every Tenki Sandbox session starts from the same prepared base image, so common
runtimes and tools are already present the moment a session reaches READY. The
essentials need no install-and-warm-up step. This page lists what ships by default and
how to add anything else.
The base is a standard Ubuntu 24.04 LTS Linux VM. You log in as the tenki user
(uid 1000) with passwordless sudo, so you can apt install, pip install, or
npm install anything not listed here.
User, home, and writable paths
Commands run as the unprivileged tenki user, never as root:
| Property | Value |
|---|---|
| User | tenki — uid 1000, gid 1000, login shell /bin/bash |
| Home | /home/tenki |
| Default working directory | /home/tenki — where exec starts, and what relative cwd values resolve against |
HOME | /home/tenki |
XDG_CONFIG_HOME | /home/tenki/.config |
| Root access | passwordless sudo |
Writable as tenki, with no sudo:
/home/tenki— your home, and the default working directory/tmp— world-writable- any read-write volume you attach; the mount point is set to
tenkiownership when it is mounted
Everything outside those paths belongs to root, including /mnt, /opt, /usr, and
/var, so writing there needs sudo:
mkdir /mnt/data # Permission denied
sudo mkdir /mnt/data # works, no password promptThe same applies to anything touching system state — a bare apt-get install fails on the
dpkg lock, and sudo apt-get install is the working form:
sudo apt-get update && sudo apt-get install -y ffmpegFiles and directories written through an SDK's filesystem API are created as tenki, so
commands in the session can read and write them without any ownership fix-up.
Language runtimes
| Runtime | Version | Notes |
|---|---|---|
| Python | 3.12 | Ubuntu 24.04 system Python, with pip |
| Node.js | 24.14.0 | Installed via nvm; npm included |
| Bun | 1.3.14 | Fast JavaScript/TypeScript runtime and bundler |
Package managers & language tooling
| Tool | Version | Purpose |
|---|---|---|
| pip | latest | Python package installer |
| uv | 0.11.28 | Fast Python installer and resolver |
| npm | bundled | Node package manager (with Node.js) |
| pnpm | 10.20.0 | Fast, disk-efficient Node package manager |
TypeScript (tsc) | 5.9.3 | TypeScript compiler |
| ts-node | 10.9.2 | Run TypeScript directly |
| typescript-language-server | 5.3.0 | TypeScript/JavaScript LSP |
Coding agents
Tenki Sandbox bakes in the major terminal coding agents so you can drive them directly inside a session:
| Agent | Command | Version |
|---|---|---|
| Claude Code | claude | 2.1.209 |
| OpenAI Codex | codex | 0.144.4 |
| opencode | opencode | 1.17.20 |
Python data & ML libraries
Preinstalled into the system Python so data and analysis workloads run without a setup step:
| Category | Package | Version |
|---|---|---|
| Data core | numpy | 2.4.1 |
| Data core | pandas | 2.3.3 |
| Data core | matplotlib | 3.10.8 |
| Data core | scipy | 1.17.0 |
| Data core | seaborn | 0.13.2 |
| Data core | pillow | 12.1.0 |
| Data core | requests | 2.32.5 |
| Data core | beautifulsoup4 | 4.14.3 |
| ML | scikit-learn | 1.8.0 |
| ML | opencv-python-headless | 4.13.0.90 |
Heavier deep-learning frameworks (PyTorch, TensorFlow, Transformers, and similar) are not preinstalled. They tend to be large and GPU-oriented, so it's best to pin them per workload. Install them per session or bake them into a template.
Common CLI tools
Available on PATH in every session:
- Version control & GitHub:
git,gh - HTTP & transfer:
curl,wget,rsync - Search & data:
ripgrep(rg),jq,sqlite3 - Archives:
tar,zip/unzip,zstd,bzip2,xz - Build:
build-essential(gcc/make),pkg-config - SSH:
openssh-client,openssh-server - Inspect:
file,less,lsof
Checking what's installed
Because you have sudo, you can inspect anything from inside a session:
python3 --version
node --version
claude --version
python3 -c "import numpy, pandas, sklearn; print(numpy.__version__, pandas.__version__)"
dpkg -l | grep -i ripgrepAdding your own tools
For a one-off session, just install what you need:
pip install polars
sudo apt-get update && sudo apt-get install -y ffmpeg
npm install -g some-cliIf every session should start with the same extra tools, define them once in a template instead of installing on each session — the template build captures the prepared environment as a snapshot so new sessions start ready.