Google's Jules AI Agent: Autonomous Coding and Environment Setup Guide
Software engineer, founder, and leadership background in finance/tech. Based in San Francisco.
Software engineer, founder, and leadership background in finance/tech. Based in San Francisco.

Jules is Google's autonomous coding service released during Google I/O 2025. It runs on managed Google Cloud VMs, connects to GitHub repositories, and executes tasks asynchronously. Jobs run until completion and return a diff, plan, and reasoning trace.
/app; all commands are logged in the dashboard.The agent’s behavior resembles a remote engineer: it clones the repo, performs the scripted setup, runs tasks, and leaves artefacts you can review.
The agent does not currently support self-hosted runners or on-prem repositories. All execution happens in Google's environment.
| Area | Default behavior |
|---|---|
| Runtime | Node.js 22, Python 3.12, Java 21 images available. |
| Package managers | npm is detected automatically; pnpm, Bun, or Yarn require manual configuration. |
| Auth | Environment variables defined in the configuration UI are injected before the setup script runs. |
| Output | Each task produces a diff, plan summary, and optional audio recap. |
Add a setup script under Configuration → Environment. Jules runs this script before executing tasks. Jules doesn't properly detect alternative package managers like pnpm and Bun automatically. You need to configure these manually using custom setup scripts in the Configuration tab of your Jules project:
set -ux
export CI=true
cd /app
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
if [ -s "$NVM_DIR/nvm.sh" ]; then
set +e; \\. "$NVM_DIR/nvm.sh"; NVM_SOURCE_STATUS=$?; set -e
if [ $NVM_SOURCE_STATUS -ne 0 ] && [ $NVM_SOURCE_STATUS -ne 3 ]; then
echo "ERROR: NVM sourcing failed: $NVM_SOURCE_STATUS"; exit 1
fi
else
echo "ERROR: NVM script not found"; exit 1
fi
set -e
nvm install 22 && nvm use 22 && nvm alias default 22
npm install -g pnpm@10
pnpm install --frozen-lockfile
set -ux
export CI=true
cd /app
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
if [ -s "$NVM_DIR/nvm.sh" ]; then
set +e; \\. "$NVM_DIR/nvm.sh"; NVM_SOURCE_STATUS=$?; set -e
if [ $NVM_SOURCE_STATUS -ne 0 ] && [ $NVM_SOURCE_STATUS -ne 3 ]; then
echo "ERROR: NVM sourcing failed: $NVM_SOURCE_STATUS"; exit 1
fi
else
echo "ERROR: NVM script not found"; exit 1
fi
set -e
nvm install 22 && nvm use 22 && nvm alias default 22
curl -fsSL https://bun.sh/install | bash
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
bun install
These scripts:
Here's how Jules compares to other major AI coding assistants:
OpenAI Codex (Introducing Codex): Recently released as a research preview, Codex offers a polished UI with inline diff views and a mobile app. However, it currently lacks direct network access within requests and two-way GitHub sync that Jules provides.
GitHub Copilot Agent: Building on the popular Copilot, this agent now offers asynchronous code testing and generation. While it integrates well with GitHub (naturally), it doesn't have the same level of VM-based execution environment as Jules.
Devin (devin.ai): One of the first autonomous coding agents, Devin offers two-way GitHub integration and real-time preview deployments on Vercel. Its IDE-like controls allow engineers to iterate naturally via Slack or its native UI.
Manus (manus.im): Specializes in code reviews and PR workflows, excelling at rapid context switching and fetching relevant code references within active pull requests.
When choosing between these tools, consider your specific workflow needs—such as network access requirements, GitHub integration depth, UI preferences, and CI/CD integration capabilities.
Jules has been reliable for dependency upgrades, regenerating SDKs, and running large-formatting tasks that take longer than a local machine allows. For urgent hotfixes or code that depends on local services, a conventional shell is still faster. Treat the agent as a remote worker that follows scripts literally—every successful job starts with a clean, reproducible setup phase.