Environment setup
Jules runs each task inside a secure, short-lived virtual machine (VM). This lets it clone your repository, install dependencies, and run tests.
To make sure Jules can do its job effectively, you can provide setup scripts that prepare the environment.
What’s preinstalled?
Section titled “What’s preinstalled?”Every Jules VM runs Ubuntu Linux and includes many popular developer tools out of the box:
- Node.js
- Python
- Go
- Java
- Rust
The latest versions can be seen here:
-------- Python --------✅ python3: Python 3.12.11✅ python: Python 3.12.11✅ pip: pip 25.1.1 from /home/jules/.pyenv/versions/3.12.11/lib/python3.12/site-packages/pip (python 3.12)✅ pipx: 1.4.3✅ poetry: Poetry (version 2.1.3)✅ uv: uv 0.7.13✅ black: black, 25.1.0 (compiled: yes)✅ mypy: mypy 1.16.1 (compiled: yes)✅ pytest: pytest 8.4.0✅ ruff: ruff 0.12.0✅ pyenv: available system 3.10.18 3.12.11 (set by /home/jules/.pyenv/version)
-------- NodeJS --------✅ node: v22.16.0 * v18.20.8 * v20.19.2 * → v22.16.0 * system *✅ nvm: available✅ npm: 11.4.2✅ yarn: 1.22.22✅ pnpm: 10.12.1✅ eslint: v9.29.0✅ prettier: 3.5.3✅ chromedriver: ChromeDriver 137.0.7151.70 (dfa4dc56b2ahb56eb2a14cad006ea5e68c60d5de-refs/branch-heads/7151@{#1875})
-------- Java --------✅ java: openjdk version "21.0.7" 2025-04-15 OpenJDK Runtime Environment (build 21.0.7+6-Ubuntu-0ubuntu124.04) OpenJDK 64-Bit Server VM (build 21.0.7+6-Ubuntu-0ubuntu124.04, mixed mode, sharing)✅ maven: Apache Maven 3.9.10 (5f519b97e9448438d878815739f519b2eade0a91d)✅ gradle: Gradle 8.8
-------- Go --------✅ go: go version go1.24.3 linux/amd64
-------- Rust --------✅ rustc: rustc 1.87.0 (17067e9ac 2025-05-09)✅ cargo: cargo 1.87.0 (99624be96 2025-05-06)
-------- C/C++ Compilers --------✅ clang: Ubuntu clang version 18.1.3 (1ubuntu1)✅ gcc: gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0✅ cmake: cmake version 3.28.3✅ ninja: 1.11.1✅ conan: Conan version 2.17.0
-------- Docker --------✅ docker: Docker version 28.2.2, build e6534b4✅ docker: Docker Compose version v2.36.2
-------- Other Utilities --------✅ awk: GNU Awk 5.2.1, API 3.2, PMA Avon 8-g1, (GNU MPFR 4.2.1, GNU MP 6.3.0)✅ curl: curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7✅ git: git version 2.49.0✅ grep: grep (GNU grep) 3.11✅ gzip: gzip 1.12✅ jq: jq-1.7✅ make: GNU Make 4.3✅ rg: ripgrep 14.1.0✅ sed: sed (GNU sed) 4.9✅ tar: tar (GNU tar) 1.35✅ tmux: tmux 3.4✅ yq: yq 0.0.0
You can check installed versions by adding commands like node -v
to your setup script and clicking Run to Validate.
To view all preinstalled tools, you can use this command in your setup script and click Run to Validate.
set +x; . /opt/environment_summary.sh
Add a setup script
Section titled “Add a setup script”To help it install dependencies and run tests:
- Click on the repo on the left sidebar
- Select Configuration at the top
- In the “Initial Setup” window, enter the commands needed to install dependencies and prep your project
For example:
Terminal window npm installnpm run test
Test your setup script
Section titled “Test your setup script”Click Run to Validate to check that your setup script works.
Validation tips
Section titled “Validation tips”- You can check installed versions by adding commands like
node -v
to your setup script and clicking Run to Validate. - Always include commands to install packages, run linters, or execute tests.
- Use the validation button to catch errors early.
- Keep your setup lightweight and fast
- Jules runs a clean environment each time.