DEV Community

Cover image for 🤖 Gemini dans votre terminal avec Gemini CLI
Jean-Phi Baconnais for Zenika

Posted on

🤖 Gemini dans votre terminal avec Gemini CLI

Cet article est également disponible en anglais ➡️ ici ⬅️ .

👉 CLI, Kezako?

Les Command Line Interface (CLI) sont des outils en ligne de commande qui permettent d'interagir avec une application en saisissant “du texte” formant des commandes. Ils existent depuis le début de l’informatique et sont toujours utilisés au quotidien par les développeurs·euses, SRE/OPS et toute autre personne aimant passer du temps dans les terminaux 😁.

Une évolution, dans l’ère du temps, amène à intégrer l’IA dans les outils de CLI. Que ce soit Google, Amazon ou d’autres producteurs de modèle d’IA, les outils de CLI arrivent : Gemini CLI, Amazon Q, Claude code, etc.

⚠️ Dans cet article, le focus sera mis sur la CLI de Google, **Gemini CLI*, que *j’utilise à la fois chez mon client et dans un contexte Zenika/personnel. Ce tour d’horizon vous permettra de découvrir le fonctionnement de cette CLI ainsi que les fonctionnalités disponibles.

Je ne ferai pas de comparatif avec les autres solutions du marché, faute de les connaître et de les avoir testé suffisamment. Je vous recommande cependant la conférence de Faye Ellis au DevFest Nantes sur la CLI d’Amazon (voir le replay)..

⚙️Gemini CLI

Gemini CLI est un projet open source publié en juin 2025 conçu pour accroître la productivité des équipes à l’aide de l’IA directement dans votre terminal.

Pour l’installation, vous devez avoir initié ou identifié un projet Google Cloud Platform avec l’API Gemini d'activée. Gemini CLI s’installe ensuite à l’aide de la commande npx https://github.com/google-gemini/gemini-cli ou bien avec brew brew install gemini-cli. Une fois la variable d’environnement GOOGLE_CLOUD_PROJECT configurée, l’ouverture de Gemini se fait simplement avec la commande gemini.

Welcome Gemini CLI

🚀 Fonctionnalités offertes par Gemini CLI

La fonctionnalité principale de Gemini CLI est de permettre aux utilisateurs et utilisatrices de solliciter les modèles Gemini depuis le terminal, tout en intégrant des outils capables d'interagir avec leur environnement.

Ces sollicitations peuvent prendre plusieurs formes : demander des informations sur un sujet, obtenir de l'aide sur la résolution d’une problématique, ou encore générer un contenu spécifique. Dans cet exemple, je lui ai demandé de faire un tableau comparatif entre 2 frameworks Java du moment, Quarkus et Springbot.

Quarkus / Springbot

Ce type de requête, identique à celle que nous ferons sur un moteur de recherche, est possible grâce à un outil que Gemini CLI intègre nativement : GoogleSearch. Cet outil n’est pas seul, je vous détaillerai cette partie par la suite de l’article.

Il y a quelques mois, lorsque nous utilisions des Large Langage Model (LLM), nous étions limités dans la “fraîcheur” des données. Avec cet outil, les recherches vont permettre d’avoir des résultats à jour.

Ce biais peut-être vérifié avec deux requêtes simples telles que “donne moi la date du jour” et “dis moi si un ancien président français est en prison et si oui depuis quand” (ce test a été fait le 23/10/2025 et ne me demandez pas pourquoi j’ai eu cette question en tête en premier 🤷) :

Date of the day
GoogleSearch tool

Dans la seconde requête, Gemini CLI nous indique son raisonnement et les outils utilisés pour répondre à nos questions. Dans ma requête spécifique, GoogleSearch est bien appelé, nous donnant une explication et une première justification sur la réponse donnée.

🗒️ Les commandes

Gemini CLI intègre plusieurs commandes permettant notamment de :

  • configurer ou modifier son authentification Google,
  • régler ses préférences et options,
  • soumettre un bug,
  • copier le résultat d’une requête dans le presse papier

Commands

Settings command

La commande /init est intéressante. Elle permet de générer un fichier GEMINI.MD à votre projet.

Ce fichier Markdown (vous l’avez deviné avec son extension .md 🙃) contient le contexte de votre projet. Gemini CLI va parcourir les fichiers de votre projet et rassembler les informations nécessaires pour adapter ses futures réponses de Gemini CLI en fonction de votre contexte.

Il est également possible de créer vos propres commandes personnalisées. Il suffit de créer un répertoire “commands” soit dans le répertoire .gemini de votre session ou de votre projet concerné par cette commande.

Le nom du fichier .toml correspond au nom de la commande et doit posséder au minimum une description de prompt pour expliquer son raisonnement.

Par exemple, la commande /translate peut être configurée en ajoutant le fichier translate.toml dans le répertoire .gemini.

Toml configuration file

Dans Gemini CLI, la commande est disponible et permet d’avoir rapidement une traduction français -> anglais.

Custom command

Custom command result

🤖 Un assistant de code “agentic”

En tant que développeur, j’ai intégré dans mes IDEs du moment, VsCode et Intellij, le plugin Gemini, m’accompagnant dans la rédaction de documentation, l’explication du code et l’aide pour résoudre des problèmes. L’arrivée du monde “agentic” a permis de renforcer la partie “assistant” de code en permettant aux outils de proposer des mises à jour des fichiers dans les projets. Le plugin Gemini dispose depuis plusieurs mois la possibilité d’activer le mode “Agent” :

Agent

Gemini CLI peut être ouvert dans un terminal, comme celui par défaut disponible sur Mac, dans des applications de terminaux comme Ghostty (celle que j’utilise) ou bien directement dans le terminal de votre IDE.

Gemini CLI in a terminal

Gemini CLi, en plus de pouvoir modifier vos fichiers, peut exécuter les commandes disponibles sur votre poste. Par exemple, lors de la demande d’aide de création d’un nouveau projet en Go, Gemini CLI va interagir avec votre environnement, en vérifiant pour commencer si Go est installé sur votre poste.

CLI execution

CLI second execution

Une autre commande à connaître, c’est /ide qui permet de connecter Gemini CLI à votre IDE. Les propositions de code s’ouvriront dans votre IDE, ce qui facilite leur relecture.. Dans cet exemple j’ai demandé à Gemini de me générer des tests et la première étape est bien d’ajouter Junit dans mon projet Java

CLI diff

Une fois (pour mon exemple) la proposition de Gemini validé, il continue son traitement et me propose de créer une classe de Test pour le code non testé (Oui je sais ce n’est pas bien 😁)

CLI diff

La sous commande /ide status permet de voir l’état de cet intégration

IDE command

🧩 Les extensions

Au-delà des fonctionnalités citées précédemment, Gemini CLI possède son système d’extensions qui permet d’accroître notre productivité.

Une commande /extensions est disponible. Accompagnée des sous-commandes list et update, vous allez pouvoir visualiser les extensions que vous avez et de les mettre à jour.

Extensions list command

Pour le moment, j’ai installé ces deux extensions qui sont très pratiques pour faire une revue et faire un audit de sécurité sur la branche sur laquelle on développe. Il existe déjà une liste très intéressante d’extensions disponible sur ce site : https://geminicli.com/extensions/.

Si la génération d’image est quelque chose que vous faites régulièrement, je vous recommande l’extension nanobanana (modèle de génération d’image de Google).

Gemini CLI extensions website

Pour les personnes qui se demanderaient pourquoi je n’ai pas installé cette extension que j’annonce être intéressante, la raison est assez simple, j’utilise ce modèle de génération d’image dans d’autres contextes 😎.

🙌 MCP

Les MCP (Model Context Protocol) permettent de faciliter les appels à des APIs. Gemini CLI offre la possibilité de configurer les MCP que vous avez développés et/ou ceux déjà disponibles. Et ça c’est vraiment intéressant. Pour ma part, j’ai intégré les MCP GitHub, GitLab et Atlassian chez mon client. Cela fait quelques semaines que j’essaye d’en utiliser régulièrement et cela peut très vite être un gain de temps. Envie de créer une issue GitHub ou GitLab ? Écris le à Gemini CLI et passe rapidement à autre chose. De la même façon, la création d’un ticket Jira se fait en quelques mots dans le terminal, pratique.

Comment cela fonctionne? Gemini CLI gère sa configuration dans le fichier .gemini/settings.json à la racine de votre compte. Ce fichier contient l’ensemble des configurations liées à l’utilisation dans votre IDE, les thèmes graphiques appliqués mais aussi la configuration des MCP.

La configuration du serveur MCP de GItHub se fait avec cette configuration :

 "github": {  
     "httpUrl": "https://api.githubcopilot.com/mcp/",  
     "headers": {  
       "Authorization": "Bearer xxxxxx"  
     },  
     "timeout": 5000
Enter fullscreen mode Exit fullscreen mode

Côté GitLab, cela peut se faire à l’aide de commande npx. Certains MCP peuvent se configurer avec la modification de ce fichier settings.json, alors que pour d’autres, ils nécessitent de les installer une seule fois sur votre poste, avec de ce que j’ai vu pour la plupart du temps, des commandes npx.

   "GitLab": {  
     "command": "npx",  
     "args": \[  
       "mcp-remote",  
       "https://gitlab.com/api/v4/mcp",  
       "--static-oauth-client-metadata",  
       "{\\"scope\\": \\"mcp\\"}"  
     \]  
Enter fullscreen mode Exit fullscreen mode

Une fois configuré, il sera possible de récupérer des informations directement dans Gemini CLI à partir des ressources mises à disposition. Dans cet exemple, je veux récupérer les issues de mon projet. Gemini CLI les affiche de manière brute en json mais termine par un affichage plus lisible.

MCP

Concernant ma demande sur les PR ouvertes, Gemini CLi me les (enfin la dans mon exemple) restitue

MCP PR

📊 Les stats

A la fermeture de Gemini CLI, des statistiques de notre session sont restituées, notamment le nombre d’appels, le pourcentage de succès et les tokens consommés. Ces données sont à tout moment disponibles avec la commande /stats.

Stats

🚀 Un outil du quotidien ?

Clairement oui ! Bien que j’apprécie beaucoup GitLab Duo et leur plateforme agentique (https://dev.to/zenika/vibe-coding-with-gitlab-duo-agentic-power-in-action-1p47), l’utilisation de Gemini CLI est très appréciable. Mon terminal Ghostty, que je dédie à Gemini CLI, me permet de faire toute les activités qui gravitent autour du développement.

L’intégration des extensions et des MCP est un réel atout pour trouver une information rapidement. Bien sûr, pour des actions plus conséquentes sur GitHub, GitLab ou toute autre application configurable avec MCP, vous serez plus productifs·ves à aller sur l’application en question. Mais pour toute action rapide, l’utilisation des MCP est très intéressante et pertinente.

Voici quelques articles autour de la CLI et des MCP :

Top comments (0)