doc-locale/fr-fr/user/gitlab_duo_cli/_index.md
{{< details >}}
{{< /details >}}
{{< collapsible title="Informations sur le modèle" >}}
{{< /collapsible >}}
{{< history >}}
glab 1.87.0, lors de la release GitLab 18.9./exit dans GitLab Duo CLI 8.88.0, lors de la release GitLab 19.0./doctor dans GitLab Duo CLI 8.94.0, lors de la release GitLab 19.0./skills dans GitLab Duo CLI 8.81.0, lors de la release GitLab 19.0./mcp dans GitLab Duo CLI 8.95.0, lors de la release GitLab 19.0.AI_AGENT dans GitLab Duo CLI 8.95.0, lors de la release GitLab 19.0.{{< /history >}}
GitLab Duo CLI est un outil d'interface en ligne de commande qui vous permet d'utiliser GitLab Duo Agentic Chat depuis votre terminal. Compatible avec tous les systèmes d'exploitation et éditeurs, utilisez l'ILC pour poser des questions complexes sur votre base de code et effectuer des actions de manière autonome en votre nom.
L'ILC GitLab Duo peut vous aider à :
[!note] L'ILC GitLab Duo est désormais en disponibilité générale. Mettez à jour vers l'ILC GitLab Duo 9.0.0 ou une version ultérieure pour bénéficier de l'expérience de disponibilité générale complète.
L'ILC GitLab Duo propose deux modes :
Il prend également en charge les instructions personnalisées définies pour la plateforme GitLab Duo Agent, notamment les fichiers chat-rules.md, AGENTS.md et SKILL.md.
[!note] Si vous utilisez GitLab 18.11 à 19.1, vous pouvez utiliser la dernière version de l'ILC GitLab Duo en activant les fonctionnalités bêta et expérimentales.
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
Par défaut, l'accès à l'ILC GitLab Duo est activé.
Sur GitLab Self-Managed et GitLab Dedicated, vous pouvez activer ou désactiver l'accès à l'ILC GitLab Duo pour une instance.
Prérequis :
Vous pouvez utiliser l'ILC GitLab Duo via l'ILC GitLab (glab). Avec l'ILC GitLab, vous accédez aux autres fonctionnalités de GitLab et vous n'avez besoin de vous authentifier qu'une seule fois, à l'aide d'OAuth ou d'un jeton d'accès personnel.
Vous pouvez également installer et utiliser l'ILC GitLab Duo (duo) en tant qu'outil IA autonome, en vous authentifiant séparément avec un jeton d'accès personnel.
Les deux configurations prennent en charge les modes interactif et headless, ainsi que toutes les options, commandes et fonctionnalités de l'ILC GitLab Duo.
Prérequis :
Pour configurer l'ILC GitLab Duo pour une utilisation via l'ILC GitLab :
Exécutez la commande glab pour l'ILC GitLab Duo :
glab duo cli
Suivez les instructions pour installer le binaire de l'ILC GitLab Duo.
L'ILC GitLab gère automatiquement l'authentification, vous pouvez donc commencer à utiliser l'ILC GitLab Duo immédiatement.
Pour utiliser l'ILC GitLab Duo en tant qu'outil autonome, installez-le puis authentifiez-vous.
Pour installer l'ILC GitLab Duo en tant que binaire compilé, téléchargez et exécutez le script d'installation.
Sur macOS et Linux :
bash <(curl --fail --silent --show-error --location "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.sh")
Sur Windows :
irm "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.ps1" | iex
[!note] Si
glabest déjà installé et authentifié sur votre système lors de la première exécution deduo,duoutilise automatiquementglabcomme assistant d'identification. Vous n'avez pas besoin de vous authentifier séparément. Cela nécessiteglab1.85.2 ou version ultérieure etduo8.68.0 ou version ultérieure.Si vous avez authentifié
duoavant que cette fonctionnalité soit disponible et que vous souhaitez utiliserglabcomme assistant d'identification à la place, supprimez vos paramètres d'authentification de~/.gitlab/storage.json.
Prérequis :
api.Pour vous authentifier :
duo dans votre terminal. La première fois que vous exécutez l'ILC GitLab Duo, un écran de configuration s'affiche.https://gitlab.com.duo dans votre terminal.Pour modifier la configuration après la configuration initiale, utilisez duo config edit.
Prérequis :
api.Pour vous authentifier avec des variables d'environnement :
Définissez GITLAB_TOKEN ou GITLAB_OAUTH_TOKEN sur votre jeton d'accès personnel.
export GITLAB_TOKEN="<your-personal-access-token>"
Facultatif. Définissez GITLAB_BASE_URL ou GITLAB_URL sur l'URL de votre instance GitLab personnalisée, par exemple https://gitlab.example.com. La valeur par défaut est https://gitlab.com.
export GITLAB_BASE_URL="<your-instance-url>"
Cette méthode est utile pour le mode headless, les pipelines CI/CD et les workflows scriptés où l'authentification interactive n'est pas possible.
Prérequis :
Pour utiliser l'ILC GitLab Duo en mode interactif :
En fonction de votre configuration, saisissez la commande pour démarrer le mode interactif :
{{< tabs >}}
{{< tab title="glab" >}}
glab duo cli
{{< /tab >}}
{{< tab title="duo" >}}
duo
{{< /tab >}}
{{< /tabs >}}
L'invite > s'affiche dans votre fenêtre de terminal. Après l'invite, saisissez votre question ou votre demande, puis appuyez sur <kbd>Entrée</kbd>.
Par exemple :
What is this repository about?
Which issues need my attention?
Help me implement issue 15.
The pipelines in MR 23 are failing. Please help me fix them.
Pour annuler une réponse pendant que l'ILC GitLab Duo travaille, appuyez sur <kbd>Échap</kbd>. L'ILC GitLab Duo arrête l'opération en cours et revient à l'invite.
Utilisez la touche <kbd>↑</kbd> pour afficher l'historique de vos invites, ou <kbd>Ctrl</kbd>+<kbd>R</kbd> pour y effectuer une recherche.
En mode interactif, vous pouvez basculer l'ILC GitLab Duo entre deux modes pendant votre travail :
| Mode | Autorisations | Fonctionnement |
|---|---|---|
| Mode build (par défaut) | Lecture-écriture | GitLab Duo peut exécuter des tâches et apporter des modifications à votre projet. |
| Mode plan | Lecture seule | GitLab Duo peut analyser votre projet et créer des plans sans apporter de modifications. |
Par exemple, commencez par discuter d'un problème avec GitLab Duo en mode plan. Lorsque vous êtes prêt, passez en mode build et demandez à GitLab Duo d'implémenter le plan.
L'ILC GitLab Duo affiche le mode actuel sous l'invite >. Pour basculer entre les modes, appuyez sur <kbd>Tab</kbd>.
En mode interactif, utilisez les commandes slash pour configurer l'ILC GitLab Duo et effectuer des actions. Saisissez une commande slash à l'invite et appuyez sur <kbd>Entrée</kbd>.
Les commandes slash suivantes sont disponibles :
| Commande | Description |
|---|---|
/copy | Copier la dernière réponse de GitLab Duo dans le presse-papiers. |
/doctor | Afficher les diagnostics de l'environnement de l'ILC GitLab Duo. |
/exit | Quitter l'ILC GitLab Duo. |
/feedback | Soumettre un rapport de bug ou une demande de fonctionnalité. |
/help | Afficher la liste des commandes slash disponibles. |
/mcp | Afficher les serveurs MCP configurés et leur statut. |
/model | Changer le modèle d'IA pour la session en cours. |
/new | Démarrer une nouvelle session de chat. |
/sessions | Parcourir, rechercher et changer de session. |
/settings | Ouvrir le panneau de paramètres. |
/skills | Lister les Agent Skills disponibles dans le projet actuel. |
Vous pouvez également créer vos propres commandes slash. Pour plus d'informations, voir commandes slash personnalisées.
Pour modifier un paramètre :
/settings et appuyez sur <kbd>Entrée</kbd>.Les modifications persistent d'une session à l'autre.
Les paramètres suivants sont disponibles :
| Paramètre | Description |
|---|---|
| Telemetry | Envoyer des données d'utilisation anonymes pour améliorer GitLab Duo. |
| Enable global skills | (Expérimental) Découvrir les Agent Skills au niveau utilisateur depuis ~/.agents/skills/ et ~/.gitlab/duo/skills/. Un redémarrage est requis pour que les modifications prennent effet. |
| Notifications | Contrôler les notifications système (auto ou disabled). |
L'ILC GitLab Duo peut envoyer une notification système lorsqu'une session nécessite votre attention (par exemple, lorsqu'elle termine une tâche ou nécessite l'approbation d'un outil) pendant que la fenêtre du terminal n'est pas au premier plan.
Les notifications sont contrôlées par le paramètre Notifications dans le panneau de paramètres :
auto (par défaut) : envoyer une notification système lorsque le terminal n'est pas au premier plan.disabled : ne jamais envoyer de notifications système.Lorsque GitLab Duo a besoin d'utiliser un outil, il vous invite à l'approuver avant de commencer. Par exemple, lorsqu'il a besoin de lire un fichier ou d'exécuter une commande.
Vos options sont :
[!note] Pour utiliser l'option Approuver pour la session, votre administrateur doit l'activer pour votre groupe ou votre instance. Pour plus d'informations, voir les approbations d'outils.
[!caution] Utilisez le mode headless avec prudence et dans un environnement sandbox contrôlé.
Pour exécuter un workflow en mode non interactif, utilisez la commande correspondant à votre configuration :
{{< tabs >}}
{{< tab title="glab" >}}
Utilisez glab duo cli run :
glab duo cli run --goal "Your goal or prompt here"
Par exemple, vous pouvez exécuter une commande ESLint et rediriger les erreurs vers l'ILC GitLab Duo pour les résoudre :
glab duo cli run --goal "Fix these errors: $eslint_output"
{{< /tab >}}
{{< tab title="duo" >}}
Utilisez duo run :
duo run --goal "Your goal or prompt here"
Par exemple, vous pouvez exécuter une commande ESLint et rediriger les erreurs vers l'ILC GitLab Duo pour les résoudre :
duo run --goal "Fix these errors: $eslint_output"
{{< /tab >}}
{{< /tabs >}}
Lorsque vous utilisez le mode headless, l'ILC GitLab Duo :
run.Vous pouvez sélectionner un modèle pour le mode interactif ou le mode headless.
Le modèle que vous sélectionnez persiste d'une session à l'autre, et vous pouvez changer de modèle en cours de conversation sans perdre le contexte.
Prérequis :
Pour sélectionner un modèle en mode interactif :
/model et appuyez sur <kbd>Entrée</kbd>.Le modèle que vous sélectionnez ne persiste pas d'une session à l'autre.
Prérequis :
Pour sélectionner un modèle en mode headless :
Trouvez le gitlab_identifier pour le modèle.
Lorsque vous exécutez l'ILC GitLab Duo, définissez l'option --model ou la variable d'environnement GITLAB_DUO_MODEL sur la valeur gitlab_identifier.
{{< tabs >}}
{{< tab title="glab" >}}
Utilisez l'option --model :
glab duo cli --model <gitlab_identifier_for_the_model>
Utilisez la variable d'environnement GITLAB_DUO_MODEL :
GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> glab duo cli
Par exemple, pour utiliser GPT-5-Codex - OpenAI :
glab duo cli --model gpt_5_codex
GITLAB_DUO_MODEL=gpt_5_codex glab duo cli
{{< /tab >}}
{{< tab title="duo" >}}
Utilisez l'option --model :
duo --model <gitlab_identifier_for_the_model>
Utilisez la variable d'environnement GITLAB_DUO_MODEL :
GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> duo
Par exemple, pour utiliser GPT-5-Codex - OpenAI :
duo --model gpt_5_codex
GITLAB_DUO_MODEL=gpt_5_codex duo
{{< /tab >}}
{{< /tabs >}}
Les sessions GitLab Duo Chat stockent l'historique de vos conversations et les données de workflow, et sont partagées entre l'ILC GitLab Duo, l'interface GitLab et les extensions d'éditeur.
Par exemple, vous pouvez démarrer une conversation dans votre navigateur et la poursuivre dans votre terminal.
Pour parcourir et passer à une session :
/sessions et appuyez sur <kbd>Entrée</kbd>.Pour passer à une session en mode headless, utilisez l'option --existing-session-id.
Pour connecter l'ILC GitLab Duo à des serveurs MCP locaux ou distants, utilisez la même configuration MCP que les extensions GitLab IDE. Pour obtenir des instructions, voir configurer les serveurs MCP.
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
Utilisez des hooks pour exécuter des commandes personnalisées à des points spécifiques du cycle de vie de l'ILC GitLab Duo.
Par exemple, vous pouvez injecter du contexte supplémentaire dans chaque nouvelle session de chat en exécutant un script qui collecte des informations sur votre environnement.
L'ILC GitLab Duo prend en charge les hooks à deux niveaux :
Lorsque des fichiers hooks.json existent à la fois au niveau utilisateur et au niveau projet, l'ILC fusionne les hooks et exécute en premier ceux du niveau utilisateur.
[!note] Pour des raisons de sécurité, les variables d'environnement sensibles (
GITLAB_TOKEN,GITLAB_OAUTH_TOKEN,CI_JOB_TOKEN) sont exclues des processus de hook.
Lorsqu'un hook s'exécute, l'ILC GitLab Duo :
Envoie un objet JSON à l'entrée standard de la commande avec les métadonnées de session :
{
"session_id": "abc-123",
"cwd": "/path/to/project",
"transcript_path": "",
"hook_event_name": "SessionStart",
"source": "startup"
}
Définit les variables d'environnement DUO_SESSION_ID et DUO_PROJECT_DIR pour le processus de hook.
Collecte la sortie standard de la commande comme contexte supplémentaire pour la session.
Le hook peut renvoyer du texte brut sur la sortie standard, ou un objet JSON :
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "Your context string here"
}
}
Si le hook se termine avec un statut non nul ou expire, il est enregistré comme avertissement mais ne bloque pas le démarrage de la session.
L'ILC GitLab Duo prend en charge l'événement SessionStart, qui s'exécute lorsqu'une nouvelle session démarre ou qu'une session existante reprend.
Pour créer un hook :
Créez un fichier hooks.json :
~/.gitlab/duo/hooks.json.%APPDATA%\GitLab\duo\hooks.json.<project>/.gitlab/duo/hooks.json.Définissez vos hooks dans le fichier.
Créez un groupe de correspondance pour chaque source d'événement SessionStart devant déclencher le hook (startup ou resume).
Chaque groupe de correspondance a une valeur regex matcher facultative et un tableau de hooks de commande :
| Champ | Description |
|---|---|
matcher | Facultatif. Regex testée par rapport à la source d'événement (startup ou resume pour SessionStart). Omettez pour correspondre à tous. |
hooks[].type | Doit être "command". |
hooks[].command | Une commande shell à exécuter. |
hooks[].timeout | Facultatif. Délai d'expiration en secondes. Par défaut : 30. |
Par exemple :
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "cat ~/.my-coding-preferences.md",
"timeout": 10
}
]
}
]
}
}
Si vous avez des hooks au niveau projet, activez-les lorsque vous démarrez l'ILC GitLab Duo :
{{< tabs >}}
{{< tab title="glab" >}}
glab duo cli --enable-project-hooks
{{< /tab >}}
{{< tab title="duo" >}}
duo --enable-project-hooks
{{< /tab >}}
{{< /tabs >}}
Vous pouvez également définir la variable d'environnement :
export GITLAB_ENABLE_PROJECT_HOOKS=true
{{< history >}}
{{< /history >}}
Créez des commandes slash personnalisées pour les invites que vous utilisez fréquemment.
L'ILC GitLab Duo prend en charge les commandes slash personnalisées à deux niveaux :
Si une commande au niveau utilisateur et une commande au niveau projet partagent le même nom, la commande au niveau projet est prioritaire. Les commandes slash personnalisées ne peuvent pas remplacer les commandes slash intégrées ni les commandes slash d'Agent Skills.
Pour créer une commande slash personnalisée, vous créez un fichier Markdown.
Le nom du fichier est le nom de la commande, et le contenu du fichier est l'invite.
Par exemple, un fichier nommé daily.md crée la commande /daily :
Créez un répertoire commands :
<project>/.agents/commands/.~/.gitlab/duo/commands/.%APPDATA%\GitLab\duo\commands\.GLAB_CONFIG_DIR ou XDG_CONFIG_HOME, utilisez $GLAB_CONFIG_DIR/commands/ ou $XDG_CONFIG_HOME/gitlab/duo/commands/. Si les deux sont définis, GLAB_CONFIG_DIR est prioritaire.~/.agents/commands/.%USERPROFILE%\.agents\commands\.Dans le répertoire, créez un fichier Markdown. Utilisez le nom de la commande comme nom de fichier. Les noms de commande doivent commencer par une lettre ou un chiffre, et ne peuvent contenir que des lettres, des chiffres, des tirets et des underscores.
Ajoutez l'invite dans le fichier.
Facultatif. Ajoutez un champ description dans le front matter YAML en haut du fichier. La description s'affiche à côté de la commande dans le menu des commandes slash.
Par exemple, une commande /daily définie dans daily.md :
---
description: Prepare a daily report
---
Use `glab todo list` to fetch my open TODO items. Give me a concise morning report ranked by priority.
Redémarrez l'ILC GitLab Duo. L'ILC détecte les commandes slash personnalisées au démarrage.
En mode interactif, saisissez la commande slash à l'invite et appuyez sur <kbd>Entrée</kbd>. L'ILC GitLab Duo envoie le contenu du fichier comme invite.
Tout texte que vous saisissez après le nom de la commande est ajouté à la fin de l'invite.
Utilisez ceci pour personnaliser ce que fait la commande slash personnalisée.
Par exemple, /daily prioritize my milestone deliverables.
Utilisez ces options, commandes et variables d'environnement lorsque vous démarrez ou exécutez l'ILC GitLab Duo.
Pour plus de détails et la liste la plus à jour, consultez la référence de l'ILC GitLab Duo.
L'ILC GitLab Duo prend en charge les options suivantes :
-C, --cwd <path> : modifier le répertoire de travail.-h, --help : afficher l'aide pour l'ILC GitLab Duo ou une commande spécifique. Par exemple, duo --help ou duo run --help.--log-level <level> : définir le niveau de journalisation (debug, info, warn, error).-v, --version : afficher les informations de version.--enable-global-skills : (Expérimental) Activer les Agent Skills au niveau utilisateur.--enable-project-hooks : (Expérimental) Activer le chargement des hooks au niveau projet.--model <model> : sélectionner le modèle d'IA à utiliser pour la session.Options supplémentaires pour le mode headless :
--ai-context-items <contextItems> : tableau JSON encodé d'éléments de contexte supplémentaires pour référence.--existing-session-id <sessionId> : identifiant d'une session existante à reprendre.--gitlab-auth-token <token> : jeton d'authentification pour une instance GitLab.--gitlab-base-url <url> : URL de base d'une instance GitLab (par défaut : https://gitlab.com).Les commandes suivantes sont disponibles pour chaque configuration :
{{< tabs >}}
{{< tab title="glab" >}}
glab duo cli : démarrer le mode interactif.glab duo cli log : afficher et gérer les journaux.
glab duo cli log last : ouvrir le dernier fichier journal.glab duo cli log list : lister tous les fichiers journaux.glab duo cli log tail <args...> : afficher la fin du dernier fichier journal. Prend en charge les arguments tail standard.glab duo cli log clear : supprimer tous les fichiers journaux existants.glab duo cli run : démarrer le mode headless.{{< /tab >}}
{{< tab title="duo" >}}
duo : démarrer le mode interactif.duo config : gérer la configuration et les paramètres d'authentification.duo log : afficher et gérer les journaux.
duo log last : ouvrir le dernier fichier journal.duo log list : lister tous les fichiers journaux.duo log tail <args...> : afficher la fin du dernier fichier journal. Prend en charge les arguments tail standard.duo log clear : supprimer tous les fichiers journaux existants.duo run : démarrer le mode headless.{{< /tab >}}
{{< /tabs >}}
Vous pouvez configurer l'ILC GitLab Duo à l'aide de variables d'environnement :
DUO_WORKFLOW_GIT_HTTP_PASSWORD : mot de passe d'authentification HTTP Git.DUO_WORKFLOW_GIT_HTTP_USER : nom d'utilisateur d'authentification HTTP Git.GITLAB_BASE_URL ou GITLAB_URL : URL de l'instance GitLab.GITLAB_DUO_MODEL : modèle d'IA à utiliser pour la session.GITLAB_ENABLE_GLOBAL_SKILLS : (Expérimental) Activer les Agent Skills au niveau utilisateur.GITLAB_ENABLE_PROJECT_HOOKS : (Expérimental) Activer le chargement des hooks au niveau projet.GITLAB_OAUTH_TOKEN ou GITLAB_TOKEN : jeton d'authentification.LOG_LEVEL : niveau de journalisation.Lorsque l'ILC GitLab Duo exécute une commande en votre nom, il définit la variable d'environnement AI_AGENT dans ce processus. Les scripts et outils peuvent lire AI_AGENT pour détecter qu'ils s'exécutent dans un contexte d'exécution piloté par l'IA.
Si votre réseau utilise un proxy interceptant HTTPS ou nécessite des certificats SSL personnalisés, vous pourriez avoir besoin d'une configuration supplémentaire.
L'ILC GitLab Duo respecte les variables d'environnement proxy standard :
HTTP_PROXY ou http_proxy : URL du proxy pour les requêtes HTTP.HTTPS_PROXY ou https_proxy : URL du proxy pour les requêtes HTTPS.NO_PROXY ou no_proxy : liste d'hôtes séparés par des virgules à exclure du proxying.Si votre organisation utilise une autorité de certification (CA) personnalisée, pour un proxy interceptant HTTPS ou similaire, vous pourriez rencontrer des erreurs de certificat.
Error: unable to verify the first certificate
Error: self-signed certificate in certificate chain
Pour résoudre les erreurs de certificat, utilisez l'une des méthodes suivantes :
Utiliser le magasin de certificats système (recommandé) :
export NODE_OPTIONS="--use-system-ca"
Spécifier un fichier de certificat CA :
export NODE_EXTRA_CA_CERTS=/path/to/custom-ca.pem
Si vous rencontrez encore des erreurs de certificat, vous pouvez désactiver la vérification des certificats.
[!warning] La désactivation de la vérification des certificats est un risque de sécurité. Vous ne devez pas désactiver la vérification dans les environnements de production.
Les erreurs de certificat vous alertent sur des failles de sécurité potentielles ; vous ne devez donc désactiver la vérification des certificats que lorsque vous êtes certain que cela est sécurisé.
Prérequis :
Pour désactiver la vérification des certificats :
export NODE_TLS_REJECT_UNAUTHORIZED=0
Pour mettre à jour manuellement l'ILC GitLab Duo vers la dernière version, exécutez la commande correspondant à votre configuration :
{{< tabs >}}
{{< tab title="glab" >}}
glab duo cli --update
{{< /tab >}}
{{< tab title="duo" >}}
npm install --global @gitlab/duo-cli@latest
{{< /tab >}}
{{< /tabs >}}
Pour obtenir des informations sur la contribution à l'ILC GitLab Duo, consultez le guide de développement.