Cours
Alibaba a lancé Qwen3-Coder, un modèle de codage agentique disponible en plusieurs tailles, dont la variante la plus puissante est Qwen3-Coder-480B-A35B-Instruct. Parallèlement à ces modèles, Alibaba a misen open source Qwen Code CLI, un outil en ligne de commande pour le codage agentique.
Qwen Code CLI est un fork de Gemini CLI et a été spécialement adapté pour être utilisé avec le modèle Qwen3-Coder dans le cadre de tâches de codage agentique.
Dans cet article, je vais vous expliquer étape par étape comment configurer et utiliser Qwen Code CLI. Nous l'utiliserons pour explorer des bases de code, effectuer la refactorisation de code, et bien plus encore.
Nous tenons nos lecteurs informés des dernières actualités en matière d'IA grâce à The Median, notre newsletter hebdomadaire gratuite qui résume les articles les plus importants de la semaine. Abonnez-vous et restez informé en quelques minutes par semaine :
Qu'est-ce que le code Qwen ?
Qwen Code est une interface en ligne de commande conçue pour faciliter les tâches de codage agentique. Il utilise des invites personnalisées et des protocoles d'appel de fonctions optimisés pour Qwen3-Coder. Avec Qwen Code, vous pouvez :
- Naviguer et comprendre des bases de code complexes
- Détecter et corriger les problèmes de codage
- Générer du code et des tests unitaires
- Créer de la documentation et des organigrammes

Source : QwenLM
Maintenant, configurons Qwen3-Coder et utilisons-le pour explorer et corriger les problèmes d'un projet open source. projet open source sur lequel j'ai récemment travaillé.
Étape 1 : Conditions préalables
Avant de configurer Qwen Code, veuillez vous assurer que Node.js (version 20 ou supérieure) est installé. Vous pouvez installer Node.js en exécutant :
curl -qL https://www.npmjs.com/install.sh | sh
Veuillez ensuite vérifier votre installation en exécutant la commande suivante :
node -v
npm -v
Étape 2 : Configuration du code Qwen
Dans cette étape, nous examinerons plusieurs options pour installer et authentifier Qwen Code sur notre appareil.
Étape 2.1 : Installation via npm
Une fois Node.js installé, configurez Qwen Code globalement et vérifiez également la version installée :
npm install -g @qwen-code/qwen-code
qwen --version

Ce code installe Qwen Code CLI globalement à l'aide du gestionnaire de paquets Node.js. Après l'installation, la commande « qwen --version » vérifie et affiche la version installée de l'interface CLI Qwen afin de s'assurer qu'elle est correctement configurée et prête à l'emploi.
Exécutons le code Qwen :
qwen

Veuillez cliquer sur Entrée pour sélectionner le thème par défaut et l'appliquer aux paramètres utilisateur. Ensuite, nous devons configurer l'authentification.
Étape 2.2 : Installation à partir du code source (facultatif)
Vous pouvez également choisir d'installer Qwen Code directement depuis leur référentiel GitHub :
git clone https://github.com/QwenLM/qwen-code.git
cd qwen-code
npm install
npm install -g .
Ce code clone le référentiel GitHub de Qwen Code CLI sur votre machine locale à l'aide de la commande « git clone ». Nous accédons ensuite au répertoire cloné et installons toutes les dépendances du projet spécifiées dans le fichier package.json du référentiel.
Remarque : -g signifie qu'il est disponible dans tout le système, et pas seulement dans le répertoire du projet local.
Étape 2.3 : Authentification
CLI nécessite une clé API Qwen 3 Coder pour l'authentification. La documentation officielle indique que vous pouvez vous authentifier en demandant une clé API à l'adresse https://bailian.console.aliyun.com/ ( si vous vous trouvez en Chine continentale). Si vous ne vous trouvez pas en Chine continentale, veuillez vous rendre sur https://modelstudio.console.alibabacloud.com/ pour demander votre clé API.
Toutefois, si vous résidez en Inde, ces options ne sont pas disponibles. Vous pouvez également opter pour OpenRouter, qui permet aux utilisateurs d'accéder à plusieurs clés API pour de nombreux modèles. Voici les étapes à suivre pour configurer une clé API pour Qwen 3 Coder avec celle-ci :
- Veuillez créer un compte sur https://openrouter.ai/.
- Veuillez vous rendre dans l'onglet Modèles et rechercher « Qwen 3 Coder ». Vous pouvez opter pour la version gratuite si vous avez besoin de moins de 128 000 jetons. Dans le cas contraire, veuillez choisir la version payante (0,302 $/M jetons d'entrée et de sortie).

- Veuillez faire défiler vers le bas et cliquer sur « Créer une clé API ». Veuillez saisir le nom de la clé et la limite de crédit (facultatif), puis cliquez sur Créer. Veuillez conserver cette clé API pour une utilisation ultérieure.

- Ensuite, accédez à l'onglet Crédits et ajoutez les informations relatives à votre carte ou à votre compte bancaire. Vous pouvez également payer via Amazon Pay. Pour cette démonstration, j'ai ajouté environ 15 dollars, ce qui était suffisant.

Étape 2.4 : Configuration de l'environnement
Nous pouvons désormais utiliser la clé API dans l'interface CLI. Revenez à l'interface CLI à partir de l'étape 2.1 et appuyez sur Entrée.

Ensuite, transmettez la clé API de l'étape précédente, suivie de l'URL de base et du nom du modèle comme indiqué ci-dessous :
API_KEY >Qwen_API_KEY_FROM_OPENROUTER
BASE_URL >https://openrouter.ai/api/v1
MODEL >qwen/qwen3-coder
Vous pouvez également configurer ces variables en tant que variables d'environnement. Veuillez ouvrir un nouveau terminal et exécuter les lignes suivantes une par une.
export OPENAI_API_KEY="Qwen_API_KEY_FROM_OPENROUTER"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_MODEL="qwen/qwen3-coder"
Si vous utilisez une clé API d'Alibaba Cloud, configurez vos variables d'environnement comme suit :
export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
export OPENAI_MODEL="qwen3-coder-plus"
Une fois ces variables d'environnement définies, appuyez sur Entrée et vous pouvez commencer à tester l'interface CLI.
Étape 3 : Expérimentation avec l'interface CLI de Qwen Code
Dans cette section, je vais vous expliquer comment j'ai utilisé Qwen Code CLI pour interagir avec un projet réel hébergé sur GitHub. En quelques instructions, Qwen m'a aidé à comprendre le code source, à optimiser les fonctions, à ajouter de nouvelles fonctionnalités, à automatiser les tests et à maintenir la documentation.
Grâce à des questions judicieusement formulées, j'ai pu :
- Analyser l'architecture du code source
- Optimiser certaines fonctions pour améliorer l'efficacité de la mémoire
- Générer et exécuter automatiquement des tests unitaires
- Élargissez les fonctionnalités en intégrant de nouveaux composants.
- Envoyer les mises à jour versionnées vers GitHub
- Générer un organigramme visuel des interactions entre les modules
- Consignez toutes les modifications dans un journal des modifications structuré.
Examinons chacune de ces étapes en détail.
Explorer et comprendre le code source
Commençons par demander à Qwen Code d'explorer et d'expliquer l'architecture du code source. Cependant, veuillez d'abord cloner le référentiel depuis GitHub et accéder au répertoire du projet à l'aide de la commande suivante :
git clone https://github.com/AashiDutt/Voxtral_with_vLLM.git
cd Voxtral_with_vLLM
Voici l'invite que j'ai utilisée pour comprendre le référentiel cloné :
Invite : Veuillez expliquer l'architecture de ce code source.

Qwen CLI a analysé des fichiers tels que app.py, config.py, requirements.txt et un notebook Colab. Il m'a ensuite fourni une ventilation claire de la structure du projet ainsi qu'un résumé général de ses principaux modules, ce qui m'a évité d'ouvrir et de lire manuellement chaque fichier.
Refactoring et optimisation du code
Après avoir compris l'architecture, j'ai utilisé Qwen Code CLI pour analyser les domaines susceptibles d'être améliorés dans le code source.
Invite : Quelles parties de ce module peuvent être optimisées ?



Qwen a fourni une liste structurée de suggestions portant sur plusieurs aspects : performances, efficacité mémoire, facilité de maintenance et expérience utilisateur. Il n'a pas seulement identifié les problèmes, il a également proposé des modifications de code exploitables.
En suivant ses conseils, j'ai pu :
- Réduire l'utilisation de la mémoire et du processeur
- Renforcer la gestion des erreurs
- Améliorer les commentaires des utilisateurs
- Simplifier la structure du code pour faciliter les développements futurs.
Dans l'étape suivante, je vais vous montrer comment j'ai appliqué l'une de ces optimisations (utilisation de la mémoire) et comment je l'ai testée à l'aide de Qwen CLI.
Mise en œuvre et test de l'optimisation du code
Après avoir identifié plusieurs domaines à optimiser, j'ai décidé de mettre en œuvre l'une des suggestions les plus efficaces : améliorer l'utilisation de la mémoire dans la fonction d'transcribe_audio. J'ai donc demandé à Qwen CLI de cibler le fichier spécifique ci-dessous :
Invite : Optimisez l'utilisation de la mémoire pour la fonction transcribe_audio dans @app.py.
Qwen s'est concentré exclusivement sur l'app.py, en utilisant la syntaxe @ pour les modifications limitées à une portée. Ce ciblage précis est utile lorsque vous souhaitez que les modifications soient appliquées de manière isolée sans affecter les parties non concernées du code. Le CLI a réécrit la fonction comme suit :
- Diffusez et traitez des segments audio au lieu de les charger tous en mémoire.
- Réduire les mises à jour de l'interface utilisateur en actualisant la barre de progression uniquement toutes les 10 sections.
- Éliminez la nécessité de précalculer le nombre total de segments.
Il a également mis à jour automatiquement le fichier CHANGELOG.md afin de refléter cette amélioration sous une nouvelle balise de version.
Génération et exécution de tests
Une fois l'optimisation de l'utilisation de la mémoire appliquée à la fonction « transcribe_audio », j'ai utilisé Qwen Coder CLI pour générer et valider automatiquement des tests unitaires pour la nouvelle implémentation.
Invite : Veuillez rédiger un test unitaire pytest pour les modifications récentes.
Qwen a commencé par analyser la structure du projet afin de vérifier si un répertoire test existait et si pytest était répertorié dans requirements.txt. Comme les deux étaient manquants, il a fallu :
- Ajout de l'
pytest>=7.0.0àrequirements.txt - Création d'un nouveau répertoire «
tests/». - Module de test généré :
tests/test_transcribe_audio.py
Qwen a effectué les tests et a confirmé que les quatre tests ont été réussis. Afin de conserver un historique clair des versions, Qwen a également ajouté une nouvelle entrée « Fixed » à l'adresse CHANGELOG.md sous la version v0.2.0.

À partir d'une seule invite, Qwen CLI a généré automatiquement des tests, identifié des cas limites, aidé à corriger un bug logique et garanti l'exactitude du code grâce à une validation rigoureuse.
Mise en œuvre d'un nouveau composant
Afin d'étendre les fonctionnalités de l'assistant audio Voxtral (base de code), j'ai demandé à Qwen Code CLI d'intégrer la prise en charge des vidéos YouTube.
Invite : Veuillez étendre l'exemple actuel afin de prendre en charge les vidéos YouTube. Lorsqu'un utilisateur fournit une URL YouTube, veuillez extraire l'audio de la vidéo et le transmettre au modèle Voxtral pour traitement. Veuillez ne pas modifier le reste du pipeline et ses composants.

L'objectif était de permettre aux utilisateurs d'entrer une URL YouTube en plus de télécharger des fichiers audio. Une fois fournie, l'application devrait extraire automatiquement l'audio de la vidéo et le traiter comme un fichier téléchargé normal, sans modifier le pipeline en aval pour la transcription ou les questions-réponses.

Qwen a examiné les pages app.py, config.py et requirements.txt afin d'identifier les mises à jour nécessaires. Il a reconnu la nécessité de l'yt-dlp et de l'pydub, qui figuraient déjà sur la liste.


En conséquence, un nouveau composant d'interface utilisateur a été ajouté, permettant aux utilisateurs de saisir une URL YouTube. Une fois soumise, l'application extrait l'audio et le transmet au pipeline existant pour transcription. Cependant, les modifications apportées à app.py n'étaient toujours pas suffisantes pour exécuter l'ensemble du code sans erreur.
Enregistrer les modifications sur GitHub
Une fois l'optimisation de l'transcribe_audio terminée et testée, j'ai utilisé l'interface CLI pour versionner et pousser les modifications vers GitHub.
Invite : Créez une nouvelle branche sur GitHub, puis validez et transférez le code mis à jour en tant que deuxième version avec le message : « v2 : Optimisation de transcribe_audio pour l'utilisation de la mémoire.

Qwen a automatisé l'ensemble du flux Git à l'aide de l'outil WebFlow, qui permet de comparer les fichiers locaux et ceux hébergés sur GitHub. La CLI permettait d'effectuer plusieurs tâches, de la création de branches à la validation et à la mise en ligne, sans aucune intervention manuelle.
Qwen a utilisé son outil d'analyse de code « WebFetch » pour :
- Créer une nouvelle branche
- Mettre en scène et valider les modifications
- Valider la modification
- Vérifier la mise à jour à distance
Tout cela en une seule commande. La version mise à jour (v2-optimization) a été isolée en toute sécurité et est disponible pour examen via une demande d'extraction. Cette intégration GitHub a facilité le suivi des améliorations, la collaboration sur les mises à jour et la conservation d'un historique des versions clair.
Voici à quoi ressemble la nouvelle branche mise à jour :

Génération d'organigrammes
Afin de visualiser comment les différents modules de l'assistant audio Voxtral interagissent, j'ai demandé à Qwen Code CLI de :
s rapides: Veuillez créer un organigramme illustrant les interactions entre les modules.

Qwen a généré un organigramme détaillé de l'Mermaid.js montrant l'ensemble du processus, depuis le téléchargement du fichier ou l'entrée YouTube jusqu'au traitement via le modèle Voxtral, puis à la sortie finale. README.mdIl a même tenté d'intégrer le diagramme dans le document de base du projet.
Génération de documentation
Une fois l'optimisation du code terminée, j'ai demandé à Qwen Code CLI de m'aider à documenter les modifications dans un format structuré et professionnel.
Invite : Veuillez rédiger un résumé en Markdown des modifications apportées. Veuillez le formater comme une entrée de journal des modifications sous « v0.2.0 ».

Qwen a utilisé son outil WriteFile pour ajouter l'entrée directement à CHANGELOG.md sous v0.2.0, conformément aux meilleures pratiques en matière de versionnement sémantique. Une fois qu'une tâche de journal des modifications est lancée, Qwen la mémorise et évite les mises à jour redondantes, ce qui permet d'économiser des jetons et d'éviter les appels répétés à l'outil.
Conclusion
En résumé, ce tutoriel a démontré comment Qwen Code CLI peut être utilisé pour :
- Comprendre et expliquer l'architecture d'une base de code
- Appliquez des optimisations et des améliorations ciblées.
- Générez et exécutez des tests unitaires avec une charge minimale.
- Élargissez les fonctionnalités grâce à de nouveaux composants tels que l'intégration YouTube.
- Automatisez le contrôle de version et les workflows GitHub.
- Visualisez les flux de projet et maintenez une documentation claire.
Qwen Code CLI réduit considérablement les efforts manuels nécessaires pour comprendre, déboguer et étendre une base de code. Bien qu'il s'inspire largement de Gemini CLI, Qwen Code apporte des améliorations aux modèles Qwen3-Coder, telles qu'un analyseur syntaxique amélioré et une meilleure prise en charge des outils.
Ce qui m'a le plus impressionné, c'est sa capacité à conserver le contexte d'une tâche à l'autre. Une fois que vous lui avez attribué une tâche de journal des modifications ou un fichier à surveiller, Qwen s'en souvient et évite les répétitions. Il détecte également les modifications à l'aide d'une syntaxe telle que « @file.py », ce qui le rend sûr à utiliser dans les projets de grande envergure.
Si vous travaillez sur des projets Python complexes ou que vous gérez des référentiels open source, cet outil peut vous faire gagner des heures de travail répétitif et rendre votre flux de travail plus intelligent et itératif.

Je suis un expert Google Developers en ML (Gen AI), un expert Kaggle 3x, et un ambassadeur Women Techmakers avec plus de 3 ans d'expérience dans la technologie. J'ai cofondé une startup dans le domaine de la santé en 2020 et je poursuis un master en informatique à Georgia Tech, avec une spécialisation dans l'apprentissage automatique.




