Qwen Code Hebdo : Mode autonome /loop, dictée vocale sur Desktop, vue par onglets des Settings
Qwen Code publie cette semaine la v0.19.4 avec plus de 80 PR fusionnés, articulés autour de trois axes :
/loop continue de travailler même en votre absence. Un /loop nu (sans prompt ni intervalle) lance désormais un cycle autonome — l’agent fait avancer le travail déjà établi pendant que vous êtes absent, sans inventer de nouvelles tâches ni effectuer d’opérations irréversibles. Ajoutez un fichier .qwen/loop.md et le cycle relit la liste éditable à chaque tick ; supprimez-le et le cycle envoie des no-op ticks pour rester en vie. Claude Code vient de publier un guide de démarrage sur les boucles agent décrivant un agent exécutant un plan prédéfini en boucle — /loop en mode autonome fait quelque chose de similaire, avec une couche supplémentaire : la liste de tâches peut être modifiée à tout moment et le cycle détecte automatiquement les changements.
Dictée vocale sur Desktop. La dictée vocale existait déjà dans le CLI et le Web Shell, mais manquait sur l’application Desktop. Cette version comble le dernier manquant — les trois interfaces sont désormais alignées.
L’expérience terminal se rapproche du standard. /settings passe d’une liste plate à une vue par onglets — recherche, statut et statistiques en un seul écran. Le mode Virtualized History prend désormais en charge les clics et le survol de la souris dans les menus, les complétions et la zone de saisie.
✨ Nouvelles fonctionnalités
Mode autonome /loop + fichier de tâches loop.md
/loop prend désormais en charge deux nouveaux modes :
Mode autonome : un /loop nu (sans prompt, sans intervalle) ne se contente plus d’afficher l’aide — il lance un cycle autonome à pas auto-déterminés. L’agent fait avancer le travail déjà établi pendant votre absence — maintenance des PR en cours, poursuite des tâches entamées, respect des engagements — mais uniquement selon ce qui est déjà établi dans le transcript. Il n’invente pas de nouvelles tâches et n’effectue pas d’actions irréversibles (push/delete/send) sans autorisation explicite. Il s’arrête quand le silence s’installe. Le preamble autonome est envoyé une seule fois au démarrage, puis chaque tick n’envoie qu’un court rappel pour maintenir un coût en tokens bas.
Fichier de tâches loop.md : créez .qwen/loop.md à la racine du projet ou dans ~/.qwen/, définissez le prompt de wakeup/cron sur un sentinel (<<loop.md-dynamic>> ou <<loop.md>>), et le cycle relit le fichier à chaque déclenchement. Le contenu complet est envoyé la première fois ; si le fichier n’a pas changé, un rappel court est envoyé ; si le fichier est modifié, le contenu complet est renvoyé. Si le fichier disparaît, le cycle envoie des no-op ticks (l’agent ne fait rien, se contente de réarmer pour garder le cycle en vie), revenant au comportement de base du mode autonome. Recréez loop.md et le tick suivant détecte automatiquement le changement et renvoie le contenu complet.
Boucles de canal : /loop ne se limite pas au terminal — il fonctionne aussi dans les canaux DingTalk et Feishu. Utilisez /loop add "0 9 * * 1-5" vérifier le statut CI dans un groupe pour créer une boucle planifiée, /loop list pour voir toutes les boucles du canal, /loop inspect <id> pour consulter le nombre d’exécutions et les résultats récents, /loop cancel <id> pour arrêter. Les boucles s’exécutent via le routeur de sessions de canal, attendent la fin du tour actif en cours avant de démarrer, et les résultats sont renvoyés via le canal. Les boucles ponctuelles sont automatiquement désactivées après succès ou échec.
Ce que vous pouvez faire avec :
/loopnu pour que l’agent surveille et fasse avancer le travail pendant votre absence.qwen/loop.mdpour maintenir une liste de tâches persistante et éditable, sans avoir à la reformuler à chaque tick- Supprimez loop.md et le cycle envoie des no-op ticks pour rester en vie ; recréez-le pour reprendre sans couture
/loop adddans les groupes DingTalk/Feishu pour des boucles planifiées qui font avancer le travail périodiquement
Dictée vocale sur Desktop : alignement des trois interfaces
La dictée vocale existait déjà dans le CLI et le Web Shell, mais était absente du Desktop — les utilisateurs perdaient cette capacité en passant à l’application de bureau. Cette version comble le dernier manquant.
Un bouton microphone apparaît dans la barre d’outils du composer. Pendant l’enregistrement, la barre se transforme en barre d’enregistrement (guide en pointillés → forme d’onde en temps réel → chronomètre). À l’arrêt, le résultat de la transcription est inséré dans la zone de saisie pour relecture. La transcription s’effectue côté serveur, réutilisant le pipeline vocal du CLI (batch qwen3-asr-flash et modèles temps réel *-realtime) — les credentials du provider n’entrent jamais dans le renderer. La voix peut être activée/désactivée et le modèle sélectionné dans Settings → Input et dans le menu déroulant des modèles du composer.
Ce que vous pouvez faire avec :
- Cliquez sur le microphone et parlez — voyez la forme d’onde et le chronomètre en temps réel
- Choisissez un modèle temps réel (comme
qwen3-asr-flash-realtime) pour voir le texte provisoire pendant que vous parlez - Gardez les mains libres pour la saisie sur tablette ou dans des configurations multi-écrans
Voir PR #5856
Comment utiliser ?
- Clonez le dépôt :
git clone https://github.com/QwenLM/qwen-code.git
- Accédez au répertoire
cd qwen-code/packages/desktop
- Installez les dépendances et lancez le mode développement
bun install && bun run dev
Mobile Sidebar Drawer + finalisation de l’expérience qwen serve
Auparavant, lors de l’accès à qwen serve depuis un navigateur mobile, la barre latérale (liste des sessions, recherche, nouvelle session) était masquée via display: none en dessous de 760px — il n’y avait aucun moyen de changer de session. Un mode overlay drawer remplace désormais le masquage : un bouton menu apparaît dans l’en-tête du panneau de chat, et la barre latérale glisse depuis la gauche avec un fond semi-transparent. Sélectionner une session, créer une nouvelle session, ou cliquer sur le fond ferme le drawer. La mise en page Desktop n’est pas affectée.
Cela s’inscrit dans une série d’améliorations faisant passer qwen serve de « fonctionnel » à « agréable à utiliser » :
- Création différée de session (#6066 ) : la session n’est créée qu’au premier prompt, réduisant le coût des sessions vides et accélérant le démarrage du Web Shell
- Mémorisation du workspace (#5884 ) : le mode serve retient le workspace — plus besoin de le re-spécifier après un redémarrage
- Archivage de sessions (#6058 ) : le daemon prend en charge l’archivage des sessions, apportant une gestion des sessions longue durée
Ce que vous pouvez faire avec :
- Accédez à
qwen servedepuis un navigateur mobile et changez de session via le menu - En passant d’un projet à l’autre, serve retient automatiquement le workspace
- Archivez les sessions longue durée au lieu de les supprimer
Voir PR #6003
| Description | Sidebar repliée | Sidebar dépliée |
|---|---|---|
| Captures de test | ![]() | ![]() |
Clics et survol souris dans le TUI
Le CLI ne prenait auparavant en charge que la molette et la barre de défilement en mode Virtualized History — pas d’interaction au pointeur. Désormais, avec Virtualized History activé (ui.useTerminalBuffer), trois types d’interaction sont disponibles :
- Menus et boîtes de dialogue (confirmation de permissions,
/model,/config, thèmes, etc.) : survol pour surligner la ligne sous le pointeur, clic pour sélectionner - Listes de suggestions
/et@: survol pour surligner une suggestion, clic pour l’accepter - Zone de saisie : clic gauche pour repositionner le curseur texte (prise en charge du retour à la ligne multi-ligne, du défilement et des caractères larges)
Ce que vous pouvez faire avec :
- Sélectionnez un modèle à la souris dans la boîte de dialogue
/model, sans utiliser les touches directionnelles - Après avoir tapé
/, cliquez sur une suggestion de complétion - Repositionnez le curseur par clic dans une saisie multi-ligne
Voir PR #6011

Settings en vue par onglets : recherche, statut et statistiques en un écran
/settings a été transformé d’une liste plate en une vue par onglets, inspirée du /config de Claude Code. La barre d’onglets supérieure divise en trois pages — Settings / Status / Stats — et la page Settings intègre un champ de recherche qui filtre en temps réel.
La page Status affiche les mêmes informations système que /status. La page Stats intègre le tableau de bord complet /stats (sous-onglets Session / Activity / Efficiency). Le focus clavier se déplace verticalement entre la barre d’onglets, le champ de recherche et la liste des paramètres — le surlignage n’apparaît que dans la zone qui détient réellement le focus.
Ce que vous pouvez faire avec :
- Ouvrez
/settingset tapez directement un mot-clé pour filtrer les paramètres - Basculez vers la page Status avec ←/→ pour consulter les informations d’exécution, sans avoir à lancer
/statusséparément - Dans la page Stats, utilisez Tab pour basculer entre Session / Activity / Efficiency — le tableau Efficiency se replie automatiquement en « +N de plus » lorsqu’il dépasse la hauteur de la boîte de dialogue
Voir PR #6044

Extension Chrome : discutez et interagissez avec les pages directement depuis le navigateur
L’extension Chrome est ressuscitée avec une architecture daemon-direct — l’extension n’est plus un hôte Native Messaging, mais un client léger du daemon local qwen serve.
Le chat de la barre latérale se connecte directement à qwen serve via DaemonSessionProvider (HTTP+SSE, même chemin que le web shell). En cas d’impossibilité de connexion au daemon, un message invite à lancer qwen serve. Les outils navigateurs (lecture de page, capture d’écran, console, navigation, clic, remplissage de formulaires) sont exposés à l’agent sous forme de serveur MCP hébergé côté client via le WebSocket du daemon. Les deux chemins — chat et outils — se passent désormais de Native Messaging.
Attention : le canal d’outils inverse est actuellement activé via la variable d’environnement QWEN_SERVE_CLIENT_MCP_OVER_WS, désactivé par défaut — il faut explicitement définir ce flag au lancement de qwen serve.
Ce que vous pouvez faire avec :
- Discutez directement avec Qwen Code depuis la barre latérale Chrome, sans installer d’hôte natif au niveau du système
- Demandez à l’agent de lire la page actuelle, de la capturer, ou d’interagir avec les éléments du navigateur
- Réutilisez l’UI partagée du web shell pour une expérience cohérente
Voir PR #5777

📊 Plus de nouvelles fonctionnalités
| Fonctionnalité | PR | Impact |
|---|---|---|
/config key=value : modifiez n’importe quel paramètre directement depuis le prompt, avec complétion Tab et correction orthographique | #5773 | Plus besoin d’ouvrir settings.json |
| Timeline rail de session : timeline compacte sur le côté gauche du web shell, survol pour afficher les détails du turn | #6078 | Localisation rapide des turns dans les longues sessions |
| Sortie /skills ACP enrichie : affiche description et level | #6117 | Liste de skills plus informative |
Classification shell complète en auto-mode : nouveau paramètre classifyAllShell (désactivé par défaut) | #6040 | Défense en profondeur en production |
Identité multi-utilisateur qwen tag : les sessions partagées DingTalk prennent en charge le marquage [sender] | #5888 | L’agent distingue les intervenants dans les discussions de groupe |
| Remplissage historique de groupe : backfill des messages historiques | #6074 | Les nouveaux membres voient l’historique |
| Favicon d’onglet navigateur : icône d’onglet pour le web shell | #6091 | Onglets plus faciles à distinguer |
| Optimisation UI chat et rendu tableaux : améliorations visuelles du web shell | #6099 | Expérience visuelle améliorée |
| UX queued-prompt : interruption Esc plus conviviale dans le web shell | #6025 | Interruptions plus fluides |
| Stream /acp session reprenable : prise en charge de Last-Event-ID pour la reprise | #5852 | Connexions SDK plus stables |
| Glob patterns dans mcp.allowed/excluded : les listes blanches MCP prennent en charge les jokers | #6012 | Configuration MCP plus flexible |
Override de modèle inline : /model prend en charge un remplacement ponctuel du modèle | #6022 | Changement de modèle temporaire plus pratique |
| Approbation leader pour teammates à plan obligatoire : les teammates à plan obligatoire nécessitent l’approbation du leader | #6138 | Collaboration multi-agent plus sûre |
🔧 Corrections importantes
| Correction | PR | Impact |
|---|---|---|
| Timeout d’inactivité des outils MCP : interruption automatique après 5 minutes sans réponse du serveur, empêchant les sessions bloquées | #6061 | Les outils MCP longue durée ne bloquent plus indéfiniment |
| Affichage diff sur modifications vides : les modifications uniquement en espaces blancs n’affichent plus « No changes detected » | #6141 | Sortie diff plus précise |
| Optimisation latence saisie TUI : yield à React après addItem, réduisant les saccades de saisie | #6059 | Frappe plus fluide |
| Défilement multi-agent en mode non-VP : le transcript est désormais défilable pendant l’exécution multi-agent | #6015 | Consultation de l’historique possible en scénario multi-agent |
Prise en charge HTTPS/TLS : qwen serve ajoute les flags --tls-cert et --tls-key | #6032 | Utilisable dans les environnements à certificats auto-signés |
Chemins tilde Windows : prise en charge de l’expansion ~ au style Windows | #6029 | Compatibilité des chemins pour les utilisateurs Windows |
👥 Contributeurs
| Contributeur | Contributions | PRs de référence |
|---|---|---|
| @qqqys | Mode autonome /loop + fichier de tâches loop.md, dictée vocale, identité multi-utilisateur qwen tag, backfill historique de groupe, boucles de canal | #5890 , #5991 , #5856 , #5888 , #6074 , #6073 |
| @DragonnZhang | /effort intensité de raisonnement unifiée, clics et survol souris TUI, boîte de dialogue Settings par onglets | #6072 , #6011 , #6044 |
| @doudouOUC | Archivage de sessions, sortie /skills ACP enrichie, approbation leader pour teammates à plan obligatoire, affichage diff sur modifications vides | #6058 , #6117 , #6138 , #6141 |
| @DennisYu07 | Commande /config, classification shell complète en auto-mode, jokers listes blanches MCP, timeout d’inactivité MCP | #5773 , #6040 , #6012 , #6061 |
| @pomelo-nwu | Mobile Sidebar Drawer, prise en charge HTTPS/TLS | #6003 , #6032 |
| @callmeYe | Mémorisation du workspace, timeline rail de session | #5884 , #6078 |
| @ytahdn | Création différée de session, optimisation UI chat et rendu tableaux | #6066 , #6099 |
| @chiga0 | Stream /acp session reprenable, défilement multi-agent en mode non-VP | #5852 , #6015 |
| @yiliang114 | Résurrection de l’extension Chrome | #5777 |
| @wenshao | Favicon d’onglet navigateur | #6091 |
| @carffuca | Optimisation UX queued-prompt | #6025 |
| @Alex-ai-future | Optimisation latence saisie TUI | #6059 |
| @VectorPeak | Expansion tilde Windows | #6029 |
| 🆕 @Minerest | 🎉 Première contribution : correction du rappel mémoire déclenché uniquement lorsque auto-memory est activé | #5963 |
| 🆕 @TianYuan1024 | 🎉 Première contribution : ajout du flag --insecure pour ignorer la vérification TLS, override de modèle inline /model | #5962 , #6022 |
| 🆕 @gauravyad86 | 🎉 Première contribution : correction de vulnérabilités npm de niveau critical (simple-git, shell-quote et autres dépendances runtime), ajout d’un audit CI | #6065 |
Mise à jour : exécutez npm i @qwen-code/qwen-code@latest -g pour passer à la dernière version.
Pour toute question ou suggestion, n’hésitez pas à ouvrir un ticket sur GitHub Issues !

