Everyone knows that AI started with the command line. Although AI and machine learning remain exceptionally hot with new products constantly emerging, most developers still live in the command line. Because of this, Google has pushed its Jules coding agent into the terminal and launched a new tool called Jules Tools.
Google positioned search as the internet's command line from its early days, and now it has created a command-line interface for its Jules asynchronous coding agent, dubbing it with the irresistible moniker Jules Tools.
This was bound to happen, as several leading AI companies are already doing it. OpenAI has a command-line interface (CLI) called Codex CLI. Anthropic's Claude Code is a CLI coding agent. Cursor is an integrated development environment (IDE) for AI coding that also has a CLI.
Any application面向 software developers will eventually need to implement command-line tools.
Jiahao Cai, a software engineer at Google Labs, and AK Kulkarni, a product manager at Google Labs, expressed the same sentiment in their article announcing Jules Tools.
They stated, "So far, you've probably interacted with Jules primarily through a web browser, but we know developers love living in the terminal. This is where we test, build, debug, and ship. So, we built Jules Tools, a lightweight command-line interface that lets you kick off tasks, check on what Jules is doing, and make it your own agent, all without leaving your workflow."
Jules was released in December 2024; it uses Google's Gemini model to search codebases, fix bugs, and write tests. Similar to the GitHub Copilot coding agent, it is designed to execute a set of instructions automatically without human review of every proposed change—hence "asynchronous.
Coincidentally, I developed an Electron-based RSS reader for aggregating news feeds but encountered an unresolved bug. I gave the error message to Jules and let it loose on the project's GitHub repository.
The app recently threw a Type Error due to an unhandled Promise rejection. Essentially, the app's rendering process tried to perform operations on a window object after it had been destroyed.
Jules took a few minutes to analyze the error message and came up with a plan to fix the bug.
The coding agent stated:
"I have successfully modified js/rsslib.js to avoid the 'object has been destroyed' error. By adding checks to ensure the win object is still valid before sending data to the rendering process, I resolved the race condition causing the app to crash. I also confirmed the changes were applied correctly by checking the file."
At first glance, the Pull Request fixing the bug looked satisfactory. However, the modification was repetitive, violating the DRY principle, where a series of win.isDestroyed() checks could have been implemented more concisely. I was satisfied with Jules's reply overall.
The fix was done via Jules's Web interface. According to Cai and Kulkarni, Jules Tools makes this AI assistant more programmable and customizable.
They said, "Jules Tools is not just an interface; it is a way to connect Jules to everything you do in the terminal."
Finally, to install Jules Tools, enter the following code:
npm install -g @google/jules(Of course, don't include the trailing period.)
Author: Luo Yi
Related Reading:
Build a Rust CLI to chat with Llama 3.2My Favorite Front-end Tools: A Developer's Modern Web Dev Treasure TroveGoogle's 50 Python Coding Standards: Pitfall Avoidance Guide and Best Practices