Concept

La Révolution Open Source du Code Assistant

Gemini CLI est un outil de développement en ligne de commande entièrement gratuit conçu pour rivaliser avec des solutions payantes prestigieuses comme Claude Code ou Codex CLI.

100% Gratuit

Avec une simple adresse Gmail, vous bénéficiez de 1 000 requêtes par jour et de 60 requêtes par minute, sans aucun abonnement requis. Un contraste majeur avec les solutions concurrentes.

Puissance du Modèle

Propulsé par Gemini 2.5 Pro / 1.5 Pro. Il offre un accès brut à une fenêtre de contexte impressionnante de 1 million de tokens, là où d'autres éditeurs brident l'accès gratuit.

L'avis de l'auteur (Matt Maher)

Il conclut avec un avis extrêmement positif ("deux pouces en l'air"). C'est un projet open source qui évolue à une vitesse fulgurante. Bien qu'il attende la future version 3 du modèle pour des performances encore meilleures, il affirme que Gemini CLI est un outil "choquant de qualité" que vous devriez absolument tester.

Démarrage

Installation & Authentification

1 Installation via NPM

Ouvrez votre terminal et installez l'interface globalement en utilisant le gestionnaire de paquets Node :

npm install -g @google/gemini-cli

* Note: La commande exacte peut varier selon le dépôt GitHub officiel.

Avertissement Crucial

Il ne faut jamais exécuter Gemini CLI dans votre répertoire personnel (home directory). Il est impératif de le lancer uniquement dans un environnement contrôlé, comme un dossier de code spécifique ou un dépôt GitHub, pour sécuriser vos fichiers.

2 Lancement et Connexion

Placez-vous dans votre projet de code et lancez l'outil. Au premier lancement, il vous demandera de vous authentifier.

cd mon-projet-code
gemini

La commande /auth

Si ce n'est pas automatique, utilisez /auth dans l'interface. Vous pouvez vous connecter avec :

  • Un compte Google classique (Gmail)
  • Une clé API
  • Vertex AI
Fonctionnalités intégrées

Les Commandes Slash (/)

L'outil fonctionne beaucoup avec des commandes "slash". Voici les commandes de base intégrées pour gérer votre session et votre environnement.

/init

Analyse votre projet et crée un fichier gemini.md sur mesure. Ce fichier donne en arrière-plan des indices au LLM sur la structure et le fonctionnement de votre projet à chaque nouvelle session.

/clear

Permet de nettoyer l'historique et de démarrer une nouvelle session de chat sans le contexte précédent. Très utile pour changer de sujet.

/stats

Affiche l'état actuel de la session, les modèles utilisés, le nombre de requêtes effectuées et la consommation de tokens par rapport à votre quota gratuit.

/settings

Permet de modifier les paramètres de l'éditeur directement depuis le terminal, applicables au niveau Workspace, Utilisateur ou Système global.

/corgi

Un "Easter egg" caché ! Fait apparaître un petit chien en bas de l'écran pour vous tenir compagnie pendant que vous codez.

Extensibilité

Créer ses Commandes Slash

L'une des fonctionnalités les plus puissantes de Gemini CLI. Vous pouvez créer des commandes personnalisées en utilisant des fichiers TOML.

Structure et Emplacement

1. Le Dossier

Créez un dossier commands dans le répertoire Gemini (situé dans votre dossier personnel global, ou directement dans le dossier de votre projet pour une configuration en cascade).

2. Le Fichier TOML

Le nom du fichier définit la commande (ex: explain.toml créera la commande /explain).

# Fichier: explain.toml
description = "Explique le code sélectionné ou un fichier spécifique"
prompt = """
Tu es un expert développeur. 
Explique ce code en détail :
{{args}}
"""

L'Art du Prompt Dynamique

Gemini CLI permet d'aller plus loin qu'une simple bibliothèque statique en ajoutant des actions dynamiques directement dans vos fichiers de commande.

{{args}}

Arguments Texte

Ce que vous tapez après la commande remplacera cette balise. Ex: /explain hello world injectera "hello world".

@chemin/fichier

Inclusion de Fichier

Permet d'aspirer le contenu entier d'un fichier spécifique et de l'intégrer directement dans la requête envoyée à l'IA.

{! bash !}

Syntaxe Brace Bang

Exécute une commande terminal (ex: {! ls -la !}) et injecte le résultat obtenu en plein cœur de votre prompt.

Configuration en Cascade

Si vous placez vos commandes dans le dossier de votre projet (espace de travail), elles seront prioritaires sur les globales et pourront être versionnées via Git pour les partager avec votre équipe ! L'ordre de recherche est : Workspace > User > System.

Automatisation

Maîtrise du Mode Non Interactif

L'outil n'est pas uniquement un éditeur interactif. Le paramètre -p permet de l'utiliser comme un outil de ligne de commande standard.

# Envoi d'une requête ponctuelle directe
$ gemini -p "Quel temps fait-il à Paris ? Formate la réponse pour 80 caractères."
Récupération des données en cours...
Il fait actuellement 18°C à Paris avec un ciel partiellement nuageux.
Température max prévue: 22°C.

Accès Internet en Temps Réel

Contrairement à de nombreux concurrents, Gemini CLI peut interroger Internet dynamiquement grâce aux outils intégrés au modèle (Gemini 2.5 Pro).

Exécution Directe

Envoie le texte, affiche la réponse dans la console, et rend la main sans ouvrir d'interface de chat.

Formatage Écran

Idéal pour le terminal, vous pouvez demander à l'IA de contraindre sa mise en page (ex: largeur maximale de 80 caractères).

Idéal pour les Scripts

Parce qu'il ne nécessite aucune interaction humaine, ce mode est puissant pour être inséré dans vos pipelines et scripts d'automatisation (workflows CI/CD).

Sous le capot

Configuration et Options Avancées

Le fichier settings.json

Situé dans votre dossier personnel (ex: ~/Gemini/settings.json), ce fichier contrôle le comportement global.

Configuration de Ripgrep

Pour des recherches de fichiers ultra-rapides, vous pouvez configurer l'utilisation de ripgrep. L'activation se fait dans settings.json.

Note importante : L'outil ne l'installe pas pour vous. Vous devez d'abord l'installer sur votre OS via le terminal.
# Sur macOS
brew install ripgrep

# Sur Debian/Ubuntu
sudo apt-get install ripgrep

Historique et Checkpointing

Le checkpointing s'active aussi dans settings.json. Il existe une nuance importante sur son fonctionnement actuel :

Contexte du Chat

Sauvegarder le contexte d'une conversation à un instant T (ex: "avant grand changement") fonctionne parfaitement. Vous pouvez y revenir dans l'historique.

Restauration Fichiers

La fonctionnalité de "restore checkpoint" pour restaurer vos fichiers physiques à un état antérieur est encore instable / en développement.

Gestion des Répertoires (Workspaces)

Contrairement à d'autres éditeurs, Gemini CLI permet de restreindre l'outil à des dossiers précis. Si vous travaillez sur un énorme "monorepo", vous pouvez lui indiquer de n'analyser que deux ou trois dossiers (ex: le serveur et le front-end) au lieu de tout scanner.

Tutoriel Avancé

11 Astuces Pro de Sean Kochel

Pour transformer Gemini CLI d'un simple générateur de code en un véritable partenaire de développement, voici 11 astuces incontournables extraites de la vidéo de Sean Kochel.

#1 L'Authentification Gratuite

En utilisant /auth et en vous connectant via Google, vous évitez les coûts liés à une clé API et profitez de 1 000 requêtes/jour offertes. Parfait pour expérimenter sans anxiété financière.

#2 Le Fichier gemini.md

Considérez-le comme votre "Master Prompt". Définissez-y le contexte de votre stack, vos standards (ex: développement piloté par les tests) et vos préférences. Il agira comme directive globale pour chaque session.

#3 Workflows Slash Avancés

Au-delà de simples prompts, créez des flux complets. Exemple : une commande qui analyse un fichier, génère les tests, les lance, corrige les erreurs puis rédige un message de commit automatiquement.

#4 La Mémoire Active (/memory)

Évitez de corriger 10 fois le même bug de configuration ! Utilisez /memory add "faits..." pour sauvegarder des solutions permanentes, et /memory show pour consulter les acquis de l'IA.

#5 La Magie des Checkpoints

Expérimentez librement. Gemini CLI journalise vos actions. Si tout casse, utilisez /restore pour revenir exactement à l'appel système d'avant l'erreur, comme des points de sauvegarde dans un jeu vidéo.

#6 Le Cycle TDD Intégré

Le Test-Driven Development est super optimisé ici : dites à Gemini de créer le test (qui échoue), d'implémenter la fonctionnalité, puis de boucler automatiquement jusqu'à ce que le test passe au vert.

#7 Débogage Visuel (Multimodal)

Pour régler l'UI, fournissez une capture d'écran via @image.png. Les modèles de vision sont 200% plus efficaces pour corriger les soucis d'interface ou de padding que des mots-clés de description.

#8 L'Audit de Fichiers Ciblés

Passez des références claires en argument. En utilisant @UX.md combiné au composant sur lequel vous travaillez, vous pouvez demander à Gemini d'auditer dynamiquement l'interface selon vos propres chartes.

#9 Clear vs Compress

Si vous changez de feature, utilisez /clear. Si votre contexte gonfle mais que vous restez sur le même problème complexe, utilisez /compress (réduction jusqu'à 90% des tokens en préservant l'essentiel).

#10 Le Mode YOLO (Auto-Accept)

Trois niveaux d'action : "None" (vous validez tout manuellement), "Safe" (valide les requêtes en lecture seule) et "All / YOLO". Activez le mode YOLO uniquement lorsque vous avez une suite de tests très robuste.

#11 L'Avantage du Million de Tokens

Avec la fenêtre gargantuesque de Gemini, chargez toute la base de code de votre projet en production dans le contexte. L'IA agit alors comme un développeur senior qui connaît chaque ligne cachée de votre repo, évitant les erreurs de contexte fatalistes des modèles plus bridés.

Démos & Extensions

Cas Pratiques & MCP

Tiré de la présentation d'Anne-Marie Roy, voici des exemples concrets d'utilisation de Gemini CLI et l'intégration du puissant protocole MCP.

Les Serveurs MCP (Model Context Protocol)

Le MCP agit comme un "câble USB-C" universel pour les LLMs. Il permet à Gemini CLI de se connecter et d'interagir avec des applications externes.

Intégration GitHub

En configurant le serveur MCP GitHub, vous pouvez demander depuis le terminal :
"Quelles sont les issues ouvertes ?" ou "Crée et ferme une issue de test".

Services Tiers (Ex: Airbnb)

Vous pouvez interroger des API externes. Exemple de prompt :
"Donne-moi 5 appartements disponibles à louer ce week-end à Deauville".

Configuration : Ces serveurs s'ajoutent directement dans le fichier settings.json sous la clé mcpServers.

Renommage Visuel Intelligent

Exploitez les capacités multimodales de Gemini pour organiser vos dossiers. Demandez-lui d'aller dans un dossier d'images mal nommées (ex: 1.jpg, 2.jpg) et donnez l'instruction :

"Analyse le contenu de chaque fichier et renomme-le de manière appropriée (ex: si c'est une fleur, renomme en flowers.jpg)."

Conversions Magiques

  • De l'Image au JSON : Passez une image de facture et demandez : "Convertis ce fichier en JSON avec la même extension". L'IA structure automatiquement toutes les données de la facture.
  • Du Markdown au PowerPoint : À partir d'un fichier Markdown, demandez la création d'un fichier .pptx. Gemini utilisera des utilitaires comme pandoc en arrière-plan pour générer les slides.

Réglage Fin (Température, Top-K)

Pour des tâches créatives, vous pouvez injecter des paramètres précis dans vos commandes de prompt pour moduler la créativité du modèle :

Temperature: 0.7 (Créativité contrôlée) Top-K: 40 (Lexique limité) Top-P: 0.95 (Cohérence)
Productivité & Workflow

Workflows & Agents Autonomes

Inspiré par la chaîne AI and Technology Simplified, voici des conseils pour structurer vos commandes personnalisées de manière robuste et utiliser des fichiers de configuration pour vos agents.

Portée Globale vs Projet

L'emplacement de votre dossier commands définit sa portée :

  • Dossier Profil : (Dossier global d'installation Gemini) La commande sera accessible partout sur votre machine pour tous vos projets.
  • Dossier Projet : La commande sera exclusive à ce projet précis (idéal pour les workflows d'équipe).

L'Astuce du Redémarrage

Si Gemini CLI est déjà ouvert lorsque vous créez un tout nouveau fichier .toml pour une commande, l'outil ne la reconnaîtra pas immédiatement dans l'autocomplétion. Fermez (quit) et relancez Gemini CLI pour qu'il indexe proprement la nouvelle commande.

Le Fichier Constitutionnel (agents.md)

Pour éviter de répéter les mêmes instructions (ton, règles de style, contraintes de code) dans chaque commande TOML, créez un fichier central comme agents.md. C'est un "fichier constitutionnel" que tous vos agents devront respecter. Vous l'invoquez ensuite facilement dans vos prompts dynamiques pour unifier le comportement de l'IA.

Anatomie d'un Workflow (Ex: /proofread)

Comment enchaîner des actions complexes de gestion de fichiers avec un simple /proofread mon_fichier.md :

  1. Le fichier TOML : Utilisez des commentaires (#) en en-tête. Les clés description et prompt doivent être en minuscules. Les prompts multilignes s'écrivent entre """.
  2. L'exécution : Le prompt ordonne à l'IA d'ouvrir le fichier passé en paramètre (en injectant le nom du fichier derrière la commande slash).
  3. La révision : Il croise automatiquement le contenu du fichier avec les règles du agents.md et d'un éventuel serveur MCP (ex: Microsoft Writing Style Guide).
  4. La manipulation de fichiers : Après correction, le prompt instruit Gemini de déplacer physiquement le fichier du dossier drafts/ vers un dossier pending/ en ajoutant un suffixe, le tout sans intervention manuelle !
Niveau Expert

Intégration IDE, Sandboxing & Architecture

Tiré du tutoriel complet de Lustoykov, découvrez comment coupler Gemini CLI à votre éditeur, sécuriser vos environnements et comprendre sa mécanique interne.

Connexion Directe : Cursor & VS Code

Gemini CLI prend une tout autre dimension lorsqu'il est synchronisé avec votre éditeur.

  1. Installez l'extension "Gemini CLI Companion" dans VS Code ou Cursor.
  2. Lancez Gemini CLI dans le terminal et utilisez la commande /ide enable (vérifiez l'état avec /ide status).
  3. Le Super-Pouvoir : Le CLI accède désormais automatiquement aux 10 derniers fichiers ouverts, à la position de votre curseur et au texte sélectionné. Les modifications proposées par l'IA peuvent être acceptées ou rejetées directement via l'interface visuelle de l'éditeur !

Raccourcis Secrets & Optimisation

Hotkeys Essentiels

  • Ctrl + Y : Activer/Désactiver le mode YOLO.
  • Shift + Tab : Basculer en mode autoedit.
  • Ctrl + O : Afficher la console de Debug (utile en cas de blocage de l'API).
  • Ctrl + F : Focus sur le shell pour valider une opération.

Login : Gmail vs API Key

Le login Gmail offre un grand quota gratuit, mais s'authentifier avec une clé API (via ai.studio/api-keys) active le Token Caching, ce qui accélère les requêtes et réduit les coûts (économies visibles via /stats).

Extensions : Tapez /extensions list pour installer des modules officiels comme NanoBanana (qui permet de générer des images directement depuis le CLI).

Sandboxing (-s)

Si vous utilisez des scripts générés ou le mode YOLO, isolez le CLI. Utilisez le flag -s ou exportez GEMINI_SANDBOX=true.

  • Mac : Utilise le framework natif Seatbelt (profils configurables via env vars).
  • Linux/Win : Isole l'exécution dans un conteneur Docker.

Flags d'Exécution

  • --output-format json : Retourne des données JSON pures (génial pour les scripts CI/CD).
  • --approval-mode autoedit : Un entre-deux parfait. Approuve automatiquement les créations/éditions de fichiers, mais bloque et demande votre avis pour les commandes Shell.

Le "Hack" des Instances Concurrentes

Gemini CLI charge les fichiers gemini.md en cascade. Vous pouvez créer deux dossiers dans votre projet (ex: /plan et /explain), y placer des gemini.md spécialisés, puis ouvrir deux terminaux.

Terminal 1 : cd /plan && gemini --include-directories ..
Terminal 2 : cd /explain && gemini --include-directories ..

Vous obtenez ainsi deux agents de l'IA (un architecte, un vulgarisateur) travaillant simultanément sur le même code source !

Architecture en 2 Couches

1. Le Package CLI (Frontend)

Gère l'expérience utilisateur, l'analyse des arguments tapés, l'affichage des couleurs/thèmes, la lecture de la console et la validation des prompts d'approbation.

2. Le Package Core (Backend)

Récupère l'entrée, concatène le contexte (mémoire, fichiers markdown, système de fichiers), construit le gros prompt, communique avec l'API Gemini et lance les outils si le modèle le demande.

Gouvernance & Infrastructure

État de l'Art en Entreprise

Le déploiement de Gemini CLI en environnement professionnel (boucle ReAct) impose des standards stricts de sécurité, d'isolation et d'automatisation.

Sécurité des Données : Vertex AI

Pour respecter le RGPD et l'EU AI Act, l'utilisation de l'API Standard (Google AI Studio) est proscrite en entreprise. Le routage doit s'effectuer via Google Cloud Vertex AI.

API Standard (AI Studio)

  • Risque d'entraînement du modèle avec votre code.
  • Clés statiques (risques de fuite).
  • Aucune garantie de souveraineté géographique.

Enterprise API (Vertex AI)

  • Zéro entraînement sur vos données (contractuel).
  • Authentification sans clé (Keyless ADC).
  • Choix de la région d'exécution et Cloud Logging.

Setup : Authentification Keyless (ADC)

Éliminez le stockage local de secrets via l'usurpation d'identité de compte de service (Service Account Impersonation).

# 1. Purge des clés locales
unset GEMINI_API_KEY && unset GOOGLE_API_KEY

# 2. Login et liaison ADC vers un compte restreint (rôle: aiplatform.user)
gcloud auth login
gcloud auth application-default login \
    --impersonate-service-account=svc-vertex-cli@<PROJECT_ID>.iam.gserviceaccount.com

Ajoutez ensuite dans ~/.gemini/.env : GOOGLE_GENAI_USE_VERTEXAI=true et votre GOOGLE_CLOUD_PROJECT.

Mécanismes de Confinement (Sandboxing)

La délégation de droits d'écriture et d'exécution Shell à un agent autonome requiert une conteneurisation stricte.

  • GEMINI_SANDBOX : Définit le moteur (docker, podman, lxc, ou sandbox-exec pour Seatbelt sur macOS).
  • GEMINI_SANDBOX_IMAGE : Permet d'imposer une image de registre privé approuvée par la sécurité.
  • SANDBOX_MOUNTS : Ex: /var/data:/data:ro pour monter des répertoires hôtes en lecture seule.
  • SEATBELT_PROFILE : (macOS) Utilisez strict-proxied pour bloquer l'écriture disque globale et forcer le trafic réseau via un mandataire.

Science des Données

Intégration native dans Vertex AI Workbench et JupyterLab. Vous pouvez utiliser le magic command suivant directement dans une cellule :

%%geminicli_magic
Create a new notebook named 'data-cleaning'...

Programmation Asynchrone

Le SDK Python gemini-cli-sdk encapsule l'exécution en sous-processus. En utilisant --output-format json, vous recevez des structures de retour typées (incluant latence et consommation tokens).

Automatisation CI/CD & Agent Factory

  • GitHub Actions (run-gemini-cli) : Exécution asynchrone dans les pipelines. L'agent peut réaliser une Pull Request Review automatisée, trier les anomalies (Issue Triage), ou écrire des tests suite à un commentaire (@gemini-cli write unit tests). Le tout est monitoré via OpenTelemetry (Datadog, Dynatrace).
  • L'Usine d'Agents (ADK) : L'outil agents-cli transforme Gemini CLI en plateforme de pilotage. L'agent peut designer, échafauder et déployer d'autres micro-agents métier sur la Google Cloud Agent Platform.

Recommandations RSSI (Sécurité)

  1. Infrastructure as Code : Verrouillez ~/.gemini/settings.json. Imposez "autoAccept": false.
  2. Gouvernance des TOML : Les fichiers de commandes .toml pouvant exécuter du shell (!{...}) doivent être traités comme du code de production (stockage sur un Git d'entreprise et Pull Request obligatoire avant déploiement local).
  3. FinOps : Surveillez la boucle d'interaction ReAct via un tableau de bord cloud pour détecter les boucles infinies de l'agent et prévenir la surconsommation de quota.
Workflow & Optimisation

Automatisation avec Eric Before

Pour dédramatiser l'usage du terminal, voici des méthodologies de travail, des astuces d'optimisation de tokens et des extensions cruciales présentées par Eric Before.

La Boucle "Ask, Clarify, Act, Review"

Le terminal ne doit pas vous faire peur. Il s'agit simplement d'une conversation en 4 étapes itératives.

Astuce : Dompter un modèle "trop impatient"

Gemini CLI est extrêmement "eager" (impatient d'agir et de modifier des fichiers). Lors des phases de questionnement (Ask/Clarify), ajoutez toujours au début de votre prompt :

"Ne construis rien pour le moment, réponds juste à ma question."

Cela l'empêchera de courir faire des suppositions et de casser votre code.

Context Caching Natif

Contrairement à la connexion Gmail standard, vous connecter via API Key active le Context Caching. Le modèle n'aura plus à relire l'intégralité de vos fichiers depuis zéro à chaque requête, économisant drastiquement votre temps et vos jetons.

Le Focus via @

Ne laissez pas l'IA scanner tout le projet si ce n'est pas nécessaire. En tapant @package.json, vous pointez le modèle vers un fichier exact. Combiné à la commande /compress, c'est la clé pour ne jamais saturer la mémoire (Context Window).

Extensions & MCP d'Automatisation

1. Le Serveur MCP "Context 7"

Installer un serveur MCP de documentation (comme Context 7) permet à Gemini d'accéder instantanément aux documentations les plus à jour du marché. Vous n'aurez plus jamais à copier-coller des bouts de documentation technique dans le terminal : Gemini ira les lire de lui-même à chaque fois qu'il bloque sur une nouvelle version d'un framework.

2. L'extension "Critical Think"

Les IA deviennent parfois très (trop) confiantes et peuvent halluciner. Installez l'extension Critical Think via le répertoire d'extensions de Gemini.

En lançant la commande /critical think après une génération de code, vous forcez l'IA à adopter un scepticisme sain. Elle va réexaminer son propre travail, chercher les failles et reconsidérer ses instructions avant que vous ne les validiez.

Personnalité & Modèles à la volée

Changement de moteur : Utilisez /model pour basculer facilement entre Gemini 3 Pro (pour l'architecture complexe) et Gemini 3 Flash (pour des tâches simples et très rapides).

Surcharge du System Prompt : Par défaut, Gemini a une personnalité "très serviable". Si vous préférez un bot ultra-direct qui ne fait pas de phrases de politesse, créez un fichier system.md personnalisé pour écraser les directives de comportement (System Prompt) de base du modèle.