What is Google Jules?
Google Jules is an asynchronous coding agent: you point it at a GitHub repository, describe a task, and it works in a cloud virtual machine while you do something else, then hands back the changes for you to push as a branch. The Jules home page puts it simply: "Jules does coding tasks you don't want to do."
The getting started docs describe Jules as an experimental agent that can "fix bugs, add documentation, and build new features." It connects to GitHub, reads your codebase, and runs on its own until it needs your input.
That is the main difference from editor agents. You don't watch Jules type. You give it a scoped task, approve its plan, and come back to a finished diff. Typical jobs are writing tests, fixing bugs, bumping dependencies and small features.
How do you set up Jules with GitHub?
Setup takes a few minutes, per the Jules docs:
- Go to jules.google.com and sign in with a Google account. Accept the one-time privacy notice.
- Click the option to connect your GitHub account and finish the GitHub login.
- Grant access to all repositories or only the ones you choose. If you are not sent back to Jules, refresh the page.
- A repository selector and prompt box appear. Pick a repo. The default branch is preselected; change it only if Jules should start from another branch.
Jules reads an AGENTS.md file at the repository root to understand your project, so keep one up to date. The AGENTS.md guide covers what to put in it. You can also turn on browser notifications under Settings so you hear when a task finishes or needs input.
How do you run a task in Jules?
The running tasks page walks through the flow:
- Choose a repo and branch. Jules remembers your last-used repo.
- Write a specific prompt. Plain language is fine, but vague requests like "make this better" work poorly. If Jules needs more detail, it asks before writing code.
- Attach images if useful. You can upload PNG or JPEG images when you create the task, up to 5MB in total. They are only available at task creation, not in follow-ups.
- Click "Give me a plan". Per the getting started docs, Jules works in a virtual machine where it clones your code and installs dependencies, then drafts a plan: "You can review and approve it before any code changes are made."
- Watch or walk away. An activity feed shows progress with per-file mini diffs. You can message Jules mid-task, which may make it replan, or pause the task.
- Push the result. When it finishes, Jules shows the files changed and lines added or removed. Click "Create branch" to push. You own the branch, Jules is the commit author, and you open the pull request from that branch on GitHub.
You can also start work from GitHub. Add the label jules to an issue in a repository the Jules GitHub app can access. Jules comments on the issue and, when done, links to the pull request with its work.
What does the Jules environment look like?
Each task runs in what the environment docs call a "secure, short-lived virtual machine (VM)". The VM runs Ubuntu Linux with Node.js, Bun, Python, Go, Java and Rust preinstalled, plus C and C++ compilers, Docker, Git, jq and ripgrep. To see the full list inside a task, Jules documents this command:
set +x; . /opt/environment_summary.sh
Without a setup script, Jules inspects the repo and may check AGENTS.md or the README for setup hints. For anything more complex, open the repository's Configuration tab and add commands under Initial Setup:
npm install
npm run test
Run to Validate checks the script. Run and Snapshot runs it and, if it passes, saves a snapshot that "will be used for future Jules tasks started from this repository," which saves time on slow installs.
The FAQ says Jules is language agnostic but works best with JavaScript or TypeScript, Python, Go, Java and Rust, since support depends on what is installed in the VM.
What are the Jules plans and limits?
The limits and plans page lists three tiers as of October 2026:
| Plan | Tasks per day | Concurrent tasks | Model access | How you get it |
|---|---|---|---|---|
| Jules | 15 | 3 | Gemini 2.5 Pro | No cost |
| Jules in Pro | 100 | 15 | "Higher access to the latest model (starting with Gemini 3 Pro)" | Included with Google AI Pro |
| Jules in Ultra | 300 | 60 | "Priority access to the latest model (starting with Gemini 3 Pro)" | Included with Google AI Ultra |
Daily limits use a rolling 24-hour window. The two official pages differ slightly on models: the limits page lists Gemini 2.5 Pro for the base plan, while the home page says Jules "develops a plan utilizing the latest Gemini 3 Pro model." The page does not list prices; Pro and Ultra come through a Google AI Plans subscription, which the page says is currently available only for individual Google accounts ending in @gmail.com. Business users can fill in an interest form.
What else can Jules do?
Beyond one-off tasks, the docs describe several features:
- Scheduled tasks. Pick Scheduled Task from the Planning dropdown in the task box, set a cadence and write the prompt. Tasks then "execute automatically at the specified times." Per the scheduled tasks page, you cannot edit a scheduled task; delete it and create a new one.
- Suggested tasks. An experimental feature that scans a repo for resolvable
#TODOcomments and proposes plans. You turn on Proactivity per repository, on up to five repositories. - Jules Tools (CLI). A terminal client and dashboard, covered below.
- REST API. The Jules API is in alpha: "The Jules REST API is in an alpha release, which means it is experimental." It lives at
https://jules.googleapis.com/v1alpha, uses anX-Goog-Api-Keyheader, and you can create up to 3 keys in Jules settings. Its main resources are sources (repos), sessions and activities.
How do you use the Jules CLI?
Jules Tools installs from npm, per the CLI reference:
npm install -g @google/jules
jules login # sign in with Google in the browser
jules # open the interactive dashboard
jules remote list --repo # list connected repositories
jules remote new --repo <repo_name> --session "add tests for the date utils"
jules remote list --session # list your cloud sessions
jules remote pull --session <session_id> # pull a finished session's result
jules remote new can usually infer the repo from your current folder, and --parallel <number> starts several sessions for the same task at once. jules completion bash prints a shell completion script.
There is also a Jules extension for Gemini CLI in Google's gemini-cli-extensions organization. Its README says you start a task with /jules followed by your prompt, such as /jules add missing unit tests to my repo. The Gemini CLI extensions guide covers how extensions install, and keep in mind that on 18 June 2026 Gemini CLI itself stopped serving unpaid tier and Google One users, as well as Google AI Pro and Ultra subscribers.
How do you get good results from Jules?
The docs keep coming back to the same few habits:
- Scope the task. One bug, one feature or one batch of tests per task. Jules asks questions when a prompt is vague, but a clear prompt saves a round trip.
- Keep AGENTS.md current. It is the first place Jules looks for how to build and test your project.
- Add a setup script and snapshot for repos with slow or unusual installs.
- Read the plan. Approving a plan is the cheapest point to catch a wrong approach.
Good task prompts are worth reusing. Kipt keeps prompts as Markdown in a private GitHub repo you own, with fill-in blanks for details like the repo or branch. For background agents from other vendors, compare Codex cloud and the Copilot cloud agent. For Google's local agents, see the Antigravity guide.