30-toolchains/*.sb) grant agents access to language-specific package managers, caches, configuration files, and version managers. Each profile is carefully scoped to its ecosystem to maintain least-privilege access.
Available Toolchains
Node.js
npm, yarn, pnpm, corepack, nvm, fnm
Python
pip, uv, poetry, pdm, pyenv, conda
Rust
cargo, rustup, sccache
Go
go modules, GOPATH, golangci-lint
Java
Maven, Gradle, SBT, Coursier, sdkman
Ruby
gem, bundler, rbenv, rvm
Bun
Bun runtime and package manager
Deno
Deno runtime and cache
PHP
Composer and PHP tooling
Perl
CPAN and Perl modules
Runtime Managers
mise, asdf, rtx
Toolchain profiles are opt-in via
--enable flags. For example: --enable=node --enable=python --enable=rustNode.js
The Node.js profile supports npm, yarn, pnpm, corepack, and version managers like nvm and fnm.Scope
- Version Managers:
~/.nvm,~/.fnm - npm: Config, cache, and global packages
- yarn: Classic and modern (Berry) variants
- pnpm: Store, state, and global packages
- corepack: Package manager shimming
- Build Tools: node-gyp, Turborepo, Playwright, Cypress
Python
The Python profile supports pip, uv, poetry, pdm, pyenv, conda, and various Python tooling.Scope
- Package Managers: pip, uv, poetry, pdm, pipx, conda
- Version Managers: pyenv, conda/miniconda/miniforge
- Tools: pre-commit, mypy, ruff, IPython, Jupyter
- Configuration:
.pypirc,.python_history
The Python profile includes
uv, the modern Python package manager. Agents can use both traditional pip and modern uv workflows.Rust
The Rust profile supports rustup, cargo, and optional sccache for build caching.Scope
- Toolchain:
~/.rustupfor Rust toolchain management - Packages:
~/.cargofor crates and binaries - Cache:
~/.cache/cargoand~/Library/Caches/cargo - Build Cache: sccache for distributed compilation
Go
The Go profile supports Go modules, GOPATH, and Go tooling.Scope
- GOPATH:
~/gofor Go workspace and packages - Build Cache:
~/.cache/go-buildand~/Library/Caches/go-build - Modules: GOMODCACHE within GOPATH
- Tools: golangci-lint, gopls
- Version Manager: goenv
Customize GOPATH location
Customize GOPATH location
If your GOPATH is not
~/go, you’ll need to add a custom path grant:Java
The Java profile supports Maven, Gradle, SBT, Coursier, and Java version managers.Scope
- Maven:
~/.m2for Maven repository and settings - Gradle:
~/.gradlefor Gradle cache and daemon - SBT:
~/.sbtand~/.ivy2for Scala build tool - Coursier: Scala dependency cache
- Version Managers: jenv, sdkman
Ruby
The Ruby profile supports gem, bundler, and Ruby version managers.Scope
- Version Managers: rbenv, rvm, ruby-build
- Gems:
~/.gemfor gem installations - Bundler:
~/.bundleand bundler cache - REPL: IRB and Pry history
Other Toolchains
Bun
Bun
Fast JavaScript runtime and package manager:Enable with:
--enable=bunDeno
Deno
Secure TypeScript/JavaScript runtime:Enable with:
--enable=denoPHP
PHP
PHP runtime and Composer:Enable with:
--enable=phpPerl
Perl
Perl runtime and CPAN:Enable with:
--enable=perlRuntime Managers (mise/asdf/rtx)
Runtime Managers (mise/asdf/rtx)
Multi-language version managers:Enable with:
--enable=runtime-managersMultiple Toolchains
You can enable multiple toolchains simultaneously:Best Practices
Enable only what you need
Only enable toolchains your project actually uses. This minimizes the attack surface and maintains least-privilege access.
Use version managers
Toolchain profiles support common version managers (nvm, pyenv, rbenv, etc.). Use them to manage multiple language versions.
Cache locations matter
Profiles grant access to both XDG-style (
~/.cache) and macOS-style (~/Library/Caches) locations for compatibility.Custom paths require grants
If you use non-standard installation paths, add them via
--add-dirs or --add-dirs-ro.Authoring Custom Toolchain Profiles
If you need a toolchain not included in Agent Safehouse:- Create a new profile:
profiles/30-toolchains/my-toolchain.sb - Add standard header:
- Grant minimal permissions:
- Regenerate dist artifacts:
./scripts/generate-dist.sh - Add tests: Create
tests/sections/toolchain-my-toolchain.sh
Related Profiles
System Runtime
Foundation for process execution that toolchains depend on
Integrations
Git, Docker, and other development tool integrations