26 points par GN⁺ 2025-11-28 | 1 commentaires | Partager sur WhatsApp
  • Gemini CLI est un assistant IA open source permettant d’utiliser directement les modèles Gemini de Google depuis le terminal, un outil en ligne de commande interactif capable d’effectuer l’écriture de code, le débogage et des tâches d’automatisation via des commandes en langage naturel
  • Environ 30 astuces avancées couvrent des fonctionnalités poussées comme la gestion de contexte persistante (GEMINI.md), les commandes personnalisées, l’extension via des serveurs MCP, la mémoire ou encore la restauration de checkpoints
  • Il propose des fonctions d’optimisation du workflow de développement comme les références à des fichiers et images (@), le mode YOLO (approbation automatique), l’exécution headless, le travail multi-répertoires et l’intégration IDE (VS Code)
  • Il inclut aussi des fonctionnalités récentes centrées sur l’automatisation, l’observabilité et l’extensibilité comme GitHub Action, les extensions (Extensions), la télémétrie et le cache de tokens
  • Gemini CLI évolue d’un simple chat IA vers une plateforme de développement agentique capable d’orchestrer l’ensemble de l’environnement de développement

Aperçu de Gemini CLI

  • Gemini CLI est une interface en ligne de commande pilotée par l’IA permettant d’utiliser directement les modèles Google Gemini depuis le terminal
    • Basé sur Node.js/TypeScript, il fonctionne sur tous les principaux OS
    • Il exécute des tâches en plusieurs étapes, comme la génération de code, le débogage ou la configuration système, à partir d’instructions en langage naturel
  • L’installation se fait avec npm install -g @google/gemini-cli ou npx @google/gemini-cli
  • L’authentification prend en charge la connexion avec un compte Google (gratuite) ou une clé API (payante/entreprise)
    • Un compte gratuit permet environ 60 requêtes par minute et 1 000 par jour
    • Avec une clé API, la protection des données est renforcée et des politiques de conservation des logs s’appliquent
  • Le démarrage se fait avec la commande gemini, avec prise en charge des commandes / (contrôle de session) et ! (exécution shell)
    • En cas de modification du système, le mode sécurisé demande par défaut une confirmation utilisateur (Y/n)

Astuce 1 — Gérer un contexte persistant avec GEMINI.md

  • Stockez les consignes de projet ou les informations de contexte dans un fichier GEMINI.md afin que l’IA réponde toujours avec le même contexte
    • Exemple : style de code, architecture, conventions de fonctions
  • Les fichiers globaux (~/.gemini/GEMINI.md) et spécifiques au projet (.gemini/GEMINI.md) sont fusionnés de manière hiérarchique
  • /memory show permet de voir le contexte actuellement chargé, et /memory refresh de le recharger
  • La commande /init peut générer un modèle de base, avec prise en charge de @include pour charger plusieurs fichiers

Astuce 2 — Créer des commandes slash personnalisées

  • Définissez des commandes personnalisées dans des fichiers TOML pour automatiser les tâches répétitives
    • Exemple : /test:gen → génère des tests Jest à partir des exigences
  • Elles peuvent être enregistrées au niveau global (~/.gemini/commands/) ou par projet (.gemini/commands/)
  • Les commandes fonctionnent à partir de modèles de prompt et peuvent être partagées au sein d’une équipe
  • C’est utile pour la standardisation des workflows, avec un formatage cohérent ou une attribution de rôle (par ex. /review:security)

Astuce 3 — Étendre Gemini avec des serveurs MCP

  • Les serveurs Model Context Protocol (MCP) permettent une intégration avec des systèmes externes
    • Exemple : Figma, Google Docs, Clipboard, base de données interne, etc.
  • Enregistrez un serveur avec la commande gemini mcp add, puis stockez la configuration dans settings.json
  • La commande /mcp affiche la liste des serveurs et outils enregistrés
  • La prise en charge d’OAuth 2.0 permet des connexions API sécurisées

Astuce 4 — Ajouter et rappeler de la mémoire

  • Utilisez /memory add "<text>" pour enregistrer des informations importantes dans la mémoire longue durée
    • Exemple : « Le port RabbitMQ est 5673 »
  • /memory show affiche toute la mémoire et /memory refresh la recharge
  • Pratique pour conserver des journaux de décision ou des préférences personnelles (par ex. ton, nom, etc.)

Astuce 5 — Checkpoints et restauration avec /restore

  • Un snapshot est créé automatiquement avant les modifications de fichiers, et /restore permet de revenir à un état précédent
  • Activez la fonction avec l’option --checkpointing ou dans le fichier de configuration
  • /restore list affiche la liste des checkpoints, et /restore <id> en restaure un
  • Utilisé en parallèle de Git, cela sert de filet de sécurité pour le travail de l’IA

Astuce 6 — Lire Google Docs et Sheets

  • Si le serveur MCP Workspace est configuré, Gemini peut lire directement des liens Google Docs/Sheets et les résumer
  • Une authentification OAuth est nécessaire, avec accès via des commandes comme /read_google_doc
  • Les documents, feuilles et fichiers Drive peuvent être référencés par lien pour injecter du contexte sans copier-coller

Astuce 7 — Référencer des fichiers et images avec la syntaxe @

  • @chemin_du_fichier permet de joindre directement du code, des documents ou des images dans le prompt
    • Exemple : Explain this code: @./src/main.js
  • Les règles de .gitignore et .geminiignore sont automatiquement prises en compte
  • La reconnaissance d’images (y compris OCR) et la comparaison de plusieurs fichiers sont prises en charge

Astuce 8 — Créer des outils à la volée

  • Si nécessaire, Gemini peut générer directement un script temporaire ou un serveur MCP
    • Exemple : parseur JSON, analyseur de logs
  • Le code généré peut être relu via un diff avant approbation
  • Les scripts utiles peuvent ensuite être promus en commandes personnalisées

Astuce 9 — Résolution de problèmes système et configuration

  • L’outil peut aussi être utilisé en dehors d’un projet et jouer le rôle d’assistant de gestion de l’environnement de développement
    • Exemple : modifier .bashrc, analyser des logs d’erreur, automatiser l’installation de Docker
  • Une demande d’approbation est toujours effectuée avant l’exécution des commandes, ce qui permet des ajustements système en sécurité

Astuce 10 — Mode YOLO (approbation automatique)

  • --yolo ou Ctrl+Y approuve automatiquement l’exécution de tous les outils
  • C’est utile pour accélérer les tâches répétitives, mais cela comporte des risques
  • Il est possible de configurer une liste blanche pour n’autoriser automatiquement que certaines commandes

Astuce 11 — Mode headless et script

  • gemini -p "prompt" permet une exécution non interactive
  • GEMINI_SYSTEM_MD permet de remplacer le prompt système
  • Sortie JSON (--format=json) et fichier de résumé de session (--session-summary) sont pris en charge
  • Bien adapté à l’intégration CI/CD et aux scripts d’automatisation

Astuce 12 — Sauvegarder et reprendre des sessions de chat

  • Sauvegardez une session avec /chat save <name> et reprenez-la avec /chat resume <name>
  • /chat list affiche la liste et /chat share permet le partage
  • Très utile pour les longues sessions de débogage ou le travail parallèle sur plusieurs projets

Astuce 13 — Workspace multi-répertoires

  • --include-directories ou le fichier de configuration permet d’unifier plusieurs dossiers dans un même espace de travail
  • /directory show affiche les dossiers actuellement inclus
  • Cela prend en charge les environnements polyrepo, comme la modification simultanée du frontend et du backend

Astuce 14 — Rangement de fichiers piloté par l’IA

  • Les fichiers d’un répertoire peuvent être classés et déplacés par type
    • Exemple : images → Images, PDF → Documents
  • Il est également possible de renommer automatiquement des images en fonction de leur contenu
  • Il est recommandé de vérifier l’aperçu des commandes avant exécution pour des raisons de sécurité

Astuce 15 — Conserver le contexte via la compression des conversations

  • La commande /compress résume les longues conversations pour libérer de l’espace de contexte
  • Elle permet de poursuivre la session en ne gardant que les informations essentielles
  • Un seuil de compression automatique peut être configuré

Astuce 16 — Exécuter des commandes shell avec !

  • !command exécute directement une commande terminal
  • En entrant seulement !, on passe en mode shell, et un nouveau ! permet d’en sortir
  • Les échanges avec l’IA et les commandes système sont ainsi unifiés dans une seule interface

Astuce 17 — Utiliser tous les outils CLI comme outils Gemini

  • Toutes les commandes du $PATH peuvent être appelées par l’IA
    • Exemple : convert, docker, ffmpeg, git, etc.
  • Selon l’environnement, il est recommandé de restreindre le PATH ou de configurer une liste blanche

Astuce 18 — Tirer parti des entrées multimodales

  • Des images, PDF ou fichiers audio peuvent être joints avec @ pour être analysés
    • Exemple : description d’une capture d’écran UI, analyse d’une image d’erreur, traitement OCR
  • Pris en charge pour la génération de code et l’extraction de données à partir de supports visuels

Astuce 19 — Contrôle du $PATH et de l’accès aux outils

  • L’exécution avec un PATH restreint permet de renforcer la stabilité et la sécurité
  • excludeTools dans settings.json permet de bloquer les commandes à risque
  • L’option --sandbox permet l’exécution dans un environnement isolé Docker

Astuce 20 — Cache de tokens et suivi de l’usage

  • Avec une clé API ou une authentification Vertex, la réutilisation des tokens réduit les coûts
  • La commande /stats permet de consulter le taux de hit du cache et l’usage des tokens
  • --session-summary permet de sauvegarder un rapport JSON par session

Astuce 21 — Copier dans le presse-papiers avec /copy

  • Copie immédiatement la dernière sortie (comme du code) dans le presse-papiers
  • Pris en charge sur macOS (pbcopy), Windows (clip) et Linux (xclip)

Astuce 22 — Contrôler le raccourci Ctrl+C

  • Une pression interrompt la tâche en cours, deux pressions ferment le CLI
  • En mode shell, on peut aussi sortir avec Ctrl+C ou Esc

Astuce 23 — Paramètres utilisateur via settings.json

  • Permet des réglages détaillés comme le thème, le sandbox, l’approbation automatique ou le mode Vim
  • La commande /settings prend en charge l’édition interactive
  • Les paramètres globaux (~/.gemini/) et spécifiques au projet sont fusionnés

Astuce 24 — Intégration VS Code

  • L’extension VS Code (Companion Extension) assure la détection automatique des fichiers, du curseur et de la sélection
  • Lors de propositions de modification de code, l’affichage diff de VS Code s’ouvre automatiquement
  • Gestion via /ide install, /ide enable, /ide status

Astuce 25 — Automatisation avec GitHub Action

  • La Gemini CLI GitHub Action automatise le tri des issues et la revue de PR
  • Une mention @gemini-cli permet par exemple de demander la génération de code de test
  • La commande /setup-github peut générer automatiquement le fichier de workflow

Astuce 26 — Télémétrie (Observability)

  • Basée sur OpenTelemetry, elle permet de collecter les métriques, logs et traces de session
  • Activez-la avec le paramètre "telemetry.enabled": true ou le flag --telemetry
  • L’envoi est possible vers divers backends comme des fichiers locaux, GCP ou Prometheus

Astuce 27 — Suivre la roadmap

  • La roadmap publique de Gemini CLI sur GitHub permet de voir les fonctionnalités à venir
    • Exemple : agents en arrière-plan, extension des modèles, améliorations UI
  • Il est possible de participer via des retours de la communauté et des suggestions de fonctionnalités

Astuce 28 — Extensions

  • gemini extensions install <URL> permet d’intégrer des services externes
    • Exemple : Cloud Run, BigQuery, Figma, Stripe, etc.
  • Les extensions reposent sur une structure modulaire ajoutant outils MCP, commandes et contexte
  • La commande /extensions affiche la liste des extensions actives

Fonction supplémentaire — Corgi Mode 🐕

  • La commande /corgi lance une animation de corgi dans le terminal
  • Il s’agit d’un simple easter egg offrant une petite pause pendant l’utilisation du CLI

Conclusion

  • Gemini CLI est une interface de développement pilotée par l’IA qui couvre l’écriture de code, l’administration système, l’automatisation et la collaboration
  • Avec GEMINI.md, MCP, les extensions et l’intégration IDE, il apporte contexte persistant et extensibilité des outils
  • Grâce à l’écosystème open source et à des mises à jour rapides, il s’impose progressivement comme une plateforme IA centrale du workflow développeur

1 commentaires

 
GN⁺ 2025-11-28
Avis Hacker News
  • Je ne fais aucun de ces réglages
    parce qu’ils deviennent obsolètes trop vite et que 80 % ne fonctionnent pas correctement
    Je ne vois pas l’intérêt d’écrire un serveur MCP alors qu’on ne sait même pas si le LLM l’appellera de façon fiable
    Ma règle est simple : j’écris moi-même de la documentation (modèles, check-lists, etc.) pour mon propre usage, puis je laisse à l’IA une chance d’essayer
    Si elle n’y arrive pas du premier coup, je modifie la doc ou je m’en charge moi-même

    • Voir le LLM comme un générateur statistique de documents m’a aidé
      Au final, son utilité dépend des données d’entraînement et de l’évolution du modèle, et je pense qu’il faut le traiter comme une forme de programmation par contraintes sans grammaire formelle
      Vu la subjectivité du langage naturel, le mieux reste une itération rapide, en affinant progressivement les énoncés de contrainte
      Par exemple, j’ai déjà obtenu un script bash entièrement automatisé après 4 itérations avec Gemini
      Voir aussi : Constraint programming
    • Récemment, le fait que les agents puissent exécuter eux-mêmes le cycle build-test-correction a été d’une grande aide
      Je peux leur confier des tâches de niveau développeur junior pendant que je fais autre chose
    • L’approche qui consiste à traiter un agent IA comme un développeur junior en début de carrière fonctionne bien
      S’il échoue d’un coup, j’améliore la documentation (fichier .md) et je réessaie
      J’utilise peu MCP à cause des risques de sécurité, mais cette boucle d’itération est assez efficace
      À l’inverse, dire « si ça ne marche pas du premier coup, je le fais moi-même », c’est comme licencier un junior immédiatement
    • J’ai l’impression qu’en ce moment, le développement logiciel se dirige vers un nouveau plateau
      Nous n’y sommes pas encore, et les compétences qu’on accumule aujourd’hui ressemblent à quelque chose qu’on construit sur une pente
    • Je trouve les deux approches utiles
      1. partir d’une nouvelle session pour éviter la pollution du contexte, et
      2. connecter divers outils pour faciliter le travail (voir le billet récent d’Anthropic)
        Les méthodes actuelles d’évaluation des prompts ne sont pas fiables, donc je construis moi-même une configuration agentique pour améliorer cela
        Hier, j’ai ajouté une fonction de voyage dans le temps des sessions basée sur Dagger, et aujourd’hui je compte ajouter des fonctions de fork, clone et registre
  • Gemini CLI est encore faible pour les tâches de programmation complexes
    à cause d’une boucle ReAct simple et de capacités d’appel d’outils limitées
    Cela dit, le projet est activement développé en open source, donc son potentiel est important
    Avec une fenêtre de contexte de 1M (bientôt 2M) et un quota gratuit généreux, je pense qu’il faut en abuser à fond (ABUSE IT)
    Je m’en sers comme outil d’orchestration TUI/CLI, et je l’ai aussi trouvé assez utile pour évaluer du code généré par d’autres outils
    Récemment, je l’ai relié à Homebrew et à MCP, ainsi qu’à un Knowledge Manager basé sur un LLM local (Nowledge Mem)
    Fait amusant, j’ai aussi vu des cas où Gemini CLI était utilisé comme SubAgent pour éviter de polluer le contexte principal
    Tweet associé

    • Gemini CLI ressemble vraiment à une bête sauvage
      Même si on lui dit « ne modifie pas le code, fais seulement des suggestions », il modifie quand même les fichiers
      Pro 3 est intelligent, mais son suivi des consignes reste instable
    • J’ai rapidement testé Gemini 3 Pro, et il a du mal même avec des tâches de codage élémentaires
      J’ai essayé via Antigravity, mais avec le quota limité, il était difficile de pousser les tests plus loin
      Pour des impressions plus détaillées, voir ce billet
  • Addy Osmani est un ingénieur logiciel irlandais en charge de Google Chrome et de Gemini, avec 25 ans d’expérience
    C’est un vétéran passionné par l’amélioration des performances web et les outils de développement assistés par IA, et il a publié plusieurs ouvrages, dont Learning JavaScript Design Patterns

    • Il a remporté le concours Irish Young Scientist deux ans avant Patrick Collison
      Lien du concours
    • Il jouit d’une très forte réputation dans la communauté des performances web
    • On dit qu’il a publié 11 livres au cours des 5 dernières années ; je me demande s’il utilise l’écriture assistée par IA
  • J’aimerais que les agents de codage agnostiques vis-à-vis des LLM deviennent la norme
    Au lieu de réinventer la roue chacun de son côté comme Codex ou Gemini CLI, ce serait bien de pouvoir remplacer le fournisseur de LLM comme un plugin
    Aujourd’hui, Claude Code est le meilleur, mais Anthropic ne semble pas aller dans cette direction
    Au final, on va sans doute devoir attendre la prochaine génération d’agents de codage open source

    • Il existe déjà un outil de ce genre : Aider (aider.chat)
      Mais ces CLI ressemblent davantage à une interface pour un modèle par abonnement qu’à un véritable outil
      Les modèles récents consomment trop de tokens, donc un abonnement mensuel est plus réaliste qu’une facturation API
    • Opencode (créé par SST) est un bon exemple de cette vision
      Je l’ai utilisé ces derniers jours et j’en ai été plutôt satisfait
      Lien GitHub
      Il existe aussi diverses alternatives comme Crush, Aider, Amp Code, Emacs+gptel, Editor Code Assistant, etc.
      Cela dit, la coévolution (co-design) entre les LLM et les agents de codage est importante, donc une séparation complète reste irréaliste pour l’instant
    • Je pense justement que si Claude Code est le meilleur, c’est parce qu’il n’est pas agnostique
    • Cursor est aussi une bonne alternative
      Ironiquement, il a maintenant introduit son propre LLM
      Présentation de Cursor Composer
    • Parmi les outils indépendants du modèle, je recommande Roo Code ou son fork Kilo
  • J’utilise Gemini CLI depuis plusieurs mois
    J’ai un abonnement gratuit via mon entreprise, donc j’ai continué à m’en servir
    Il est censé reconnaître les fichiers GEMINI.md, mais en pratique il les ignore souvent
    Malgré tout, des astuces comme la Tip 12 et la Tip 16 étaient utiles
    Le problème des hallucinations de l’IA reste entier, mais c’est la première fois qu’une IA m’a paru vraiment « amusante » à utiliser
    Surtout quand je l’ai laissée déboguer de façon autonome un cluster K8s de PoC : la voir récupérer les logs et trouver les erreurs était vraiment impressionnant
    Quand elle devient trop stupide, je tape /quit et je reprends la main, mais je continue à l’utiliser avec plaisir

    • Voir Gemini CLI déboguer un cluster K8s en direct, c’est vraiment surréaliste
      Je viens justement de monter un cluster RKE2 et j’ai très envie d’essayer
  • J’aime beaucoup l’IA
    J’ai l’impression que c’est un outil indispensable, comme Internet ou l’iPhone, qui me rend plus efficace en tant qu’humain
    En revanche, je souffre d’une vraie fatigue des tutoriels sur « comment utiliser l’IA »
    La plupart sont de mauvaise qualité, même si cet article s’en sort plutôt mieux que la moyenne
    Ça me rappelle les développeurs JS qui présentent un nouveau framework chaque semaine

    • En ce moment, les articles du genre « voici comment utiliser un LLM » sont vraiment lassants
      Peu importe qui les écrit, que ce soit sincère ou juste pour générer de l’engagement, ça ne m’intéresse plus
  • Honnêtement, ce genre de configuration complexe est excessif
    Moi, je m’en sors très bien avec des prompts quasi criés à l’IA
    Avec LazyVim et quelques outils (git, ask, ripgrep), je reste déjà très productif
    Gemini 3 en particulier est très utile grâce à sa forte densité de tokens et à son grand contexte
    Quand le contexte devient trop lourd, je lui fais écrire un résumé dans README.MD puis je lance un nouvel agent
    Lien vers l’outil ask

    • J’utilise une méthode similaire, et Gemini 3 est de loin le meilleur
      Je n’arrivais pas à être productif avec d’autres modèles, alors que maintenant, même des tâches complexes réussissent du premier coup dans 80 % des cas
  • Le contraste entre le scripting manuel et les workflows assistés par LLM est intéressant
    Si les contraintes ne sont pas claires, les deux échouent ; mais si elles le sont, les LLM peuvent fonctionner de façon étonnamment fiable

  • Le problème actuel de l’IA / du codage agentique / du vibe coding, c’est la vitesse d’évolution trop rapide
    Les bonnes pratiques deviennent obsolètes avant même d’avoir le temps de s’installer
    Les langages et frameworks changeaient, mais la manière de découper les problèmes et de comprendre une codebase restait relativement stable ;
    aujourd’hui, je ne sais plus où se situera ce point d’équilibre

  • Personnellement, je trouve que Gemini CLI n’est pas terrible
    S’il faut utiliser quelque chose, je recommanderais Opencode
    Google devrait aussi reconstruire son CLI depuis zéro, comme Codex

    • Ça dépend des gens, mais dans mon cas Gemini CLI est rapide et stable, donc c’est mon outil principal
    • Opencode a lui aussi récemment entièrement remplacé son TUI
      À noter que Gemini 3 ne fonctionne actuellement pas dans Opencode via Copilot
      Lien vers l’issue
    • Pour utiliser Opencode, il est indiqué qu’il faut un émulateur de terminal spécifique (WezTerm, Alacritty, Ghostty, Kitty)
      Je me demandais pourquoi une telle contrainte était nécessaire pour un simple TUI
      D’après la documentation officielle, Gemini n’est pas mentionné directement,
      et semble être proposé via Google Vertex AI
      Il est peut-être possible de connecter Gemini via un abonnement Google Workspace
    • Je me demande ce qu’est devenu Codex — ils l’ont vraiment reconstruit ?