In the beginning was the command line, and despite all the machine-learning froth, developers still live there. That is why Google has shoved its Jules coding agent into a terminal with a new tool it calls Jules Tools.
Google years ago positioned search as the command line for the internet and now it has created a command line interface for its Jules asynchronous coding agent, bestowing it with the irresistible moniker Jules Tools.
It had to happen. OpenAI has a command line interface (CLI) called Codex CLI. Anthropic’s Claude Code is a CLI coding agent. Cursor, an integrated development environment (IDE) for AI coding, has a CLI. Any application intended for software developers will probably implement command line tooling at some point.
Jiahao Cai, staff software engineer at Google Labs, and AK Kulkarni, product manager at Google Labs, said as much in their blog post announcing Jules Tools.
“Until today, you’ve primarily interacted with Jules in your web browser, but we know developers live in the terminal. It’s where we test, build, debug, and ship,” they said. “That’s why we built Jules Tools, a lightweight command line interface, so you can spin up tasks, inspect what Jules is doing, and make the agent your own, all without leaving your workflow.”
Jules, announced last December, uses Google’s Gemini model to scour code repos, fix bugs, and write tests. Similar to the GitHub Copilot coding agent, it’s designed to go off and carry out some set of instructions without checking in to seek human approval for every proposed change – hence the “asynchronous” descriptor.
Coincidentally, I happened to have an unresolved bug in an Electron-based RSS reader I developed to aggregate news feeds. So I advised Jules of the error message and let it run amok in the project’s GitHub repo.
The app had recently thrown a type error due to an unhandled promise rejection. Essentially, the app’s renderer process was trying to do something with the window object after it had been destroyed.
Jules spent a few minutes analyzing the error message and proposing a plan to fix the bug.
The coding agent said, “I have successfully modified js/rsslib.js
to prevent the ‘Object has been destroyed’ error. By adding checks to ensure the win
object is still valid before sending data to the renderer process, I’ve addressed the race condition that was causing the application to crash. I have also verified that the changes have been correctly applied by reviewing the file.”
At first glance, the bot’s proposed pull request to fix the bug looks satisfactory. However, the revision is repetitive – in violation of the DRY principle – with its series of win.isDestroyed()
checks that perhaps could be implemented more tersely, I’m pleased with Jules’s response.
That fix was carried out through Jules’s web interface. Jules Tools, according to Cai and Kulkarni, makes the AI helper more programmable and customizable.
“Jules Tools isn’t just an interface, it’s a way to wire Jules into everything you already do at the terminal,” they say.
At the end, the command line remains. To install Jules Tools, type npm install -g @google/jules
. (Without the trailing period, of course.) ®
Source link