Making a list {and checking it twice}: The Gemini CLI workflow
By Google Cloud Tech
Key Concepts
- {Dev}cember: A month-long technical event featuring Google Cloud tools and themes, including live demos, tutorials, and practical skills.
- Gemini CLI: A command-line interface tool for managing AI workflows, from prompting to deployment, directly from the terminal.
- Technical Advent Calendar: A metaphor for {Dev}cember, where a new Google Cloud tool or theme is revealed each week.
- AI Workflow: The end-to-end process of using artificial intelligence, including tasks like prompting, development, and deployment.
- Context Switching: The act of moving between different applications or tasks, which Gemini CLI aims to minimize.
- Flow State: A mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.
- Gemini 3: A powerful AI model integrated with Gemini CLI, offering advanced capabilities.
- Flash Model: A faster, potentially less resource-intensive AI model available through Gemini CLI, useful for quick tasks or when Gemini 3 servers are busy.
- GitHub Actions: A feature that allows integration of Gemini CLI into GitHub workflows for tasks like code reviews and issue triaging.
- Custom Slash Commands: User-defined commands within Gemini CLI that can be created in a
commandsfolder, allowing for custom interactions and prompts. - MCP Servers: Machine Learning Compute Platform servers that can be integrated with Gemini CLI, with their prompt endpoints translated into slash commands.
- VS Code Integration: A companion extension for Gemini CLI that provides access to open files and other IDE information for enhanced functionality.
- Gemini CLI Extensions: Modular components that extend Gemini CLI's capabilities, supporting various services like Google Workspace, databases (Postgres), and image generation models.
- Nano Banana: A Google AI model for creating and modifying images, known for its speed and image depth.
- Firebase: A platform for building web and mobile applications, including services like hosting and Firestore (a real-time document database).
- Firestore: A NoSQL document database that offers real-time data synchronization, making it suitable for collaborative applications.
- YOLO Mode: A setting in Gemini CLI that allows for more permissive execution of commands, often used for rapid prototyping.
- Vibe Coding: A term used to describe the process of rapidly prototyping or developing applications with AI assistance, often with a focus on speed and iteration.
- Data Residency and Compliance: Considerations for where data is stored and processed, particularly important in corporate settings.
- Open Models: AI models that can be downloaded and run locally, offering more control over data residency.
- Product Requirements Document (PRD): A document outlining the requirements for a product, which Gemini CLI can help generate.
- Gemini.md file: A configuration file used by Gemini CLI for project-level or user-wide settings and instructions.
- Context Engineering/Memory Management: Concepts related to how AI models retain and utilize information over time.
- AI Native DevCon: A conference focused on AI-native development.
- Gemini 3 Pro: A specific version of Gemini 3, noted for its strong coding capabilities.
- Plan Mode: A future feature for Gemini CLI that will allow users to curate workflows.
- Google Workspace Extension: An extension that integrates Gemini CLI with Google Workspace applications.
- System Instructions: A set of directives that inform an AI model about its persona, tone, and style.
- GitHub Gist: A way to share code snippets or small files on GitHub.
- Anti-gravity: A free IDE released by Google that integrates Gemini 3 Pro, designed to supercharge development workflows.
{Dev}cember Week 1: Making a List and Checking It Twice - Gemini CLI
This summary details the first episode of {Dev}cember, focusing on Gemini CLI and its capabilities for managing AI workflows directly from the terminal. The session features hosts Stephanie Wong and experts Amit Mirage, Billy Jacobson, and Taylor Mullen.
Introduction to {Dev}cember and Gemini CLI
- {Dev}cember: Described as a "technical advent calendar," this month-long event will explore a new Google Cloud tool or theme each week, offering live demos, tutorials, and practical skills.
- Gemini CLI's Purpose: The core theme for the first week is "Making a List and Checking It Twice," with a focus on Gemini CLI. The tool aims to enable developers to manage their entire AI workflow, from prompting to deployment, without leaving their terminal, thereby cutting down on context switching and maintaining a flow state.
- Expert Introductions:
- Amit Mirage: Has been working with Gemini CLI for about six months and highlights its efficiency in getting projects done.
- Billy Jacobson: A Developer Advocate at Google focusing on data, databases, and AI. He emphasizes Gemini CLI's utility for development, creativity, and problem-solving on a computer.
- Taylor Mullen: Leads Gemini CLI across Google and plans to showcase festive holiday themes and extensions.
Gemini CLI's Year in Review and Top Launches
Taylor Mullen provided an overview of Gemini CLI's rapid development since its launch on June 25th. The team reportedly delivers 100-150 features and enhancements weekly.
Top 5 Launches:
- GitHub Actions Integration: Allows Gemini CLI to be integrated into GitHub action workflows for tasks like custom code reviews and issue triaging. This is crucial for managing the high volume of community contributions (issues and pull requests) in open-source projects.
- Custom Slash Commands: Users can create their own slash commands within the Gemini CLI by placing them in a
commandsfolder. These commands can be customized for specific interactions, such as generating custom commit messages. Integration with MCP servers is also supported, translating prompt endpoints into slash commands. - VS Code Integration: A powerful companion extension for Gemini CLI that integrates with VS Code (and forks of it). It prompts users to install the extension, granting it access to open files and other IDE information to enhance its capabilities.
- Gemini CLI Extensions: A broad category encompassing support for various services, including Google Workspace, database providers like Postgres, and more. This highlights the extensibility of the CLI.
- Gemini 3: The latest AI model, recognized as a significant advancement and a key component that will be demonstrated.
Gemini CLI vs. Browser-Based Gemini
- Beyond Coding Assistance: Gemini CLI acts as more than just a coding assistant. It can interact with files on the operating system.
- Real-world Example (Amit): Amit shared an anecdote about using Gemini CLI to rename a large batch of nondescript image files (e.g., "img_001.jpg") based on their content, demonstrating its file management capabilities. The CLI can also be used to create images via extensions.
Demonstrations and Use Cases
Billy Jacobson's Demos: File Organization and Holiday Village Builder
-
File Organization:
- Billy demonstrated using Gemini CLI in his terminal to organize files.
- He used the Flash model for faster responses, especially with high demand for Gemini 3.
- The prompt "organize my files for me" led Gemini CLI to ask clarifying questions about how to organize (e.g., by file type).
- Gemini CLI requested permission to run
mkdir(make directory) andmv(move) commands, showcasing its ability to interact with the file system safely. - The files were successfully organized into folders like
data,images, andtext files. - Billy also showed how to enter shell mode within Gemini CLI by typing
!, allowing direct execution of shell commands without exiting the CLI.
-
Holiday Shopping List and Image Generation:
- Billy asked Gemini CLI to find his "holiday shopping list" and list its contents.
- He then used Gemini CLI to generate gift ideas based on his existing list.
- The Nano Banana extension was used to generate an image of these gift ideas.
- Nano Banana: Described as the latest AI model from Google for image creation and modification, noted for its speed and image depth.
- The generated image was a festive flatlay of the suggested gifts, including a cocktail kit, coffee beans, a playmat for his niece, and a vintage Buffy the Vampire Slayer poster.
- The process highlighted how Gemini CLI can expand on existing ideas and create visual representations.
-
Holiday Village Builder Game:
- Billy presented a simple holiday village builder game he was working on.
- He used a custom
/firebase initslash command (enabled by the Firebase extension) to integrate Firebase into the project. - This provided Firebase hosting for easy sharing and access to Firestore, a real-time syncing document database.
- The goal was to enable collaborative play on the holiday village builder.
- Permissions and Control: Billy emphasized Gemini CLI's approach to asking for permission before executing actions, ensuring user control and preventing unintended consequences, especially in production environments. He also mentioned the existence of "YOLO mode" for more permissive execution.
Amit Mirage's Demo: Gift Idea Web Application
-
Project Setup:
- Amit's project aimed to combat holiday gift-buying procrastination.
- He had a
features.mdfile containing his raw ideas and configuration files (gemini.md,.envwith API key). - He used an API key for deployment, but noted the project could be run locally without one.
-
Generating a Product Requirements Document (PRD):
- Amit used Gemini CLI with the Flash model to generate a PRD.
- The prompt instructed Gemini CLI to create a
prd.mdfile based on the content offeatures.md. - Gemini CLI successfully referenced and parsed the
features.mdfile, producing a comprehensive PRD with technical details.
-
Creating the Web Application:
- Amit then relaunched Gemini CLI, this time using Gemini 3 Pro for its coding capabilities.
- He prompted Gemini CLI to "create the application for me based on what's in the
@prd" (referencing the generated PRD file). - The process of building the application was handed off to Billy's demo while it was in progress.
-
PRD and Iteration:
- Billy commented on the usefulness of PRD files, noting they serve as a persistent record of features and requirements, allowing for project restarts or rebuilds.
- He highlighted the speed of Flash for PRD generation and the transition to Gemini 3 Pro for implementation.
- The upcoming "Plan Mode" for Gemini CLI was mentioned as a feature to further curate workflows.
Billy Jacobson's Follow-up: Holiday Village Builder Deployment and Sync
- Firebase Deployment: Billy successfully deployed his holiday village builder game to Firebase.
- Debugging and Iteration: He encountered an issue with the hosting URL and used Gemini CLI to debug and correct it, demonstrating the iterative nature of "vibe coding."
- Real-time Collaboration: The deployed application allowed multiple users to add trees and tiles to a shared holiday village.
- Firestore Synchronization: All actions were synchronized in real-time via Firestore, showcasing its capabilities.
- Self-Documentation: The use of
.mdfiles for features and PRDs inherently creates self-documentation for projects, aiding in understanding and debugging. - Prompting Best Practices: Jennifer's comment was shared, emphasizing treating AI prompts like instructions to a human and being a detailed explainer.
Amit Mirage's Follow-up: Gift Idea Web Application Demo
- Application Functionality: Amit showcased the web application generated by Gemini CLI.
- Gift Idea Generation: Users could select a friend (e.g., Steph) and the app would search Google for gift ideas.
- Example Interaction: For Steph, who likes "K-pop Demon Hunters," the app suggested a "K-pop light stick customized with subtle demon warding signals."
- Adding Ideas: Selected gift ideas could be added to a list.
- Limitations and Future Improvements: The initial version did not pull in prices or direct product links, as these were not explicitly requested in the initial prompts. Amit noted that he could use Gemini CLI again to add these features.
- Personalized Gift Suggestions: Billy and Taylor also had their gift preferences added, including a coffee subscription and a cat Christmas sweater.
- Iteration and Feature Addition: The demo illustrated how users can iterate on prompts to add new features, such as price and description, to the generated application.
Q&A Session
- Environment Setup (Mac OS): For fresh macOS installations, using
npmis recommended over Homebrew for installing Gemini CLI, as the Homebrew version is not directly controlled by the Gemini CLI team. - Vibe Coding in Corporate Settings:
- General Consensus: Vibe coding is acceptable, especially for prototyping and internal tools.
- Balance: A balance between AI-driven development and human oversight is crucial, particularly for production-ready applications.
- Data Residency: For corporate use, consider data residency and compliance. Google offers open models that can be run locally to mitigate these concerns.
- Responsible Vibe Coding: Emphasized the importance of tracking AI-generated code and understanding when to transition from prototype to production.
- Gemini CLI Cost: Gemini CLI is free to use by logging in with a Google account. While there are usage quotas, the free tier (especially with the Flash model) offers significant capabilities. Paid tiers provide higher quotas and access to more advanced models like Gemini 3 Pro.
- Vibe Coding and SDLC: Gemini CLI fits into every stage of the Software Development Life Cycle (SDLC), accelerating tasks like testing, code reviews, and CI checks. It enhances efficiency rather than fully replacing existing processes.
- Reusable Workflows with Gemini CLI:
- Extensions: Extensions are highlighted as a key mechanism for creating reusable workflows. They can bundle MCP servers, custom instructions, and slash commands.
- Sharing: Extensions can be shared within teams or externally, promoting consistency and efficiency.
- Gemini.md File: This file can be used for project-level or user-wide settings, including best practices and coding standards, which Gemini CLI will reference.
- Gemini CLI vs. Anti-gravity:
- Gemini CLI: Excels at tasks involving both code and non-code operations, deeply interacting with the operating system and file structure. It acts as a versatile personal assistant.
- Anti-gravity: A full IDE with Gemini 3 Pro baked in, focused on supercharging coding workflows.
- Synergy: The two tools can work together, with Anti-gravity handling core coding tasks and Gemini CLI assisting with broader OS-level operations, file management, and non-code AI tasks.
Taylor Mullen's Demos: Themes, Extensions, and Personalization
-
Holiday Themes:
- Taylor showcased a new holiday theme bundle created by Jack Weatherspoon.
- Users can apply themes using the
/theme holidaycommand (expected in upcoming builds). - He demonstrated how to create custom themes by modifying the
settings.jsonfile within a Gemini CLI configuration folder, even applying themes to the exit screen.
-
Vision Extension and Webcam Integration:
- Taylor introduced the Vision extension, created by John Capabiano, which leverages Nano Banana and can access the webcam.
- He used this extension to take a picture of himself, demonstrating the CLI's ability to interact with hardware.
- The extension could course-correct when the camera was not initially available to the terminal.
- He then used the extension to apply a festive background to his picture, showcasing image modification capabilities. He also attempted to generate a festive sweater for himself, iterating on the prompt.
-
Google Workspace Extension and Persona Customization:
- Taylor discussed the Google Workspace extension and its potential for analyzing user data (emails, chats) to create personalized system instructions.
- He demonstrated how to configure a
gemini.mdfile at the user profile level to define his persona, vocabulary, phrasing, and sentence structure. - This system instruction was linked to a GitHub Gist, allowing Gemini CLI to fetch and apply his writing style when requested.
- The "tailorisms" section of his persona included phrases like "hm" and "ship it."
- This approach separates knowledge (GitHub Gist) from rules (Gemini.md), enabling more controlled and context-aware AI interactions.
Getting Started with Gemini CLI Extensions
- Documentation: The primary resource for getting started is
geminicsli.com/docs, which covers extension creation, usage, and other aspects of Gemini CLI. - GitHub Repositories: Extensions are typically hosted on GitHub. Users can create their own extensions by including a
gemini-extension.jsonfile in their repository. - Local Folders: Extensions can also be experimented with using local folders before publishing.
Conclusion and Next Steps
- The session concluded with a recap of Gemini CLI's capabilities, emphasizing its customizability and extensibility through extensions.
- The next {Dev}cember session will focus on Gemini 3 and Anti-gravity, featuring demos from their engineers.
- The hosts thanked the audience and wished them happy holidays.
Chat with this Video
AI-PoweredHi! I can answer questions about this video "Making a list {and checking it twice}: The Gemini CLI workflow". What would you like to know?