❯ Guillaume Laforge

Of Skills and Loops with AI Assistance

For the past few weeks, a lot has been written and said about Loop Engineering, and we’re seeing an explosion of Agent Skills out there for various tasks. These concepts are trendy, but how do they actually translate into day-to-day productivity?

Today, I want to testify with a concrete use case where skills and loops helped me become significantly more productive: authoring Google Codelabs.

About Codelabs

For those who might not be familiar, Google Codelabs are guided, hands-on coding tutorials that walk developers step-by-step through building an application, integrating an API, or learning a new technology. They are great educational resources, but crafting a high-quality one is far from trivial, and takes time.

Read more...

Creating Images and Videos in Java With the New Nano Banana and Omni Models

Google just announced the launch of some new image and video models: Nano Banana 2 Lite (the fastest, most cost-efficient Gemini Image model yet) and Gemini Omni Flash for high-quality video and conversational editing. You can read all about the announcement on the Google Blog.

As soon as I saw the news, I couldn’t wait to get my hands dirty. I wanted to see how easy it would be to generate images and videos using the Gemini Interactions API Java SDK.

Read more...

Gemini Interactions API now GA: Exploring the release candidate of my Java SDK

The Google Gemini Interactions API is now generally available (GA). It provides a unified interface for interacting with Gemini models and agents. You can read the official announcement on the Google Blog, and if you are using Python, Philipp Schmid published a helpful developer guide to get started.

For Java developers, the Gemini Interactions API SDK for Java is gearing up for its stable release with the availability of v1.0.0-RC1. Here is a look at what is new in this release candidate.

Read more...

How I Vibecoded a Philosophy Prep App with Google AI Studio and Gemini

My daughter’s French Bac de Philosophie (philosophy baccalaureate) is tomorrow. Preparing for this examination usually involves reviewing handwritten flashcards, printed handouts, and paper notes.

Reviewing these concepts, authors, works, and quotes systematically is a pain. My daughter asked me for a digital tool to help her study, as she knew I had already helped her younger sister with similar tools for learning or revising her lessons.

I built an interactive study application. What started as a single-evening project became a web application, written in a mere couple hours of vibe coding in Google AI Studio and Gemini.

Read more...

Building a Visualizer for Antigravity Agentic Development Sessions

When working with autonomous AI agents like Antigravity, understanding what they are doing in the background can be difficult. The agents construct reasoning chains, dispatch background tasks, and execute system commands over long sessions. All of this is recorded in detailed JSONL transcript files. Reading raw JSONL is inefficient, so I built the Antigravity Brain Visualizer to parse and render these transcripts into an interactive interface.

Note

You can learn more about the project, view the source code, and download the visualizer app directly from the GitHub repository.

Read more...

Customizing Antigravity CLI: Title and Status Line

Antigravity CLI allows you to customize both the terminal window title and the bottom status line. This is done by passing a JSON payload of the current agent state to external shell scripts via standard input.

In this post, I will explain how I set up my environment, the specific scripts I use, and how to configure the CLI to load them.

The Principle

Both the title and the status line operate on the same principle:

Read more...

Iterating on Frontend Design with Stitch and Antigravity CLI

My friend Leonard and I were collaborating over the weekend on some new updates for the Groovy Web Console. This console is an online playground where Apache Groovy users can run Groovy scripts online, with different versions of the language, from Groovy 3 up to the experimental Groovy 6. Additionally, there’s a specific integration with the Spock testing framework, which allows users to run tests written with the framework.

Here’s what the old console (well, the current one at the time of this writing) looks like:

Read more...

Managed AI Agents with the Gemini Interactions Java SDK

Google recently announced Managed Agents in the Gemini API at Google I/O. This feature allows developers to run autonomous agents that “reason, plan, use tools, and execute code inside isolated cloud sandboxes”.

Rather than requiring developers to manually build, secure, and scale the execution environment (including sandbox containers, network routes, and runtime engines), the Gemini API handles this infrastructure. This is powered by the Antigravity agent running on Gemini 3.5 Flash.

This article shows how to implement these agentic capabilities in Java using the Gemini Interactions SDK.

Read more...

Wiring ADK Kotlin agents in an Android application

With the launch of ADK for Kotlin, it means you can power up your Android applications with agents.

My colleague Jolanda Verhoef built an Android app that integrates an ADK agent written in Kotlin. It’s an app with a chat interface that lets you ask fun facts about anything you want.

Tip

You can check out the video of the Google I/O session that introduced ADK for Kotlin & Android, you’ll find another example agent in the demo near the end of the session.

Read more...

Streaming Gemini 3.1's expressive new TTS model in Java

Google just released Gemini 3.1 Flash Text-to-Speech (TTS), a new expressive TTS model that you can steer with audio tags and scene descriptions.

I wanted to see how it worked with the Gemini Interactions SDK for Java.

Expressive control

The model sounds natural out of the box, but the real benefit is the control you have over expressiveness. By defining “Audio Profiles”, “Scene Details”, and “Director’s Notes” in your prompt, you can control the character’s pacing, tone, and environment.

Read more...