Last November, I used spec-driven development for a frontend project. This past weekend, I went the other way: a complete backend-only resurrection.
After a 4-year dormant repo, I’ve rebooted jcli. Here is how I used Antigravity and Gemini 3 Pro (High) to do it.
What is jcli?
☕️ JCLI is a utility designed to bridge the gap between the Java ecosystem and the terminal.
The goal: execute Java methods from the terminal instantly, without the friction of a local JRE/JDK setup.
Think `jcli Math random` or `jcli String length 'Hello, World!'`.
I used Google Antigravity & Gemini 3 Pro (High) to drive the evolution:
- Foundation: Moved to #Java25 LTS & Picocli.
- Performance: GraalVM Native Image for standalone binary.
- Logic: Use Reflection to scan packages driven by a YAML-driven config and gradle to build necessary artifact
Working in Antigravity felt less like "coding" and more like "conducting."
The AI handled the all the code, including automated GraalVM configs, with instant refactoring while I focused on the "What if?"
The "sunk cost" of experimentation has effectively vanished.
Try jcli today via Homebrew:
brew tap psumiya/jcli
brew install jcli
Full breakdown of the "vibe-based" reboot and the repo below:
- https://sumiya.page/2026/January/jcli-jan-2026-reboot.html
- https://sumiya.page/2026/January/using-google-antigravity-to-reboot-jcli.html
- https://github.com/psumiya/jcli
- https://psumiya.github.io/jcli/
#Java #Java25 #GraalVM #GenerativeAI #jcli