Follow ZDNET: Add us as a preferred source on Google.
ZDNET’s key takeaways
- Google now has three AI CLIs for different workflows.
- Gemini CLI handles fast, interactive coding in the terminal.
- Jules Tools brings cloud autonomy into command-line control.
Last week, Google announced Jules Tools, a command-line companion for Google’s GitHub-centric coding agent. Wait, what?
Doesn’t Google already have a command-line AI coding tool? No, wait. It already has two command-line AI coding tools. Jules Tools makes for three.
Why, Google? Why must you hurt our brains so?
Before I continue my tirade against Google’s apparent lack of product management, I will tell you that Jules Tools’ capability is cool. It’s just the naming and product fragmenting that hurt my soul as a former product manager.
In July, Google announced Gemini CLI, which is exactly what it sounds like: Gemini, available from a terminal window. This allows for scripting, quick interactions, and all the other terminal-based activities we coders love so much. Then, in August, Google announced a mouthful called Gemini CLI GitHub Actions. This provides some agentic features for managing GitHub issues.
Also: Google’s Jules AI coding tool exits beta with serious upgrades – and more free tasks
Now, Jules Tools essentially enables Jules in the terminal as well. Jules, as you may recall from my previous articles, is Google’s powerful agentic coding agent, which I introduced you to back in May (which, in AI terms, seems like decades ago now).
Jules Tools is a good thing. But to understand where it fits and when you’ll want to use it, we need to deconstruct Google’s CLI (command-line interface) offerings. We’ll first start with Gemini, and then move to Jules.
What is Gemini CLI?
Gemini CLI is a command-line interface for Google’s Gemini large language models. The CLI itself is open source. What this capability means is that the command-line interpreter, command handling, the extensions mechanism, and configuration parsing, are all available on GitHub for open-source programmers to extend.
The intelligence itself comes from Gemini API calls. Gemini itself (the actual models and API backend) is not open source. However, Gemini CLI is a tool that programmers can customize, fork, and make their own.
Also: Google embeds AI agents deep into its data stack – here’s what they can do for you
Gemini CLI supports what are called ReAct loops, meaning it reasons and then acts. Rinse. Wash. Repeat. This feature means programmers can interact with it dynamically. It works its way through solutions with the help of your prompts, like any other chatbot would, except that it does so in the terminal instead of the chatbot’s web interface.
Operating in the terminal app means you can work within any VS Code-derived development environment. The approach works well enough in the IDE to be able to know, via an IDE extension, which files are open, understand the context of what you’re working on, and let you jump back and forth between the IDE itself and the terminal content.
Gemini CLI GitHub Actions runs Gemini CLI commands inside GitHub’s automation environment. GitHub, the central code repository for many of the world’s programming projects, has some automation capabilities. Gemini CLI GitHub Actions lets you wire Gemini into workflows, so it can review code, comment on pull requests, and automate other repo tasks.
What is Jules Tools?
That brings us to the newest tool in Google’s AI coding kit bag, Jules Tools. Jules is Google’s cloud-based autonomous, asynchronous coding agent. Given an assignment, it develops a plan of action and then executes that action in its own cloud-based virtual machine.
Also: Google’s Jules AI coding agent built a new feature I could actually ship – while I made coffee
Jules Tools provides a terminal interface to Jules. You’re still running Jules in the cloud, but instead of managing it through the Jules web interface, you can do so using the CLI. The actual tasks Jules does aren’t much different between the two interfaces, but your work style and the potential for creative workflow optimization increase considerably.
You can give Jules commands, such as create a new task, list tasks, pull patches to a local instance, and more.
Some juicy examples
In Google’s blog post announcing the capability, the authors gave two examples that caught my attention and got me thinking. Here’s the first example:
# Pipe GitHub issues directly to Jules gh issue list --assignee @me --limit 1 --json title | jq -r '.[0].title' | jules remote new --repo .
This code automatically grabs the most recently assigned GitHub issue and launches a Jules remote session to deal with said issue. Here’s how it breaks down:
- It uses the GitHub CLI (gh) to list the issues available, then filters the issues assigned to @me, limits the results to just one issue, and returns just the title field in JSON.
- That is then piped into a JSON preprocessor (jq) to extract the title in plain text.
- Then that is piped to Jules as a remote task named for the issue title.
Whew! You can see how you might be able to automate a lot of activity using the command-line shell, where the web interface couldn’t do any of that.
Let’s do one more example. This one provides an interesting mix of Gemini CLI and Jules Tools in the command line:
# Use Gemini CLI to analyze GitHub issues and send the hardest one to Jules gemini -p "find the most tedious issue, print it verbatimn $(gh issue list --assignee @me)" | jules remote new --repo .
This example is very cool. It uses Gemini to find the most tedious issue currently in your repo.
Now, the comment uses the word “difficult,” but the actual prompt uses the word “tedious.” When asked, Gemini defines, “Tedious tasks are repetitive and boring, requiring little thought but much attention to detail. Difficult tasks are mentally challenging and require creative problem-solving.”
Also: AI lifts some software stocks, leaves others behind – who’s winning and losing and why
In this context, Gemini will distinguish between hard and annoyingly repetitive and assign the most annoying and repetitive one to Jules. It pipes the exact issue as described in the repo to Jules and assigns it to Jules for work.
You could literally create a command in your command line called ‘do-the-next-tedious-one,’ and when you run it, Gemini will pick it, and Jules will fix it.
Astounding.
What should you use?
Keep in mind that it’s always best to use the most appropriate tool for a given task. In our workshop, we have different power saws for different types of tasks. Likewise, in our development environment, we have different AI tools for different types of tasks.
Remember that both Gemini and Jules have quotas. You might be able to get a lot of little tasks done in the Gemini tier you’re using, but maybe only 15 prompts in the Jules tier.
Also: How AI coding agents could destroy open source software
Also, Gemini responds nearly instantly. Jules takes its time to create a plan of action, gets your approval on that plan (in my experience, only sometimes), and then executes that plan. So, you’ll be much more interactive and collaborative with Gemini, but you can delegate to Jules.
Jules does handle big tasks, conceivably much bigger than Gemini. But both are constrained by their resource allocation model. This also hit me when I was using OpenAI’s Codex in $20/mo Plus mode. If you give either tool a task that’s too big, it could get blocked partially through if you run out of allocation. Cleanup from that situation is not ideal.
I have three specific recommendations for these tools:
- Keep all these tools in your kit bag.
- Experiment with them when not on a mission-critical project to get a feel for what they can do and for their limits.
- Then pick the tool (or combination of tools) that best fits whatever you’re working on.
What about you? Have you tried out Gemini CLI, Jules, or the new Jules Tools yet? Do you imagine using Gemini for quick, interactive tasks and Jules for bigger, background projects? How do you feel about Google splitting these features across multiple tools instead of one unified product? Which approach do you think best fits your workflow? Let us know in the comments below.
You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, on Bluesky at @DavidGewirtz.com, and on YouTube at YouTube.com/DavidGewirtzTV.
Source: Robotics - zdnet.com