Custom sandbox templates for Docker AI Sandboxes (sbx). Built on top of docker/sandbox-templates:claude-code-minimal.
See USAGE.md for install, one-time host setup, creating/re-attaching sandboxes, credential storage, and git signing.
A shared base image contains common tooling, with thin per-language layers on top:
docker/sandbox-templates:claude-code-minimal
+-- base
+-- bun (Bun + TypeScript LSP)
+-- rust (Rust + rust-analyzer)
+-- golang (Go + gopls)
+-- python (Python/uv + Pyright)
| Tool | Description |
|---|---|
| Bun | JavaScript runtime (also provides npm/npx for LSP servers) |
| Python | Default Python runtime (managed by uv, with python/python3 on PATH) |
| GitHub CLI | GitHub from the command line |
| 1Password CLI | Secrets management |
| delta | Syntax-highlighted git diffs |
| yq | YAML processor (jq for YAML) |
| ripgrep | Fast recursive search |
| fd | Fast file finder |
| bat | cat with syntax highlighting |
| eza | Modern ls replacement |
| fzf | Fuzzy finder |
| tmux | Terminal multiplexer |
| zsh + oh-my-zsh | Shell with plugins (git, gh, docker, tmux, fzf) |
beads (bd) |
Issue/task tracker for coding agents |
| prek | Fast Rust reimplementation of pre-commit |
| Tool | Description |
|---|---|
| Socket Firewall | Supply chain protection for package installs |
| Image | Runtime | LSP | sfw alias |
|---|---|---|---|
| bun | Bun | typescript-language-server | bun, bunx |
| rust | rustup + stable toolchain, wild linker, cargo-binstall, cargo-cache | rust-analyzer | cargo |
| golang | Go (system-wide) | gopls | — |
| python | uv + default Python | Pyright | pip, uv |
# Build base first
docker build -t sbx-templates:base base/
# Build language images
docker build -t sbx-templates:bun bun/
docker build -t sbx-templates:rust rust/
docker build -t sbx-templates:golang golang/
docker build -t sbx-templates:python python/Images are built and pushed to GHCR on every push to main:
- Build base image
- Parallel-build all language images on top of the base (by digest)
- Sign all images with cosign (keyless via GitHub OIDC)
Binary dependencies are verified during the build:
| Dependency | Verification method |
|---|---|
| bun, yq, delta, sfw, beads, prek | SHA256 checksums (hardcoded, auto-updated by Renovate) |
| apt packages | GPG-signed repos (GitHub CLI, 1Password) |
Output images are signed in CI with cosign (keyless via GitHub OIDC).
Renovate tracks and auto-updates:
- Upstream base image digest (
docker/sandbox-templates:claude-code-minimal) - Tool versions (bun, delta, yq, sfw, mold, beads, prek)
- GitHub Actions versions
Checksums for bun, yq, delta, sfw, beads, and prek are automatically recomputed via postUpgradeTasks when their versions are bumped.