Sandbox Types
Tembo supports two sandbox environment types, each designed for different use cases:Standard (Default)
The Standard sandbox provides a lightweight container-based environment:- Fast startup: Starts quickly for rapid task execution
- Wide compatibility: Works with most common development workflows
- Resource efficient: Minimal overhead for general development tasks
- Best for: Most general-purpose tasks, web applications, and standard development workflows
Large VM
The Large VM sandbox provides a full virtual machine with enhanced capabilities:- Complete isolation: Full VM-level isolation for enhanced security
- Nested virtualization: Enables agents to run Docker containers inside the sandbox (an alternative to traditional Docker-in-Docker approaches)
- System-level access: Support for tasks requiring deeper system integration
- Custom kernels: Ability to run specialized kernel configurations
- Best for: Testing and building containerized applications, running databases in Docker, and complex multi-container setups
Pre-installed Tools and Runtimes
The Tembo Sandbox includes the following base dependencies and their versions:System Tools
| Tool | Version | Description |
|---|---|---|
| curl | 8.14.1 | Command-line tool for transferring data with URLs |
| lsof | 4.99.4 | Lists open files and network connections |
| strace | 6.15 | System call tracer for debugging and monitoring |
Docker and Container Tools
| Tool | Version | Description |
|---|---|---|
| docker | 28.0.0 | Container runtime for building and running containers |
| docker-compose | 2.31.0 | Multi-container orchestration tool |
Version Control and Authentication
| Tool | Version | Description |
|---|---|---|
| git-credential-tembo | unknown | Tembo-specific Git credential helper |
Code Quality and Analysis
| Tool | Version | Description |
|---|---|---|
| ShellCheck | 0.10.0 | Static analysis tool for shell scripts |
HTTP and API Tools
| Tool | Version | Description |
|---|---|---|
| httpie | 3.2.4 | Modern, user-friendly HTTP client for API testing |
JavaScript/Node.js Ecosystem
| Tool | Version | Description |
|---|---|---|
| nodejs | 22.17.0 | JavaScript runtime built on Chrome’s V8 engine |
| bun | 1.2.18 | Fast all-in-one JavaScript runtime and toolkit |
| pnpm | 10.12.4 | Fast, disk space efficient package manager |
Python Ecosystem
| Tool | Version | Description |
|---|---|---|
| python3 | 3.12.11 | Modern Python programming language |
| pipx | 1.7.1 | Install and run Python applications in isolated environments |
Ruby Ecosystem
| Tool | Version | Description |
|---|---|---|
| ruby | 3.3.6 | Dynamic, object-oriented programming language |
| bundler-2.6.9 | 2.6.9 | Manages Ruby gem dependencies |
| ruby3.3-rubocop-1.75.2 | 1.75.2 | Ruby static code analyzer and formatter |
Elixir/Erlang Ecosystem
| Tool | Version | Description |
|---|---|---|
| erlang-28.0.1 | 28.0.1 | Concurrent, fault-tolerant programming platform |
| elixir | 1.18.4 | Dynamic, functional programming language |
| hex | 2.2.2 | Package manager for the Erlang ecosystem |
| rebar3 | 3.25.0 | Erlang build tool and package manager |
| erlfmt | 1.7.0 | Erlang code formatter |
Java Ecosystem
| Tool | Version | Description |
|---|---|---|
| jdk | 21 | Java Development Kit for building and running Java applications |
| gradle | latest | Build tool for Java projects |
| maven | latest | Project management and build tool for Java |
Go Ecosystem
| Tool | Version | Description |
|---|---|---|
| go | 1.24.4 | Open source programming language from Google |
Rust Ecosystem
| Tool | Version | Description |
|---|---|---|
| rustup | 1.28.2 | Rust toolchain installer and version management tool |
Docker-in-Docker Support
The Large VM sandbox supports running Docker containers inside the environment. When Tembo agents operate in this sandbox, they can use Docker to:- Run integration tests with databases (Postgres, MySQL, Redis, etc.)
- Build Docker images as part of CI/CD workflows
- Test multi-container applications with Docker Compose
Example: Running Postgres in Docker
Here’s how an agent might run a Postgres database inside the sandbox for testing:Prerequisites for Docker-in-Docker
- Use the Large VM sandbox type
- Docker daemon is pre-installed and ready to use
- No additional configuration required
Environment Characteristics
Isolation and Security
The Tembo Sandbox provides strong isolation and security guarantees:- Process isolation: Each task runs in its own isolated environment
- File system isolation: Changes are contained within the sandbox
- Network security: Controlled network access for security
- Resource limits: CPU and memory constraints to ensure stability
Resource Limits
| Sandbox Type | CPU | Memory | Disk | Nested Virtualization |
|---|---|---|---|---|
| Standard | 4 cores | 8 GB | 20 GB | No |
| Large VM | 8 cores | 32 GB | 100 GB | Yes |
Development Workflow Integration
The sandbox environment is designed to integrate seamlessly with your development workflow:- Hook support: Execute custom commands at different stages via Tembo Hooks
- Repository access: Full access to your repository contents and history
- Build tool compatibility: Support for common build systems and package managers
- Testing frameworks: Compatible with popular testing tools and frameworks
- Nix dev shell support: Automatically detects and uses Nix flakes for reproducible development environments
Nix Development Shells
Tembo’s sandbox environment supports Nix flakes for reproducible development environments. To use this feature, your repository must have aflake.nix file in the root directory that defines a development shell named default for the x86_64-linux platform.
Requirements:
- Your
flake.nixmust specifydevShells.x86_64-linux.default - The development shell must target the x86_64-linux platform (Tembo’s sandbox runs on x86_64 Linux)
- The flake must be in your repository’s root directory
- Automatically detect your
flake.nixfile at the repository root - Load the default devshell for the x86_64-linux platform
- Make available all packages and environment variables defined in your Nix development shell
- Ensure reproducibility across different tasks and environments
flake.nix is detected. This means all build commands, tests, and scripts will have access to the exact dependencies specified in your flake, ensuring consistent behavior across all task executions.
Best Practices
Choosing the Right Sandbox
| Use Case | Recommended Sandbox |
|---|---|
| Code analysis, simple fixes | Standard (default) |
| Agent needs to run tests with Docker databases | Large VM |
| Agent needs to build Docker images | Large VM |
| Complex multi-container setups | Large VM |
| System-level operations | Large VM |
| General development | Standard |
General Tips
- Leverage pre-installed tools and pin versions when adding dependencies
- Minimize installations and clean up temporary files to optimize resources
- Be version-aware when writing build scripts for the multi-language environment
- Use Nix for complex dependencies—test locally with
nix developand keep flakes minimal - Use Large VM when agents need Docker—Standard sandbox cannot run nested containers
Support and Updates
The Tembo Sandbox environment is regularly updated to include:- Security patches for all installed tools
- Updates to major language runtimes and package managers
- New tools based on community feedback and usage patterns