đŸ€– 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
 }

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\\"}"  
    \]
  }  

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 :