Junie peut désormais fonctionner entièrement sur votre Mac – sans tokens ni cloud
Notre premier pas vers les agents de programmation exécutés directement sur l’appareil
Junie peut se connecter à des environnements d’exécution de modèles locaux depuis un certain temps déjà. Indiquez Ollama ou LM Studio, chargez un modèle local, et l’agent s’exécute avec celui-ci. Beaucoup de personnes font déjà cela. Mais cela implique de devoir choisir le modèle, d’ajuster les paramètres et de gérer une grande partie de configuration manuelle ; et les modèles de petite taille ne peuvent aider que pour un nombre limité de tâches simples.
Nous avons donc fait tout cela pour vous. Laissez-nous vous présenter Junie Local : il est livré avec un modèle que nous avons choisi et optimisé pour notre propre boucle d’agents, s’installe à l’aide d’une seule commande et s’exécute entièrement sur votre machine. Aucun jeton, aucun quota, et votre code ne quitte jamais votre machine. Et c’est gratuit.
Une seule commande, aucune configuration
Dans Junie, exécutez /local. Le modèle se télécharge, le serveur local démarre et Junie bascule dessus. Il n’est pas nécessaire d’écrire un profil JSON, d’installer un environnement d’exécution au préalable, ni d’indiquer un point de terminaison.
Le modèle est Qwen3.6-27B en 4 bits. Il y a environ 20 Go à télécharger, et vous aurez besoin d’un Mac M5 avec 64 Go de RAM. Une fois le téléchargement terminé, tout s’exécute sur votre matériel : vos prompts, votre code source et vos différences de code restent sur votre machine.
Votre configuration existante est transférée. Le mode Plan, les prompts en direct, les directives, les compétences et vos /commandes gardent le même comportement. Le moteur a changé, mais pas l’agent.
Les enseignements que nous avons tirés d’une exécution rapide
Tout le monde compare la vitesse de génération. Pour un agent de programmation, ce n’est finalement pas le bon indicateur à privilégier, car la majeure partie du temps est consacrée au prefill, pendant que le modèle lit les fichiers pour comprendre ce qui se passe. C’est en optimisant le prefill que nous avons obtenu les gains les plus importants. C’est pourquoi Junie Local démarre à partir de la puce Apple M5 : l’accélérateur neuronal du M5 dispose d’instructions de calcul en 8 bits qui ne sont pas présentes sur le M4, et leur utilisation nous a permis d’augmenter le débit de prefilld’environ 40 %. Nous allons envoyer ce correctif sous forme de requête pull à MLX-VLM.
Nous avons également délibérément choisi Qwen3.6 plutôt que la version 3.8 plus récente. Qwen3.8 nécessite l’activation du raisonnement pour fonctionner de manière fiable, ce qui ralentit les tâches, qui s’exécutent environ quatre fois plus lentement. Sur les Mac d’aujourd’hui, la version 3.6 gagne.
Il y a bien plus à en dire, notamment la réutilisation du cache KV entre les tâches et la configuration du décodage spéculatif, qui permet de doubler environ la vitesse de génération. Vous pouvez lire l’article détaillé ici : Comment nous avons optimisé le modèle Qwen3.6 pour notre agent Junie.
Quel est son niveau de performance ?
Nous évaluons chaque modèle sur un ensemble de tests privé propre à JetBrains avant de l’intégrer à Junie, et c’est ce que nous avons fait pour Junie Local. Qwen3.6-27B obtient un score similaire à Sonnet 4.5 (avec une limite de raisonnement de 10 000 jetons). GPT‑5 avec un effort moyen a obtenu un résultat légèrement supérieur.
Il convient de préciser ce que ces chiffres prennent en compte : nous fournissons le modèle local avec le raisonnement entièrement désactivé, car nos tests ont montré qu’il apportait très peu en termes de qualité, tout en consommant deux à trois fois plus de tokens. Ces résultats correspondent donc à ce que le modèle produit sans raisonnement, face à des modèles cloud pour lesquels cette option était activée.
Pour le travail quotidien, vous ne remarqueriez probablement pas la différence. En revanche, sur un raisonnement architectural complexe, vous le remarqueriez.
Que change l’absence de facturation à l’usage ?
Les benchmarks indiquent si un modèle est capable d’effectuer le travail. Ils ne vous disent pas ce qui change lorsque le travail est effectué gratuitement.
L’efficacité en matière de coûts est un paramètre que vous pouvez ajuster dans Junie depuis quelque temps : planifiez avec un modèle performant, puis implémentez avec un modèle moins coûteux. Junie Local ramène ces coûts à zéro. Si une itération supplémentaire ne coûte rien, un travail pour lequel vous n’auriez normalement jamais dépensé de crédits devient intéressant à déléguer. Junie Local est idéal pour :
- Les refactorisations et renommages portant sur plusieurs fichiers qui ne justifiaient pas la dépense.
- Les lacunes de la couverture de tests que vous ignorez depuis les six derniers mois.
- Les mises à niveau des dépendances et les migrations de framework.
- S’orienter dans un dépôt dont vous avez hérité.
Un agent est fait pour les tâches longues, répétitives et mécaniques. Mais c’est précisément le type de tâches que vous cessez de lui confier lorsque vous surveillez votre solde.
Pour certaines équipes, la confidentialité offerte par Junie Local est la principale raison de lire cet article. Vous n’avez pas à examiner la politique d’un fournisseur en matière de données, car aucun fournisseur n’est impliqué dans le processus. Si vous êtes soumis aux accords de confidentialité de vos clients, la conversation passe de « nous avons évalué le prestataire » à « aucun prestataire n’a été impliqué ».
De plus, l’outil fonctionne sans aucune connexion réseau. Une fois les poids du modèle stockés sur le disque, Junie Local fonctionne de la même manière dans un avion que lorsque vous êtes à votre bureau.
Oui, les prérequis sont élevés
Nous savons qu’un Mac M5 avec 64 Go de RAM est déjà beaucoup demander. Nous n’allons pas prétendre le contraire, et nous savons que cela rend Junie Local inaccessible pour beaucoup de personnes qui lisent cet article.
C’est tout simplement ce qu’il en coûte pour faire tourner correctement un modèle 27B aujourd’hui, et c’est le chiffre que nous cherchons le plus activement à faire baisser. L’objectif est de réduire la mémoire minimale requise, d’élargir la palette de matériels compatibles et d’optimiser une plus grande partie de la pile. Si ces prérequis élevés vous empêchent d’essayer Junie Local, soyez assuré que nous travaillons à leur réduction.
C’est la première étape
Un modèle, une famille de puces, une plateforme. Nous avons commencé avec un périmètre volontairement restreint, car optimiser un seul modèle sur l’ensemble de la pile est plus efficace que d’essayer de prendre en charge tous les modèles de manière médiocre.
Le Mac est le point de départ, pas l’ensemble du projet. Nous disposons déjà de prototypes fonctionnels pour DGX Spark et RTX 5090, et nous testons des cartes de 24 Go. Le prefill se comporte de manière très différente sur un GPU discret, si bien qu’une grande partie du travail d’optimisation est reportée sur ce matériel.
Si vous avez un avis sur la plateforme à cibler ensuite, c’est le bon moment pour nous le faire savoir.
Commencer à l’utiliser
Junie Local est entièrement gratuit : aucune inscription, aucun abonnement, aucun crédit ni aucune carte bancaire ne sont nécessaires.
Ouvrez Junie, exécutez /local, puis donnez-lui une tâche que vous aviez laissée de côté. Ensuite, dites-nous ce qui n’a pas fonctionné, ce qui vous a surpris et ce que vous attendez pour la suite. Chaque composante de Junie est née de cette boucle de rétroaction, et nous souhaitons continuer sur cette voie.
Auteur de l’article original en anglais :