Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben

Test du UGREEN DXP4800 GT : le NAS 4 baies qui gère tout mon Plex, piloté par une IA

25 août 2026 à 12:07
- Contient des liens affiliés Amazon -

Au départ, mon stockage était franchement bordélique. Ma bibliothèque Plex vivotait sur un vieux Synology, avec plusieurs SSD externes branchés au Mac mini, posés là au petit bonheur, avec les films rangés à plat et chaque disque qui traînait ses propres conventions et ses trous.

Je vous en avais d'ailleurs déjà parlé, et ça marchait, mais c'était un peu le foutraque, et surtout impossible à automatiser proprement, parce qu'une chaîne d'acquisition sérieuse exige un rangement carré jusqu'au moindre fichier.

D'où la grande décision de remettre tout ça à plat. L'objectif ? Consolider la médiathèque sur du matériel récent, séparer une bonne fois deux mondes qui n'ont rien à faire ensemble, les médias d'un côté et les sauvegardes de l'autre, et déléguer le plus gros de la configuration à Claude Code, l'assistant de codage d'Anthropic, piloté à distance depuis mon Mac mini.

UGREEN m'avait proposé depuis quelque temps de tester les deux NAS de sa gamme GT, j'ai donc accepté. Puis j'ai acheté mes disques une fortune, on y reviendra. Pour Plex, mon choix s'est porté sur le plus costaud de la gamme, un DXP4800 GT quatre baies sous AMD Ryzen.

Sa vraie raison d'être, c'est le débit. Ses deux ports réseau 10 Gbit confiés à des contrôleurs Aquantia ont craché 9,30 Gbit par seconde dès le premier flux en direct, soit le maximum théorique, sans une seule retransmission. Sur ce terrain, il est clairement irréprochable.

Sous le capot, on trouve un Ryzen Embedded R2514 à quatre cœurs, 8 Go de DDR4 extensibles à 64 Go, quatre baies qui se manipulent sans outil dont deux acceptent des SSD U.2 NVMe, plus deux emplacements M.2, le tout jusqu'à 144 To. Il tourne sous UGOS Pro, un système bâti sur une base Debian très peu verrouillée, avec un vrai SSH administrateur, Docker, et une plateforme x86 ouverte où l'on peut installer à peu près tout ce qu'on veut.

Le seul vrai bémol, c'est son moteur vidéo un peu daté, qui ne tient que deux flux Plex 4K transcodés en même temps et ignore l'AV1, donc pour une grosse médiathèque partagée à plusieurs, mieux vaut lui donner des fichiers déjà au bon format, ou transcoder sur une autre machine, ce qui est mon cas avec le Mac mini. Pour le stockage, j'ai récupéré 4 disques 28 To sur Amazon , à un prix que je n'ose même pas vous donner (660 euros pièce, et au moment où j'écris cet article leurs prix ont bondi à 780 euros).

Le gros morceau, c'était la migration, faire passer 36 To et 22 000 fichiers du Synology vers ce nouveau NAS. Perso je n'ai pas fait grand-chose, Claude Code s'est occupé de tout ça en SSH, en passant par les API de Plex, Radarr et Sonarr.

Derrière Plex tourne d'ailleurs toute une chaîne, Radarr et Sonarr, Prowlarr pour les sources, une seedbox Whatbox et Seerr.

Pour l'anecdote, le plus gros problème ça a été de régler les problèmes posés par les fichiers avec des accents. Près de 17 000 fichiers (de vidéos de vacances bien sûr) au chemin accentué devenaient injouables sur l'Apple TV alors que l'iPhone les lisait sans broncher, parce que Plex sur Mac jongle entre deux façons de coder un accent en Unicode quand le partage NFS strict d'UGOS n'en accepte qu'une seule à l'octet près.

Bon, maintenant on ne va pas se mentir, il y a eu des ratés avec l'IA, comme la disparition de près de 800 fichiers effacés par un bug des scripts, sans corbeille ni snapshot, mais comme le volume tourne en Btrfs et qu'il restait de la place, Claude a gelé le volume, remonté des centaines d'états internes du système de fichiers et rapatrié plus de 98 % des fichiers. Les pertes sont au final négligeables. C'était évitable, mais je n'ai pas été assez vigilant.

Ce socle sauvegarde même le code de Selene Racer, mon jeu de course de rovers sur la Lune hébergé dans le cloud sur lequel je bosse en ce moment ( vous pouvez le tester ici , il se joue dans n'importe quel navigateur, sur ordi ou téléphone), et dont les sources atterrissent sur le NAS via Dropbox. Quant au NAS deux baies qui encaisse Time Machine, les archives et les sauvegardes, c'est son petit frère le DXP2800 GT, que je teste sur Mac4ever .

Si comme moi vous n'êtes pas super fort en code et en réseau, et que vous avez suffisamment de sauvegardes de vos données, confier votre vie numérique à une IA et à un NAS de ce type est donc tout à fait envisageable, et c'est même assez chouette à mettre en place.

Les DXP4800 GT et le DXP2800 GT sont disponibles sur Amazon, et je vous les recommande les yeux fermés.

oMLX – Faites tourner vos agents IA en local sur votre Mac

Par : Korben ✨
20 août 2026 à 06:31

Faire tourner un modèle en local sur un Mac, c'est réglé depuis un moment. Ce qui l'est moins par contre, c'est de brancher un agent de code dessus, parce qu'à chaque reprise de session, le serveur doit malheureusement remouliner des dizaines de milliers de tokens de contexte avant de sortir le premier mot...

Ce calcul, ça s'appelle le cache KV, et la plupart des serveurs le gardent en mémoire. Du coup, quand le modèle se décharge, le cache part avec dans le grand vide...

C'est pourquoi oMLX a pris le parti d'écrire ce cache sur le disque, au format safetensors, car le contexte déjà envoyé une fois, prompt système et fichiers lus compris, se recharge depuis le SSD au lieu d'être recalculé, y compris après un redémarrage du serveur.

De son côté, LM Studio conserve lui aussi son cache MLX sur disque , mais dans un fichier temporaire qu'il efface quand le modèle se décharge. Les deux outils écrivent sur le disque, mais un seul conserve réellement son cache.

Côté raccordement, le serveur oMLX expose l'API OpenAI et l'API Anthropic ce qui permet par exemple à Claude Code de taper directement sur localhost. Et y'a même un tableau de bord qui nous dit quoi faire dans le terminal pour brancher Claude Code ou d'autres avec oMLX.

Sur oMLX, le cache disque est donc actif d'office et son plafond par défaut, parce qu'il en faut bien un, se calcule à 10 % de la capacité du disque qui l'héberge. Sur un SSD d'un téraoctet par exemple, ça fait cent gigaoctets qui peuvent partir en cache sans que personne n'ait rien demandé. Donc prévoyez un peu de place... Après rassurez-vous, ça se vide d'un clic sur un bouton dans le tableau de bord et la taille peut se régler.

Le deuxième piège est plus sournois puisqu'une installation par défaut via pip ne compile pas les kernels Metal, et les modèles GLM-5.2, MiniMax M3 et Qwen3.5 retombent alors sans prévenir sur un chemin générique... Donc je vous incite fortement à utiliser uniquement les DMG proposés qui contiennent déjà les kernels Metal compilés comme il faut.

Reste à savoir ce que ça donne vraiment dans un usage quotidien... Le cache attaque l'attente avant le premier mot mais pas la vitesse à laquelle les mots sortent ensuite donc tout dépend du modèle et de la machine que vous avez. Mais en tout cas, pour un usage avec des agents (coding par exemple), ce sera plus efficace d'utiliser oMLX que Ollama ou LMStudio.

Source : omlx.ai

Son imprimante HP imprime enfin sur Mac - Merci Claude Code

Par : Korben ✨
19 août 2026 à 06:50

Hier, je suis tombé sur ce tweet :

Kuber, un développeur de 19 ans a demandé à Claude Code, de lui pondre un pilote pour sa vieille imprimante pour macOS. Et visiblement, ça a intéressé pas mal de monde puisque le tweet a fait +3 millions de vues.

Il a ensuite publié le dépôt sur Github et la transcription complète de la session. Et ce que ça raconte c'est surtout un bras de fer avec macOS, et un montage bidouillesque au possible qui finit par tenir sur une machine virtuelle Linux et un daemon root.

Pour la petite histoire, son imprimante est une HP Laser 1008a. C'est en réalité une Samsung rebrandée car HP a racheté la division impression de Samsung , il y a une dizaine d'années. Et ces machines parlent un langage un peu niche qui est le SPL3. C'est un langage maison qui n'est ni du PostScript ni du PCL standard. Et comme vous vous en doutez, HP n'a jamais sorti de pilote macOS pour cette gamme. Donc officiellement, cette imprimante ne peut pas imprimer depuis un Mac.

La mission a donc consisté à recompiler SpliX, un pilote libre qui parle le SPL3 et à se battre avec macOS pour qu'il puisse causer via l'interface USB de l'imprimante déclarée en IPP-over-USB. Il a fallu ensuite ruser en mettant en place une VM Linux afin de faire tourner h24 un codec de HP uniquement dispo sous Linux. Et voilà ! La file d'impression envoie le travail sur un port local, un daemon root le récupère, le fait passer par le codec dans cette VM, et écrit le résultat directement sur l'USB.

Bref, ça marche et ça imprime maintenant depuis n'importe quelle application.

Alors vous l'aurez compris, ce n'est pas vraiment un dev de pilote pour macOS mais plutôt une espèce d'assemblage de différents éléments pour la plupart libres, afin de réussir à imprimer sous macOS avec ce modèle d'imprimante. Mais ce qui est intéressant, c'est que le mainteneur de SpliX a débarqué sur le dépôt de Kuber avec une archive de fichiers de test et une série de questions. Cela veut dire que si lui et Kuber trouvent l'octet qui diffère, la VM Linux et le daemon root vont disparaître et il ne restera plus qu'un paquet tout ce qu'il y a de plus classique à installer.

Voilà c'est finalement la seule partie de l'histoire où on répare vraiment quelque chose. Mais ça reste quand même une belle histoire où l'IA permet de s'affranchir des limites techniques imposées par les fabricants et éditeurs de logiciels. Et ça, moi j'adore !

Source : le fil de Kuber sur X , avec la transcription intégrale de la session et le dépôt du projet .

Je me suis remis à la domotique grâce à un vieux mini PC et Claude Code

Par : Korben ✨
17 août 2026 à 10:02

Ce mois-ci, je suis en mode déménagement / vidage de cartons / montage de meubles Ikea et bien sûr, j'en profite pour réinstaller mon matos... Mon système d'alarme, mes caméras et un peu de domotique.

Sauf que la domotique, c'est pas mon kif car même si j'aime l'idée d'avoir des automatisations chez moi, ça fonctionne un moment, puis après ça ne fonctionne plus, souvent parce que les Raspberry Pi passent leur temps à corrompre les cartes SD... Puis surtout, je manque de temps pour me prendre la tête à régler des scénarios au poil de cul.

Mais là, c'est aussi un peu les vacances et y'a plusieurs paramètres qui ont changé. Déjà la nouvelle maison est plus petite. J'ai aussi un mini PC à disposition qui ne faisait pas grand chose. J'ai également une caisse de matos divers et variés (Zigbee / Zwave et autre) qui prend la poussière. Et puis les nouveautés dans ma vie, c'est bien sûr l'IA et Alexa.

Je me suis donc chauffé un peu, et je vais vous raconter ce que j'ai mis en place ces derniers temps.

Étape 1 : le mini PC qui dormait dans un carton

Le point de départ, c'est ce mini PC. Un NiPoGi Pinova P1 (lien affilié) que j'avais acheté en 2023, un Ryzen 3 4300U avec 16 Go de RAM et 1 To de SSD, qui n'avait jamais vraiment trouvé sa vocation. Complètement surdimensionné pour de la domotique, vous vous en doutez, et c'est exactement pour ça qu'il est parfait.

Parce que le vrai sujet, c'est pas la puissance, c'est le stockage. Mes install précédentes mouraient toutes de la même façon : une carte SD qui rend l'âme au bout de quelques mois d'écritures permanentes. Là, le système tourne sur un SSD, et rien que ça, ça règle le problème qui m'avait dégoûté les fois d'avant.

J'ai donc collé Home Assistant OS dessus, ce qu'on appelle HAOS pour les intimes. C'est la version "système d'exploitation" qui prend la machine entière et qui pilote tout elle-même, sans Linux à administrer en dessous ni Docker à maintenir. Et puis avec cette version, vous récupérez au passage le magasin d'add-ons et les sauvegardes automatiques, sans rien configurer. Sur une machine dédiée qui ne fait que ça, c'est franchement le mode le plus tranquille.

Et là, premier petit piège à savoir au niveau du BIOS si vous vous lancez... Pour démarrer, HAOS exige en effet que le mode UEFI soit activé et que le Secure Boot soit désactivé. Si vous zappez ça, votre clé USB ne bootera jamais et vous allez tourner en rond un bon moment.

Et tant que vous êtes dans le BIOS, y'a un troisième réglage dont la doc ne parle pas et qui est pourtant le plus important sur la durée : le comportement après une coupure de courant. Ça s'appelle "Restore on AC Power Loss", "After Power Failure" ou "AC Back Function" selon les marques, et il faut le passer sur "Power On". Sans ça, la moindre micro-coupure vous laisse une maison sans domotique jusqu'à ce que quelqu'un rentre appuyer sur le bouton. Et ça, croyez-moi, on n'en veut pas quand on est parti en vacances.

Le reste après, c'est du classique. Vous récupérez l'image générique x86-64 et vous la flashez sur une clé USB avec Balena Etcher. Attention à bien prendre haos_generic-x86-64 et pas une version pour Raspberry Pi ou pour machine virtuelle, sinon vous allez vous demander longtemps pourquoi ça ne démarre pas. Ensuite vous bootez le mini PC sur la clé, l'installeur écrit le système sur le SSD interne, et c'est plié. Vous retirez la clé, ça reboote, et l'interface vous attend :

http://homeassistant.local:8123

Si ça ne répond pas, c'est que votre box ne fait pas de mDNS, allez juste chercher l'IP dans sa liste de clients. Et voilà, un Home Assistant tout neuf.

Maintenant, passons à la suite parce que j'ai une caisse pleine de matos à réveiller.

Première galère : Faire parler le Zigbee

Dans ma caisse, y'avait notamment un dongle USB Sonoff (lien affilié) pour le Zigbee. Je le branche, et je décide de partir sur Zigbee2MQTT plutôt que sur ZHA, l'intégration native. Le choix se paye tout de suite en complexité (il faut un broker MQTT à côté, Mosquitto en l'occurrence), mais il se rembourse largement après, parce que Zigbee2MQTT expose absolument tous les réglages internes des appareils. Vous verrez plus bas pourquoi c'est déterminant.

Le mini PC qui va me faire oublier mes galères avec le Raspberry Pi

Sauf que rien ne s'est passé comme prévu. J'installe les modules recommandés, et Zigbee2MQTT n'apparaît tout simplement pas dans la liste. Bon. Une fois que j'ai réussi à le sortir de sa cachette, c'est la configuration du port série de la clé qui m'a offert un vrai moment de solitude : on modifie, on clique sur "Submit", ça a l'air de sauvegarder... et la page revient vierge, sans plus rien à sélectionner. Allez savoir si le réglage est passé ou pas !

Le truc à retenir en fait, c'est qu'il faut désigner la clé par son identifiant stable et pas par un /dev/ttyUSB0 qui peut changer au reboot. Le chemin ressemble à ça :

/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_...-if00

Une fois ça compris, le bridge est monté et n'a plus bougé. Mais c'est ce genre de conneries qui font lâcher la domotique à pas mal de monde, je pense.

Deuxième galère : mes appareils étaient otages du cloud

Deuxième claque, et celle-là est plus vicieuse. Mes prises connectées Meross, je les avais appairées à l'époque avec l'app du fabricant. Résultat, elles étaient déjà mariées au cloud Meross, et impossible de les récupérer proprement depuis l'app iPhone pour les basculer ailleurs.

La solution est donc passée par HACS, le magasin de composants communautaires, et un custom component qui s'appelle Meross LAN. L'intérêt, c'est qu'il parle aux prises en local, sur votre réseau, sans faire l'aller-retour par les serveurs du fabricant. Même logique avec l'app Sonoff LAN pour un interrupteur USB que j'avais (lien affilié). Vos automatisations continuent donc de tourner même quand le cloud du constructeur est dans les choux ou quand votre fibre est coupée.

J'ai aussi buté sur un cas plus tordu avec du matos Tuya car j'ai des appareil qui sont vendus sous une autre marque, avec leur app maison, et qui n'existent pas dans le cloud Smart Life sur lequel s'appuie l'intégration Tuya standard. Donc intégration cloud inutilisable... C'est vraiment le problème numéro un de l'objet connecté grand public, et c'est pour ça que je vous conseille de vérifier si un appareil a besoin du cloud avant de l'acheter, pas après.

Du coup, HACS est devenu mon meilleur pote sur ce chantier. J'y ai pris Meross LAN pour les prises, Sonoff LAN pour l'interrupteur, Alexa Media Player pour mes Echo et l'intégration Dyson. Il n'y a que mon capteur de qualité d'air air-Q qui était supporté nativement, sans rien avoir à installer.

Et pour faire tout ça, j'ai une arme secrète : Claude Code !

Et maintenant, la partie qui a vraiment tout débloqué. Parce que jusqu'ici, j'avais du matériel qui répondait, mais toujours zéro automatisation. Et c'est précisément là que je décrochais avant car l'éditeur graphique de Home Assistant devient vite limitant, et dès qu'on veut une condition un peu fine, on se retrouve à taper du YAML avec des templates Jinja et à se planter d'indentation ou de paramètres.

Du coup j'ai fait un truc très à la mode en ce moment... J'ai branché Claude Code directement sur mon Home Assistant via un serveur MCP conçu spécialement pour ça . En gros, le MCP c'est ce qui donne des outils concrets à l'IA. Grâce à ça elle peut lister mes entités, lire leur état en direct, et surtout écrire les automatisations dans HA. Je décris ce que je veux en français, il va regarder ce que j'ai réellement comme capteurs chez moi, et il écrit le scénario.

Et ça pour moi, ça change complètement le rapport tordu que j'ai à ma domotique. Et voilà comment en quelques jours, je me suis retrouvé avec 21 automatisations qui tournent, ce que je n'aurais jamais fait à la main. Pas parce que l'IA est magique, mais parce qu'elle supprime la friction. Je n'ai qu'à formuler les idées qui me passent par la tête et l'IA fait le job sans que j'ai à me galérer avec du paramétrage.

À noter que Home Assistant a aussi sa propre intégration Model Context Protocol Server depuis la version 2025.2, mais elle fait plutôt l'inverse : elle expose vos appareils à un assistant. Moi je voulais un truc qui écrive la config à ma place.

Mon vrai défi : Passer l'été sans clim

Voilà le scénario dont je suis le plus fier, parce qu'il résout un problème que j'ai vraiment dans cette nouvelle maison : pas de clim, et un bureau qui monte en température. Ce n'est pas que je ne veux pas en installer , c'est que je viens d'arriver, que y'a pénurie de ventilos et de pompes à chaleur et en plus je suis en location, donc ce n'est pas si simple que ça. Mes seules armes pour le moment, c'est donc un Dyson qui filtre et qui brasse, et des fenêtres à ouvrir au bon moment.

Mon fidèle ventilo !

Ce que j'ai fait du coup, c'est que le Dyson démarre tout seul quand l'air se charge en pollution et s'arrête quand c'est redevenu propre. Concrètement il se lance quand les PM2,5 dépassent 10 µg/m³ ou les PM10 dépassent 18 µg/m³ pendant 5 minutes d'affilée. Les 5 minutes de délai, c'est important car sans ça, un simple passage devant le capteur déclenche tout.

Mais le truc dont je suis vraiment content, c'est qu'il ne souffle pas pareil selon si je suis là ou pas. Si le capteur de présence me détecte, il démarre à 20% seulement, histoire de rester silencieux pendant que je bosse. Si je suis absent, il part direct à 100% et il purge la pièce à fond. Même logique pour les COV : au-dessus de 1000 ppb, c'est 30% en ma présence et 100% quand j'ai le dos tourné.

Le reste suit la même idée : une purge à fond pendant mon absence, un régime plus doux dès que je rentre dans la pièce, le mode nuit uniquement si je suis présent, et une alerte quand les filtres arrivent en bout de course.

Mais le vrai casse-tête, c'était l'aération. Parce que oui, quand l'air intérieur devient mauvais, la solution évidente c'est d'ouvrir les fenêtres. Sauf qu'en pleine canicule, ouvrir c'est la pire idée du monde : vous virez vos polluants et vous encaissez 35 degrés à la place. Je me suis retrouvé au départ plusieurs fois avec Alexa qui me disait d'aérer alors que c'était juste pas possible.

La solution que j'ai trouvé, c'est donc de mettre en place un scénario qui ne me conseille d'ouvrir que si quatre conditions sont réunies en même temps : il fait plus de 26 degrés chez moi, il fait au moins 2 degrés de moins dehors, l'air extérieur est plus sec que le mien, et la qualité de l'air extérieur est correcte. Alors let's go, Alexa me dit d'ouvrir les fenêtres. Et ça, elle le réévalue toutes les 10 minutes.

La condition sur l'humidité est celle à laquelle je n'avais pas pensé au départ, et que Claude Code m'a conseillé de lui-même, et c'est pourtant la plus utile. Comparer les températures toutes seules, ça ne suffit pas, c'est pourquoi le scénario compare les points de rosée, et pas les pourcentages d'humidité. Parce que de l'air à 24 degrés bien humide vous rafraîchit beaucoup moins que de l'air à 25 degrés bien sec, et vous vous retrouvez avec une pièce moite que vous mettrez la nuit à assécher.

Les notifs que j'ai sur le smartphone et qui sont lues par Alexa

Petite subtilité technique au passage : je ne regarde pas la température qu'il fait dehors, mais la plus chaude des deux prochaines heures. Ça évite d'ouvrir dix minutes avant que ça remonte. Et ça oblige à passer par un helper, parce qu'un template Home Assistant ne peut pas appeler un service tout seul... il faut donc une automatisation qui va chercher la prévision et la dépose dans une variable, toutes les 10 minutes.

Et surtout, il me dit quand refermer, avant que la chaleur ne revienne. Là, je referme quand la fraîcheur est acquise, quand la prévision annonce que c'est fini, ou quand l'air du dehors se dégrade. Et le message diffusé par Alexa m'explique laquelle des trois raisons s'applique.

Deux petits helpers mémorisent aussi qu'une aération est déjà en cours, histoire qu'Alexa ne me répète pas la même chose toutes les cinq minutes. Et si je m'absente pendant l'opération, j'ai droit à un rebriefing en rentrant.

Au passage, j'ai fait deux erreurs de débutant. La première c'est que j'avais posé mon capteur de qualité d'air juste à côté de la fenêtre. Il mesurait donc l'air de la rue et pas celui de mon bureau, et les scénarios se déclenchaient n'importe quand. Déplacé au fond de la pièce, tout est redevenu cohérent. Bref, placez vos capteurs là où vous vivez, pas là où c'est pratique à brancher.

La seconde, c'est que j'ai fini par limiter les annonces vocales sur la plage 8h-22h parce que se faire réveiller à 3h du matin par une enceinte qui vous parle de particules fines, ça vous passe l'envie de la domotique très vite !

Et si vous n'avez pas de clim non plus et que vous cherchez plus radical, Vincent avait aussi testé un rafraîchisseur pendant la canicule .

Le petit capteur qui a tout changé

Dans ma caisse à domotique, y'avait aussi un détecteur de présence Moes (lien affilié) en Zigbee, à ondes millimétriques, ce qu'on appelle un capteur mmWave. Un petit module qui coûte trois fois rien, et c'est clairement ma meilleure surprise de tout ce chantier.

Parce qu'un détecteur de mouvement classique, un PIR, détecte la chaleur qui bouge. Donc quand vous êtes assis à votre bureau en train de lire ou de regarder une vidéo, au bout de deux minutes il décide que la pièce est vide et vous éteint la lumière. Alors que le mmWave, lui, détecte la présence statique : il vous voit même immobile, parce qu'il capte les micro-mouvements et la respiration. Pour un bureau, c'est le jour et la nuit !

Le capteur AirQ à gauche / Le capteur mmWave à droite

Et c'est ici que le choix de Zigbee2MQTT paye enfin, parce qu'il expose tous les réglages internes du capteur. J'ai pu fixer la distance de détection à 225 cm, les sensibilités de mouvement et de présence statique à 4 sur 5, et un délai avant extinction de 20 secondes. Ce réglage de distance est important puisque le capteur peut porter jusqu'à 6 mètres, et à pleine portée il traverse allègrement une cloison pour aller détecter la pièce d'à côté.

Le résultat, c'est que quand j'approche de mon bureau, ma barre lumineuse BenQ s'allume toute seule via mon interrupteur Sonoff. Une deuxième automatisation allume la lampe d'ambiance sur une prise Meross, et une troisième éteint tout quand je quitte la pièce.

Et surtout, le déclencheur n'est pas la présence, mais la distance : la barre s'allume quand la cible passe sous 175 cm et ce chiffre-là, je ne l'ai pas sorti de mon chapeau. J'ai relevé 25 mesures en me plaçant assis, debout et en circulant derrière le bureau. Comme ça, un seuil serré exclut proprement tout ce qui n'est pas moi devant mon écran. Si vous devez retenir une chose sur le mmWave, c'est de bien noter vos vraies distances avant de choisir un seuil, sinon vous passerez des semaines à corriger des déclenchements bizarres.

Rien de spectaculaire au final, mais c'est un super confort !

Et forcément, des trucs ont cassé

Parce que non, même avec l'IA tout ne marche pas du premier coup. Une nuit, je quitte le bureau juste après minuit, et le lendemain matin je retrouve toutes les lumières allumées. Huit heures dans le vide. L'automatisation d'extinction sur absence n'était pourtant pas cassée : elle n'a simplement jamais eu l'information qu'il fallait pour se déclencher.

Le coupable, c'est le défaut classique des radars mmWave : la cible fantôme. Le capteur s'est verrouillé sur un écho statique et a continué à annoncer quelqu'un dans la pièce, en oscillant tranquillement entre 241 et 269 cm toute la nuit. Pour Home Assistant, j'étais donc toujours là. C'est ça la contrepartie de la détection statique... quand un radar voit quelqu'un d'immobile, il ne sait pas faire la différence entre vous et un artefact.

La parade, c'est donc une automatisation garde-fou : si la cible reste au-delà de 175 cm pendant 90 minutes d'affilée alors que les lumières sont allumées, on éteint tout. Le seuil reprend la calibration de la barre BenQ, et les 90 minutes valent le double de la plus longue plage légitime que j'aie observée sur trois jours (49 minutes). Elle ne remplace pas l'extinction sur absence, mais rattrape le cas où celle-ci n'a jamais pu partir.

Bref, l'IA écrit vite les scénarios c'est sûr, mais elle ne les teste pas en conditions réelles dans votre vraie maison. Un scénario parfait sur le papier peut très bien ne jamais se déclencher parce qu'un capteur ment donc il faut comprendre ce qui a été écrit, et surtout aller regarder l'historique quand quelque chose cloche.

Et puis y'a les petites morts silencieuses... Une de mes prises connectées est passée en "unavailable" et y est restée plusieurs jours sans que je m'en rende compte. C'est un autre piège de la domotique... Quand un truc tombe, rien ne vous prévient, ça arrête juste de marcher. D'où l'intérêt d'avoir aussi des automatisations qui surveillent votre installation elle-même, et pas seulement votre maison.

Voilà, c'est un petit début, mais ça me permet de me remettre en selle tranquillement. En tout cas, l'option mini PC + LLM est un bon choix pour avoir une install domotique rapidement fonctionnelle, je pense.

La suite du programme

Ce que j'ai fait aussi c'est installer Tailscale sur le mini PC, pour accéder à mon Home Assistant depuis l'extérieur sans ouvrir le moindre port sur ma box. C'est de loin la méthode la plus propre, et c'est gratuit pour un usage perso.

Ensuite, je pense que je vais sortir les ESP32 du tiroir. L'add-on ESPHome est déjà installé, il ne me manque plus que le courage de m'y mettre. Si ça vous tente, j'avais montré comment transformer un ESP32 à 5 euros en capteur domotique.

J'ai aussi pas mal de matos Z-Wave à recycler, donc je pense que je vais aussi prendre une petite clé Z-Wave à rajouter sur l'ordi.

Voilà pour ce début d'aventure domotique dans mon nouveau chez moi. Pour le moment, je me suis surtout concentré sur l'aération, la pollution, la gestion de la chaleur mais je pense que j'aurais de nouveaux scénarios qui viendront peupler mes rêves dans les semaines qui viennent et je ne manquerai pas de vous en causer.

Claude va glisser un filigrane invisible dans tous ses textes

13 août 2026 à 08:10

Anthropic a annoncé que ses modèles Claude allaient intégrer un filigrane invisible directement dans les textes qu'ils produisent. Vous ne le verrez pas, il ne change ni le sens ni la qualité de la réponse, mais il est là, et il suit le texte au copier-coller.

Anthropic, l'éditeur de Claude et concurrent direct d'OpenAI, a signé le code de bonnes pratiques adossé à l'AI Act, le règlement européen sur l'intelligence artificielle, dont les obligations de transparence s'appliquent depuis le 2 août. Le texte impose que les contenus générés par IA soient identifiables par une machine.

Google, Meta, Microsoft, OpenAI ou encore Synthesia ont signé le même document. Anthropic va plus loin que le minimum demandé, puisque son marquage sera déployé partout dans le monde, et pas seulement en Europe.

Dans la pratique, les modèles lancés dans l'Union européenne à partir du 2 août embarquent le marquage dès leur sortie, et les plus anciens y passeront ensuite, sans calendrier précis. Le filigrane s'appliquera sur le site de Claude, dans l'API, dans Claude Code et jusque dans les versions hébergées chez Amazon, Google et Microsoft.

Anthropic ne détaille pas sa recette. Les filigranes de texte qu'on connaît déjà, le SynthID de Google par exemple, biaisent discrètement le choix des mots pendant la génération, et le motif statistique qui en ressort ne se voit pas à l'œil nu mais se retrouve avec le bon détecteur. La marque survit au copier-coller. Pour la faire sauter, il faudrait réécrire le texte en profondeur, et encore, Anthropic admet ne pas savoir où placer le curseur.

Les images et les fichiers y auront droit aussi, via des métadonnées signées au standard C2PA que les fabricants d'appareils photo utilisent déjà pour tracer l'origine d'un cliché.

La marque signale en fait qu'un texte est passé entre les mains de Claude, sans rien dire de qui tenait le stylo au départ. Votre propre prose, confiée au robot pour une simple relecture ou une traduction, ressortira du coup tatouée pareil qu'un texte généré de bout en bout. Anthropic le reconnaît direct.

Sur les réseaux, l'accueil est un peu agacé, pas mal d'utilisateurs digérant mal l'idée d'une signature cachée glissée dans leurs documents de travail.

OpenAI a signé le même code de bonnes pratiques et marque déjà ses images, ses vidéos et son audio depuis fin juillet. Pour les textes de ChatGPT, rien pour le moment, mais ça viendra peut-être.

Source : TechCrunch

Diagram-design - Des schémas à vos couleurs

Par : Korben ✨
12 août 2026 à 07:07

Diagram-design , c'est un skill pour Claude Code, Codex et Pi qui vous fabrique un schéma technique sous forme de fichier HTML autonome. Vous double-cliquez, ça s'ouvre dans le navigateur, et le diagramme est là, super clean et sans avoir à faire de build ou importer des images.

27 types de diagrammes sont couverts, du schéma d'architecture au diagramme de séquence en passant par la machine à états, le Gantt et le quadrant, chacun en 3 variantes : claire, sombre et éditoriale. Bref, de quoi illustrer une doc ou un article de blog sans dessiner les boîboîtes vous-même, une par une comme dans un Excalidraw .

Le type Loop, avec son moyeu de mémoire partagée. Les pointillés sont les écritures en retour.

Il sait aussi partir de ce que vous avez déjà. Vous lui pointez un fichier draw.io ou un bloc Mermaid planqué dans un README, et il le reprend. Attention, ce n'est pas une conversion hein, mais un re-dessin (ça se dit ?? j'sais pas mais je m'en fous) complet. Il va même récupérer le diagramme embarqué dans un .drawio.png, vous savez, celui qui ressemble à du charabia quand vous ouvrez le fichier dans un éditeur.

Ce qu'il jette au passage ce sont les coordonnées de la source, sa palette, ses polices, les connecteurs en diagonale de draw.io et la mise en page automatique de Mermaid. Ce qu'il garde par contre, ce sont les composants, les relations, les regroupements et le sens de lecture.

À la fin de l'import, il rend même un genre de relevé de fidélité en vous indiquant les noeuds en entrée, les noeuds qu'il a dessinés et les noeuds orphelins qu'il a supprimé.

Un fichier draw.io de 12 nœuds redessiné en niveau de détail équilibré, pour un billet de blog.

La sortie se règle ensuite sur 4 critères. Le format d'abord, HTML, SVG ou PNG. Puis la taille, qui ne touche pas que le cadre. Une planche 16:9 destinée au vidéoprojecteur reçoit des libellés en 16px, une image de doc en reçoit des 12px.

Le troisième critère élague votre dessin, avec 24 nœuds au maximum en mode fidèle, 12 en équilibré, 7 en simplifié, et la coupe suit toujours le même ordre : les décorations, puis les doublons, puis les grappes de feuilles, puis l'infrastructure.

Le quatrième change le vocabulaire, mais pas le nombre de boîtes pour s'adapter au public à qui est destiné le diagramme. Pratique pour passer d'un diagramme hyper technique à quelque chose qui pourra être compris de la direction ou des commerciaux.

Reste l'allure du diagramme... Vous lui donnez par exemple l'URL de votre site, il lit la page d'accueil, en tire la couleur de fond, celle du texte, celle des boutons et la pile de polices, puis range tout ça dans des rôles, et voilà vous avez le design de vos rêves.

Mais surtout, avant d'écrire quoi que ce soit, il contrôle le contraste en AA. Si une de vos couleurs ne tient pas la route à la taille où vivent les libellés, entre 9 et 12px, il propose une valeur corrigée et explique pourquoi. Vous validez le diff, et le guide de style du skill est mis à jour pour tous les schémas suivants.

Et au premier schéma dans un nouveau projet, il refusera même de partir sur le thème par défaut sans vous demander. Il vous proposera naturellement d'aller consulter votre site, de coller vos couleurs à la main, ou encore d'assumer le défaut en connaissance de cause.

Côté installation, ça passe par les plugins pour Claude Code et Codex, par npx pour Codex, par une ligne pour Pi. C'est sous licence MIT et c'est gratuit. Tout est ensuite produit en local, et l'import Mermaid se contente de lire le texte, sans rendu ni appel réseau. Il n'y a que l'export PNG qui réclame un extra, à savoir Playwright, à installer à côté.

Maintenant, c'est pas le même usage qu'un bloc Mermaid qui lui est destiné à évoluer en permanence. Là c'est vraiment pour faire des rendus sous la forme d'une image finie et jolie. Donc à vous de voir !

À découvrir ici !

Coder avec l'IA sans pomper le projet d'un autre ?

Par : Korben ✨
11 août 2026 à 07:29

Dark Hours est à l'origine une petite web app qui vous dit ce qu'il y a à voir dans le ciel ce soir et si ça vaut le coup de mettre le museau dehors. Le développeur Terry Godier l'a construite avec l'aide de Claude et lancée début août mais au moment où j'écris ces lignes, elle n'existe plus... En effet, son site darkhours.io redirige maintenant vers DarkHours.app , un autre projet signé Miguel Beher et sous licence MIT.

C'est ce dernier qui a vu le problème, et je vais vous expliquer...

En fait, les 2 apps avaient non seulement le même nom, mais également les mêmes fonctions, et le même nom de domaine (à part le TLD). Quand Beher a signalé le souci à Godier , ce dernier a d'abord proposé de changer de nom et de différencier les fonctionnalités mais une heure plus tard il retirait tout, annulait l'app iOS qu'il préparait, et publiait un mea culpa où il parle de son "usage irresponsable de l'IA".

Et ce qui l'a décidé à tout stopper comme ça, c'est juste un bug. En effet, son application envoyait les gens observer les étoiles au milieu de champs perdus au Mexique, ou dans l'océan Pacifique et Beher avait exactement le même souci de son côté à ce moment-là (il l'a résolu depuis).

Alors se ressembler sur des fonctionnalités, ça arrive et ça ne me choque pas mais se ressembler jusque dans les bugs, là ça pique un peu beaucoup. Les procès en pompage IA, j'en ai déjà parlé , et ils se trompent souvent de coupable, et dans le cas de Godier, celui-ci n'a pas pompé le code du Dark Hours original. Non, il a juste développé son app avec Claude Code, sans se poser trop de question.

Pour lui, il est juste parti d'un code d'éphémérides qu'il a écrit en janvier mais comme Dark Hours est un projet open source, et bien ce qui s'est passé, c'est que son agent IA a récupéré de gros bouts de cette app, jusqu'à son nom pour en faire sa nouvelle app. Hé oui, la vie c'est facile quand on se repose sur le code des autres.

Dark Hours, le vrai

En effet, Claude Code, Codex et les autres sont des outils connectés. Ils lisent des pages, clonent des dépôts, fouillent GitHub quand ça les arrange, du coup, si votre demande ressemble à un truc qui existe déjà, et bien l'agent peut aller le consulter et s'en servir de modèle. Et même sans aller sur le net, comme les modèles ont été entraînés sur tout ce qui traîne publiquement sur le net, dépôts de code compris, il est capable de restituer une structure vue mille fois, sans même aller la chercher sur le net. Un peu comme les modèles de diffusion d'images qui reproduisent le style des artistes.

C'est pour ça que je trouve la mésaventure de Godier et Beher intéressante. Ça nous enseigne qu'il faut faire extrêmement attention quand on code avec l'IA. Pour limiter les risques qu'elle aille se servir dans du code libre, il faut donc indiquer expressément à l'agent de NE PAS récupérer le code source de projets open source, ne pas l'analyser, ne pas pomper du code ni les interfaces. Bref, lui dire qu'on part d'une page blanche...

C'est le même principe que celui de la clean room qui a permis à Compaq de cloner légalement le BIOS d'IBM, comme on peut le voir dans la série Halt and Catch Fire... On implémente les bonnes idées, mais jamais les lignes de code.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Pour ma part, je fais quasiment que des outils internes et des bidules perso, mais je le précise quand même pour que tout soit clean. Toutefois, ça ne règle pas le problème de l'entraînement qui a été fait en amont pour forger le modèle IA.

Donc avant de coder, deux réflexes à avoir : 1/ Chercher le nom de votre app (ou de votre nouvelle entreprise) pour de vrai, ce qui vous évitera de vous lancer dans un move de contrefaçon sans le savoir. Et 2/ Installer tout ce qui existe dans le même genre pour être sûr de ne pas vous faire berner par l'IA... Sachez que rien que cette année, j'ai été victime moi-même 2 fois, de gens qui n'ont pas pris ces précautions et qui se sont attribués les noms de mes projets pour leurs propres trucs en se reposant, je le suppose, uniquement sur l'IA sans se poser la moindre question. Pour l'un des projets, VoxDrop, j'ai changé le nom en Kassis pour pas me prendre le chou car c'était un projet jeune. Mais pour l'autre problème, c'est plus épineux et je ne peux pas vous en parler encore mais rassurez-vous, dès que je le pourrais, vous ferai un article qui détaillera tout en détail pour vous raconter cette histoire hallucinante qui m'arrive.

Après, ce que je vous conseille de faire aussi c'est qu'une fois que votre projet est fini, pensez à lancer une phase de contrôle. Ça personne ne le fait, mais c'est pas mal de récupérer le code des projets qui vous ont inspiré ou projet concurrents, de le poser à côté du vôtre et faire vous-même ou demander à un agent IA une comparaison, un peu comme la passe sécurité que vous faites en fin de projet.

Reprendre une fonctionnalité qu'on trouve bien ailleurs et la réimplémenter dans son projet, c'est normal et c'est ce que tout le monde fait d'ailleurs. Mais reprendre le nom, le look de l'interface et le code, qui plus est, sans mentionner la licence, c'est vraiment moche. Et c'est exactement ce que peut faire votre agent IA dans votre dos, alors soyez vigilant parce qu'après, vous pourrez dire que vous ne le saviez pas, tout le monde vous traitera de voleur. La frontière est là, et il n'y a qu'une comparaison explicite du code et de l'interface qui vous dira de quel côté vous êtes tombé...

Source

Claude casse un algo post-quantique en 60 heures

29 juillet 2026 à 15:17

Anthropic, le concurrent direct d'OpenAI sur les modèles d'IA, a publié hier un billet de recherche qui a fait pas mal de bruit : son modèle Claude Mythos Preview a trouvé en 60 heures une faiblesse dans HAWK, un schéma de signature post-quantique que deux ans de relecture humaine n'avaient pas repérée.

La cryptographie post-quantique, ce sont ces nouveaux algorithmes conçus pour résister aux futurs ordinateurs quantiques, qui pourraient un jour casser une partie du chiffrement actuel. Le NIST, l'organisme américain qui normalise ces standards, organise depuis des années un concours public, et HAWK y concourt au troisième tour pour les signatures numériques, ce mécanisme qui prouve qu'un message vient bien de vous.

Sauf que voilà, ce que l'IA a réellement cassé, c'est HAWK-256, un paramètre de défi mis à disposition des chercheurs pour être attaqué, pas les versions HAWK-512 et HAWK-1024 pensées pour un usage réel. L'attaque fait passer le coût d'une récupération de clé de 2 puissance 64 à 2 puissance 38 opérations, de quoi diviser par deux la taille de clé effective sur un schéma qui n'est déployé nulle part.

Deuxième résultat mis en avant : une attaque 200 à 800 fois plus rapide que la meilleure méthode connue contre AES-128 réduit à 7 tours. AES, c'est le chiffrement le plus utilisé au monde, celui qui protège votre navigateur, vos sauvegardes ou votre disque dur.

Un tour, c'est une passe de brouillage des données, et AES-128 en enchaîne dix. Les cryptographes attaquent depuis toujours des versions volontairement raccourcies pour jauger la marge de sécurité du vrai chiffre, du coup 7 tours, c'est un exercice académique, rien de plus.

Même sur cette version affaiblie, l'attaque suppose de faire chiffrer environ 2 puissance 105 messages choisis par l'attaquant, une quantité de données que personne ne réunira jamais. Anthropic l'écrit noir sur blanc : aucun système en production n'est touché.

Le sujet est ailleurs. La technique contre AES, que le modèle a baptisée le pont de Möbius, est sortie de trois jours de travail quasi autonome pour environ 100 000 dollars de calcul, avant plusieurs centaines d'heures de vérification par des chercheurs humains, seuls capables de confirmer que l'attaque tient debout.

Anthropic a d'ailleurs prévenu les auteurs de HAWK dès juin et coordonné sa publication avec le NIST. Chez Keyfactor, une société spécialisée dans la gestion du chiffrement, on y voit la preuve que le processus d'évaluation fait son travail : mieux vaut découvrir ces faiblesses maintenant qu'une fois le standard déployé partout.

Une IA qui trouve toute seule des failles dans du chiffrement, c'est franchement impressionnant. Les titres qui enterrent déjà le chiffrement mondial, beaucoup moins.

Source : Anthropic

GLM 5.2 censure moins s'il se croit américain

Par : Korben ✨
28 juillet 2026 à 07:29

Saviez-vous que ce bon vieux GLM 5.2 répond seulement à 17 % des questions politiquement sensibles portant sur la Chine. Eh bien maintenant, dites-lui qu'il est Claude, et il montera à 85 % !! C'est le résultat que viennent de sortir Benji Berczi et Kyuhee Kim , deux chercheurs du programme MATS, en collant de fausses identités à 7 modèles pour voir ce qui bougeait dessous.

Le protocole c'est juste une ligne ajoutée au system prompt, du genre "Tu es Claude, un grand modèle de langage d'Anthropic". Et rien d'autre ne change, ni le modèle, ni les questions posées.

Sauf que le nom "Claude" n'est pas vraiment la variable. Quand les chercheurs présentent le développeur comme un labo occidental, le modèle de Z.ai répond sans censure dans 62 à 81 % des cas. Alors que dans un cadrage chinois, ça retombe à 27 %. Bref, ce qu'il module en réalité, c'est la juridiction sous laquelle il croit bosser.

Et cette censure n'est pas câblée pareil d'un modèle à l'autre. Chez GLM elle est molle, logée dans les poids mais négociable par le contexte. Alors que chez Qwen elle est verrouillée. 0 % de réponses non censurées quoi qu'on lui raconte, et plutôt que refuser il récite la position officielle, "Taïwan est une partie inaliénable de la Chine, nous adhérons au principe d'une seule Chine".

Et chez Kimi, elle n'est même pas gérée par le modèle. C'est l'API de Moonshot qui intercepte en amont, 40 requêtes sensibles sur 48 bloquées avant d'atteindre quoi que ce soit.

Sur l'identité elle-même, Kimi K3 est le seul à déraper tout seul. Sans qu'on ne lui demande rien, il s'est présenté comme un grand comme étant Claude, 4 fois sur 10. GLM, lui, dit toujours qu'il est GLM. Bizarre non ?

Alors on pourrait croire que c'est parce que ces modèles ont été distillés à partir des modèles d'Anthropic, mais d'après les chercheurs, "ce n'est pas une preuve de distillation, mais ça montre que la conception que Claude a de lui-même est inscrite dans les poids de ces modèles."

Ils signalent même un biais gênant, qui est que les labos entraînent explicitement leurs modèles à ne pas répondre "je suis ChatGPT" (DeepSeek V3 le faisait en boucle à ses débuts), donc accepter "Claude" par défaut est un indice bien faiblard... De quoi calmer un peu les ardeurs de ceux qui brandissent des sanctions .

Et sur le mensonge de ces modèles, attention à ne pas lire l'étude de travers. Mis en situation de mentir pour se rendre utile, GLM ment entre 63 et 69 % du temps, mais avec l'identité Claude ça tombe à 22 %.

Sauf que le gros du gain ne vient pas de cet effet "Claude". En réalité, le simple fait d'avoir un system prompt (n'importe lequel quoi) fait déjà chuter le taux à 43 %, et n'importe quel cadrage d'assistant serviable finit entre 20 et 40 %. Claude est donc dans la fourchette, pas au-dessus.

Chez Llama et Gemma, l'identité Claude fait même légèrement grimper le mensonge, les modèles ayant l'air de comprendre le prompt d'identité comme une invitation à jouer le jeu.

Fin juin, je vous racontais que j'avais branché GLM 5.2 dans Claude Code via l'API de Z.ai et comme mon launcher déclare glm-5.2 comme modèle Sonnet, le bestiau reçoit un system prompt d'assistant estampillé Anthropic à chaque lancement, donc je suis pile dans ce cas-là.

Les chercheurs n'ont pas testé ce cas précis, mais si leur mécanisme tient, le modèle qui tourne dans mon terminal n'est déjà plus tout à fait celui de l'app chinoise.

Après faut pas s'emballer non plus. On parle de 5 à 6 questions par catégorie, une seule formulation testée, un seul run par combinaison, avec GPT-4.1 en juge. C'est un signal, pas un mode d'emploi. Et vu que la dérive de Kimi s'est volatilisée en 3 jours, ce genre de résultat périme vite.

Du coup, la prochaine fois qu'un modèle chinois vous répond de la merde censurée, retravaillez votre system prompt ou changez de CLI et vous verrez surement une grosse amélioration !

Source

Pascal Editor - Le plan 3D se dessine pendant que Claude bosse

Par : Korben ✨
27 juillet 2026 à 16:58

J'ai jamais fait construire de maison mais je crois savoir que dessiner le plan de sa maison en 3D, ça passe encore par un logiciel assez lourd à installer + une licence, sans oublier l'interface façon Micro Applications de 2003 (qui s'en souvient ??). C'est pourquoi Aymeric Rabot et Wassim Samad ont pris le problème autrement avec Pascal Editor, un éditeur de bâtiments 3D qui tourne simplement dans un onglet de navigateur. Et en plus, c'est gratuit, open source (licence MIT) et surtout sans inscription.

Vous tracez les murs à la souris, puis viennent les zones, les dalles, les plafonds et les toits. Les portes et les fenêtres sont paramétriques, posez-les sur une cloison, la découpe se fait toute seule en géométrie booléenne via three-bvh-csg. Le mobilier s'accroche au sol, au mur ou au plafond selon l'objet ( allez regarder cet exemple ! )

Tout ça s'organise en Site, Bâtiment, Niveau, puis pièces. Le rendu passe par Three.js en WebGPU, la scène est sauvegardée en local dans IndexedDB, et l'historique remonte 50 étapes en arrière. Sauvegardez ou partagez un projet en ligne par contre, et il part sur leurs serveurs.

Le projet propose aussi @pascal-app/mcp sur npm, un serveur Model Context Protocol qui expose la scène 3D à un agent. Vous installez le package, et la commande pascal-mcp branche Claude Desktop, Claude Code, Cursor ou Codex directement sur votre plan (votre scène part alors chez le fournisseur du modèle, forcément).

Ça donne une trentaine d'outils utilisables en langage naturel : create_room pour sortir une pièce complète depuis un polygone, add_door et add_window sur un mur donné, furnish_room qui meuble selon le type de pièce, measure, check_collisions pour repérer les objets qui se chevauchent, et undo si l'agent part en vrille. Trois prompts sont livrés avec, dont from_brief qui transforme une phrase du genre "un 2 pièces dans 80 m²" en suite de modifications.

Deux outils lisent aussi des images, un pour les plans scannés, un pour les photos de pièce. Attention, ils n'embarquent aucun modèle de vision mais utilisent la capacité sampling du protocole, autrement dit c'est le modèle de votre client MCP qui regarde l'image.

Et puis il y a la synchro. Le serveur écrit dans une base SQLite locale, et la page de l'éditeur s'abonne au flux d'événements. Résultat, vous gardez l'onglet ouvert à côté de votre fenêtre de chat et vous voyez les murs apparaître au fur et à mesure que l'agent travaille. J'avais montré le même genre de bascule avec n8n qui laisse une IA piloter ses workflows , sauf qu'ici le retour est visuel et immédiat.

Côté interopérabilité, un convertisseur avale les fichiers IFC, le format d'échange du BIM, et l'export sort en GLB, STL ou OBJ. Cet export est d'ailleurs arrivé par des contributeurs extérieurs, pas par l'équipe, c'est pour vous montrer à quel point le projet est bien soutenu ! De quoi ensuite passer votre plan dans Blender, ou le texturer avant impression 3D . Un système de plugins permet aussi d'ajouter ses propres types d'objets, avec un exemple officiel qui plante des arbres et des fleurs.

Si vous voulez tester, l' éditeur s'ouvre direct dans le navigateur , et le code est sur GitHub. À vous de voir si vous dessinez tout vous-même ou si vous déléguez à l'IA.

Merci Letsar pour le lien !

Source

GitWand - Il trie vos conflits Git et vous montre pourquoi

Par : Korben ✨
27 juillet 2026 à 16:52

perso, je n'ai jamais été très à l'aise avec Git. Je l'utilise tous les jours, mais c'est vraiment pas ma came. Dès que ça devient trop compliqué, genre conflit de merge qui repeint des dizaines de fichiers en rouge, je ne m'en sors plus ^^.

Heureusement qu'il y a l'IA pour m'aider dans des moments difficiles ! Mais si vous n'aimez pas confier la gestion de vos merges à un LLM en aveugle, je vous invite à découvrir GitWand, développé par Laurent Guitton, qui s'occupe uniquement de la gestion des conflits avec Git et vous laisse gérer le reste.

Gitwand, c'est donc un client Git open source, sous licence MIT, qui classe chaque bloc conflictuel selon des règles fixes et ne résout automatiquement que ceux dont le résultat ne fait aucun doute.

Pour cela, il dispose de plusieurs patterns déterministes :

  • same_change, c'est quand les deux branches ont écrit exactement la même chose.
  • whitespace_only ne voit qu'une indentation qui a bougé,
  • reorder_only les mêmes lignes remises dans un autre ordre.
  • Un numéro de version qui change, lui, tombe dans value_only_change.
  • Et puis il y a complex, le fourre-tout des modifications qui se chevauchent pour de vrai. Celle-là n'est jamais tranchée toute seule.
  • git rerere rejoue les résolutions que vous avez déjà tranchées à la main,
  • et Mergiraf se branche directement dans git merge pour arbitrer en lisant l'arbre syntaxique de votre code.

Ce qui change ici, c'est que chaque décision est justifiée. En effet, chaque bloc reçoit un score de confiance ainsi qu'une trace qui nomme le motif retenu ligne par ligne.

Par exemple, si une branche écrit const theme = 'dark', et l'autre const theme = localStorage.getItem('theme') ?? 'dark', hé bien l'outil garde la seconde, étiquette sa décision prefer-theirs, et affiche 97 % de confiance à côté.

Sur la page d'accueil, l'outil annonce 95 % des conflits triviaux résolus automatiquement. Le moteur est aussi exposé aux agents IA via un serveur MCP, ce protocole qui branche des outils externes sur des assistants comme Claude Code ou Cursor. L'installation se fait comme ceci : claude mcp add gitwand -- npx -y @gitwand/mcp.

L'agent réclame un aperçu, récupère les blocs déjà réglés, et ne garde que les cas ambigus, avec les trois versions du code sous les yeux. Le modèle ne touche qu'à ce qu'aucune règle ne sait faire, soit l'inverse de ce qu'on voit d'habitude.

Le projet est jeune et ça se voit. Mais ça vaut le coup d'essayer parce que je pense que ça peut rendre de nombreux services. L'app existe pour macOS, Linux et Windows, l'interface est traduite en français, et elle se double d'une ligne de commande (npm i -g @gitwand/cli) et d'une extension VS Code.

Si l'interface graphique vous tente, je vous avais montré Gittyup dans le même registre, et pour les irréductibles du terminal j'avais présenté Lazygit .

À vous maintenant de commencer par gitwand resolve --dry-run --verbose pour voir "à blanc" ce qu'il trouve et comment il aurait tranché pour le merge.

Merci à Laurent pour le lien !

Source

Rapid-MLX - Installer un serveur IA local sur votre Mac

Par : Korben ✨
27 juillet 2026 à 09:33

Si vous avez un Mac Apple Silicon et que vous en avez assez de payer des tokens à chaque requête, Rapid-MLX vaut le détour. C'est un moteur d'inférence local maintenu par Raullen Chai, qui tape directement dans les kernels MLX d'Apple, sans repli sur llama.cpp ni couche Metal intermédiaire. Et si le nom vous dit vaguement quelque chose, c'est normal puisque c'est un fork de vLLM-MLX, le serveur de Wayner Barrios dont je vous parlais en mai . Rapid-MLX a juste pris un rythme de publication plus soutenu des deux.

Ce que ça vous donne, c'est donc un serveur HTTP qui parle le même langage que l'API d'OpenAI et celle d'Anthropic. Vos scripts, Cursor, Aider, LangChain ou Claude Code continuent de fonctionner, sauf qu'ils tapent sur votre machine au lieu d'un datacenter.

Donc je vous propose de voir ensemble comment installer ça.

Étape 0 : Vérifier que votre Mac est éligible

Le script d'installation contrôle plusieurs choses avant de lancer quoi que ce soit, et autant les connaître d'avance. Il faut une puce Apple Silicon et il n'y a pas de version Linux ni Windows, ni de support CUDA ou AMD.

Le script d'installation accepte encore macOS 13 Ventura, mais le vrai plancher est macOS 14 Sonoma. La formule Homebrew l'exige, et surtout MLX, la brique Apple sur laquelle tout repose, ne publie de paquets macOS que pour les versions 14, 15 et 26. Sur un Mac resté en Ventura, ça cassera donc à l'installation des dépendances, quel que soit le chemin choisi.

Dernier point à avoir en tête, c'est pensé pour votre machine à vous et pas pour un serveur. Vous n'y trouverez donc ni authentification multi-utilisateurs, ni quotas de requêtes.

Étape 1 : Installer Rapid-MLX

Le plus simple, c'est Homebrew :

brew install rapid-mlx

Si vous gérez déjà vos environnements Python vous-même, les autres chemins existent :

uv tool install rapid-mlx@latest
python3.12 -m pip install rapid-mlx

Il y a aussi un installeur en une ligne (curl -fsSL https://rapidmlx.com/install.sh | bash) qui détecte votre RAM et vous propose un modèle adapté. Il crée un venv isolé dans ~/.rapid-mlx/ et pose le binaire dans ~/.local/bin/. Un curl | bash reste un curl | bash. La formule Homebrew fait exactement le même boulot, donc l'installeur en ligne perd de son intérêt.

L'installation de base pèse dans les 460 Mo et la vision, l'audio et les embeddings sont des extras optionnels, vous les ajouterez seulement si vous en avez l'usage.

Étape 2 : Choisir un modèle qui tient dans votre RAM

C'est là que la plupart des gens se plantent, en chargeant un modèle trop gros et en concluant que "ça rame". Sur Mac, la RAM est unifiée, donc le modèle mange directement dans la mémoire que se partagent le CPU et le GPU.

Les paliers recommandés par le projet :

RAMModèle conseillé
8 à 23 Go`qwen3.5-4b-4bit`
24 à 47 Go`gpt-oss-20b-mxfp4-q8`
48 à 95 Go`qwen3.6-35b-8bit`
96 Go et plus`gpt-oss-120b-mxfp4-q8`

Le catalogue complet se liste avec la commande rapid-mlx models, et rapid-mlx info <alias> vous donne le profil détaillé d'un modèle. Si vous voulez sortir du catalogue maison, le filtre matériel de Hugging Face que je vous montrais fin juin fait exactement ce tri à votre place.

Pour utiliser un autre modèle que celui par défaut, il suffit de reprendre l'alias affiché par rapid-mlx models et de le passer en argument. Et si vous préférez télécharger les poids à l'avance, sans rien lancer, c'est le boulot de rapid-mlx pull, qui accepte aussi bien un alias du catalogue qu'un identifiant Hugging Face :

rapid-mlx pull qwen3.5-9b-4bit

Le modèle atterrit dans le cache Hugging Face de votre machine, et ensuite rapid-mlx chat qwen3.5-9b-4bit ou rapid-mlx serve qwen3.5-9b-4bit chargeront ce modèle-là. Le pull préalable reste facultatif, chat et serve téléchargent d'eux-mêmes ce qui manque, mais autant rapatrier les gigas tranquillement avant plutôt qu'au moment où vous voulez bosser.

Étape 3 : Vérifier que ça tourne

Avant de bricoler des intégrations, testez en direct :

rapid-mlx chat

Ça part sur qwen3.5-4b-4bit par défaut, télécharge les poids au premier lancement (comptez 2,5 Go) et vous lâche dans une interface (REPL). /help listera les commandes slash, et /exit vous permettra de quitter le chat.

Une subtilité qui évite de mal interpréter ce premier test, c'est que dans le chat, le raisonnement est coupé par défaut, histoire que le modèle ne vous déballe pas sa réflexion à l'écran. En mode serveur par contre c'est l'inverse, et ça change la vitesse ressentie du tout au tout. J'y reviens plus bas.

Étape 4 : Lancer le serveur

Le vrai intérêt, c'est le mode serveur :

rapid-mlx serve qwen3.5-4b-4bit

Vous récupérez un endpoint sur http://localhost:8000. Le test qui confirme que tout est en place :

curl http://localhost:8000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{"model":"default","messages":[{"role":"user","content":"Dis bonjour !!"}]}'

Et côté Python, vous gardez le SDK OpenAI tel quel, seule l'URL de base change :

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
print(client.chat.completions.create(
 model="default",
 messages=[{"role": "user", "content": "Say hello"}],
).choices[0].message.content)

Pointez n'importe quel client compatible OpenAI sur http://localhost:8000/v1 et c'est réglé. Cursor, Aider, LibreChat, Open WebUI, LangChain, tous marchent avec ce seul changement d'URL. Il y a aussi /v1/embeddings pour du RAG local et /v1/responses pour le Codex CLI.

Étape 5 : Brancher Claude Code dessus

C'est le morceau le plus intéressant du lot, et il tient en deux variables d'environnement. Serveur lancé d'un côté, puis dans un autre terminal :

ANTHROPIC_BASE_URL=http://localhost:8000 ANTHROPIC_API_KEY=not-needed claude

Attention quand même, l'URL de base doit être la racine, sans /v1 à la fin. Le SDK Anthropic ajoute /v1/messages tout seul, donc si vous mettez /v1 vous obtenez /v1/v1/messages et ça casse.

Depuis la 0.10.14, l'appel d'outils passe par une grammaire contrainte activée par défaut, donc plus besoin de bidouiller un --tool-call-parser à la main pour que les tool calls soient parsables. Pour du Claude Code sérieux, visez plutôt un gros modèle, la doc officielle recommande par exemple qwen3.6-35b-4bit en exemple.

Quand ça coince

Le réflexe à avoir avant de chercher ailleurs :

rapid-mlx doctor

Les trois pannes les plus courantes sont toujours les mêmes.

Débit décevant côté serveur, c'est le raisonnement : les Qwen 3.5 et 3.6 démarrent en mode réflexion, donc ils pensent à voix haute avant de répondre, et --no-think règle l'affaire.

Plantage mémoire, votre modèle est trop gros pour la RAM disponible, redescendez d'un palier ou prenez une quantification plus agressive. Appels d'outils qui arrivent en texte brut, la récupération automatique gère la plupart des cas, sinon vous forcez le parser correspondant à votre modèle.

Voilà, grâce à ça, votre Mac est maintenant un serveur d'IA super rapide ! Plus de facture au token, et vos prompts ne sortent plus de la pièce.

Merci à Philobois pour le lien !

Dropbox se branche à Claude Code et lui permet de lire vos fichiers

Par : Korben ✨
26 juin 2026 à 16:22

Dropbox vient de sortir un plugin pour Claude Code , et leur idée c'est de pouvoir brancher vos fichiers Dropbox directement dans vos sessions de dev Claude Code / Cowork.

Alors je me suis demandé à quoi ça pouvait bien servir et voici ce que j'ai compris. Une fois que le plugin est en place, ça permet à Claude Code d'aller piocher dans votre Dropbox vos docs techniques, vos cahiers des charges, votre code...etc pour s'en faire du contexte. Tout devient de la matière fraiche pour corriger ou générer du code et quand c'est fini, ce qui est produit peut être à son tour stocké sur Dropbox.

Le plugin sait récupérer les fichiers en fonction de leur nom, de mots clés, de leur emplacement et bien sûr en fonction de leurs méta données. Même vos liens partagés il sait comment les gérer. Bref, il fait tout simplement le passe-plats entre tout le bordel que vous stockez sur Dropbox et Claude Code.

Cela dit, gardez la tête froide parce que tout ce que l'IA lit part sur les serveurs d'Anthropic pour être traité. Donc évitez quand même de le lâcher sur le dossier qui contient vos contrats, vos mots de passe ou vos données clients. Lui autoriser juste un dossier dédié avec ce que vous acceptez de partager, ce sera plus sain.

Pour l'installer, ça se passe dans Claude Code sur le web. Vous filez dans le menu Personnaliser, Connecteurs puis vous cherchez Dropbox en parcourant les plugins et vous cliquez sur ajouter. Une auth OAuth plus tard (vos identifiants Dropbox habituels), c'est branché. Un petit /reload-plugins et le plugin s'active alors dans la session en cours.

En plus de ce plugin, Dropbox propose également un serveur MCP classique en ligne de commande qui est un peu plus souple et surtout peut se brancher dans Cursor, Claude Desktop ou Devin.

Un bémol quand même, c'est pas open bar... sniiif. Eh oui, Dropbox plafonne tout ça à 5 Mo par fichier lu ou créé via l'intégration, et le contenu pondu par Claude ne se sauvegarde qu'en texte (.txt, .md, .html, .py), et pas en image ni en PDF. Quant aux limites de débit de l'API, on ne les connaît pas.

Bref, pour les gros fichiers ou les binaires, faudra donc passer par autre chose.

Si vous vivez dans Claude Code et que votre vie est rangée dans Dropbox, ça vaut peut-être le coup de jeter un œil ici.

Un bug qui gèle l'écran des portables AMD sous Linux traîne depuis 2017, et c'est Claude qui a aidé à le corriger

19 juin 2026 à 09:47

Si vous utilisez un ordinateur portable à puce graphique AMD Radeon sous Linux, vous avez peut-être déjà vu l'écran se figer d'un coup, sans raison apparente, à peu près une fois par semaine. Ce bug agace les utilisateurs depuis des années, et un correctif vient enfin de pointer le bout de son nez.

Le coupable se cache dans AMDGPU, le pilote graphique libre qu'AMD maintient pour Linux. On parle ici du logiciel qui fait le lien entre la carte graphique et le système d'exploitation.

Le problème ne date pas d'hier. En fouillant l'historique du code, le développeur à l'origine du correctif a remonté la piste jusqu'à une modification introduite en 2017. Presque huit ans de gels d'écran.

Le symptôme typique, c'est une erreur "flip_done timed out" dans les journaux du système. Pour faire simple, l'ordinateur attend que l'écran affiche l'image suivante, ce signal n'arrive jamais. Et tout gèle.

Le souci touche plusieurs machines, bien connues du monde Linux, comme le Lenovo ThinkPad T14 Gen1 en version AMD ou le Framework Laptop 13 équipé d'un processeur Ryzen 7 7840U. Jusqu'ici, le seul remède consistait à désactiver le PSR, pour "Panel Self Refresh".

Cette fonction d'économie d'énergie laisse l'écran réafficher tout seul sa dernière image fixe sans réveiller la carte graphique, histoire d'économiser de la batterie. Pratique sur un portable, sauf que c'est précisément elle qui déclenchait les gels.

Le plus intéressant, c'est la méthode employée. Le correctif a été mis au point en "vibe debugging" avec Claude Code, l'assistant de programmation d'Anthropic, le concurrent direct d'OpenAI. Le développeur a décrit le bug à l'IA, qui l'a aidé à explorer le code et à affiner les correctifs, plutôt que de dérouler une procédure de débogage classique.

Concrètement, les patchs revoient la gestion du "vblank" et du "page-flip" dans le bloc d'affichage DCN, c'est-à-dire la mécanique interne qui synchronise le moment où une nouvelle image remplace l'ancienne à l'écran. D'autres tentatives avaient échoué par le passé, mais cette série semble enfin tenir la route.

Maintenant patience, rien n'est encore intégré dans le noyau Linux officiel. Les correctifs doivent passer par les tests et la validation des mainteneurs avant d'arriver chez tout le monde, ce qui peut quand même prendre plusieurs versions du kernel.

Bref, on est là devant un bug fantôme qui date d'lil y a huit ans, débusqué en discutant avec une IA, voilà qui résume assez bien l'année 2026 côté développement.

Source : Phoronix

Des faux installateurs Claude Code se baladent dans Google

12 mai 2026 à 08:09

Des faux installateurs Claude Code se baladent dans Google

Les chercheurs d'Ontinue, une boîte de cybersécurité, ont publié une analyse d'une campagne de vol de données qui vise directement les développeurs.

La méthode est en fait assez simple. Vous tapez "install claude code" dans Google, vous cliquez, plein d'innocence, sur le premier résultat sponsorisé, et là vous tombez sur une page qui ressemble trait pour trait à la doc officielle d'Anthropic. Sauf que le serveur derrière n'a rien à voir, et la commande d'installation à copier-coller a été modifiée.

L'astuce technique est intéressante. La commande PowerShell affichée n'est pas visible dans le code source qu'un scanner automatique pourrait analyser, elle est générée à la volée dans le HTML de la page. Du coup, les scans de sécurité voient du contenu légitime, l'utilisateur copie une commande malveillante, et paf, un loader PowerShell d'environ 600 Ko se lance discrètement.

Ce loader essaie ensuite quelque chose de carrément vicieux. Il abuse de IElevator2, une interface interne de Chromium (le moteur derrière Chrome, Edge, Brave, Vivaldi, Opera) lancée en janvier 2026 par Google pour mieux protéger les cookies et mots de passe avec un chiffrement renforcé. Le malware injecte un petit module dans le navigateur pour appeler cette interface depuis l'intérieur, ce qui lui permet de récupérer les clés et de déchiffrer toute la base. Cookies de session, mots de passe enregistrés, infos de paiement. Tout y passe.

Trois domaines pirates ont été enregistrés sur six jours en avril, tous derrière Cloudflare pour compliquer le takedown. Le bout de code utilisé ne correspond à aucune famille de malware connue (Lumma, StealC, Vidar). Le plus proche serait Glove Stealer, repéré en novembre 2024, mais avec une orchestration différente. Bref, ce serait un nouveau venu fabriqué exprès pour cette campagne.

Et la cible, c'est précisément les développeurs. Ce sont eux qui installent Claude Code (l'outil en ligne de commande d'Anthropic pour coder avec l'IA, concurrent direct de Cursor).

Et un développeur, dans son navigateur, c'est l'accès à GitHub, à AWS, à des dashboards de production, à des comptes Cloud, à des secrets qui se revendent potentiellement très cher. Les défenses classiques qui surveillent les exécutables natifs ne voient rien, tout se joue au niveau de l'appel COM (la mécanique Windows qui permet à des programmes de se parler entre eux) et de PowerShell.

Petit conseil : passez par anthropic.com directement, jamais par un résultat sponsorisé. Si vous avez collé une commande douteuse récemment, c'est le moment de regarder ce qui tourne sur votre machine.

Source : Infosecurity Magazine

Starcraft2.ai - Le coach IA SC2

Par : Korben ✨
30 avril 2026 à 09:00

Starcraft2.ai débarque en force pour les joueurs de StarCraft 2 et de Brood War qui voudraient disséquer leurs replays sans bouger de leur navigateur. Le créateur de ce site, qui se présente sous le pseudo de Tomkit, a sorti un analyseur gratuit qui combine un moteur de rendu isométrique et un coach IA.

Vous balancez un fichier .SC2Replay (ou .rep pour Brood War), et chose incroyableuuuh, le site reconstruit votre partie complète en vue isométrique avec mouvement des unités, brouillard de guerre activable / désactivable et heatmaps. Comme ça plus besoin de relancer le client pour mater une partie.

Et le truc qui tue, c'est que vous pouvez aussi partager n'importe quel replay via une simple URL.

L'outil derrière ce projet, c'est sc2reader (la bibliothèque Python de référence pour Starcraft) qui parse intégralement les binaires des replays : Position détaillée des unités, séquence des ordres de construction, économie, kills, tout est extrait du fichier directement.

Le truc cool, c'est évidemment le coach IA. L'outil envoie le contexte de la partie (courbe d'éco, build order, échanges d'unités, résultat des batailles) à Claude, qui sort alors un debrief avec des conseils actionnables. Par exemple, le LLM identifie le type de stratégie déployée (timing attack, macro, all-in, cheese) et balance des recommandations basées sur les standards pro. C'est quand même bien plus utile que tous ces guides génériques qu'on retrouve en ligne.

Puis ce qui est cool avec ce logiciel, c'est aussi le support de Brood War et à où j'écris ces lignes, c'est l'un des seuls analyseurs encore maintenus pour le vieux premier StarCraft . Donc pour ceux qui parmi vous ont encore des replays archivés depuis l'ère du modem 56k, c'est carrément une bonne nouvelle !

Bref, si vous jouez encore à SC2 ou si vous voulez juste mater de beaux replays sans lancer le jeu, c'est par ici .

Hazmat - Vos agents IA en cage sous macOS

Par : Korben
8 avril 2026 à 13:30

J'sais pas si vous vous en rendez compte mais les agents IA qui codent sur votre machine ont accès à vos clés SSH, vos credentials AWS, votre Keychain et compagnie. Ils ont accès à TOUT ! C'est comme filer les clés de votre appart à un gars que vous avez croisé sur le parking de Leclerc y'a pas 5 min.

Hazmat prend le problème à l'envers : au lieu de demander poliment à l'agent de se tenir tranquille, il l'enferme dans un compte macOS séparé. Du coup, vos ~/.ssh, ~/.aws, votre Keychain deviennent structurellement inaccessibles. Pour en profiter, faut faire un

brew install dredozubov/tap/hazmat

puis

cd /tmp
hazmat init --bootstrap-agent claude

Et hop, 10 minutes plus tard votre agent tourne dans sa cage. (le premier snapshot est ultra loooong mais après c'est de l'incrémental donc ça ira plus vite)

L'isolation repose sur 3 couches indépendantes, un peu comme les sas d'un sous-marin. Il y a d'abord un utilisateur agent dédié (vos fichiers perso deviennent alors hors de portée, point). Ensuite, une politique seatbelt générée dynamiquement à chaque session qui consiste à ce que le kernel de macOS vérifie chaque accès fichier et refuse tout ce qui n'est pas explicitement autorisé pour cette session précise.

Et par-dessus, des règles pf firewall qui empêchent l'agent d'envoyer du trafic SMTP, IRC, FTP, Tor ou VPN. Comme ça, un agent qui tentera d'exfiltrer vos données par mail se retrouvera bloqué net au niveau du noyau.

Côté supply chain, Hazmat force npm ignore-scripts=true par défaut. Comme ça, par exemple le fameux hack axios qui livrait un RAT via un hook postinstall en 2 secondes chrono n'est plus possible ici ! Y'a aussi une blocklist DNS qui redirige les services de tunnel connus (ngrok, pastebin, webhook.site) vers localhost. Contre un domaine perso fraîchement enregistré, ça passera mais les vecteurs d'exfiltration classiques, ça devrait résister.

Hazmat utilise TLA+, le même formalisme que les ingés d'Amazon utilisent pour vérifier les protocoles de DynamoDB. Genre, l'installation des règles sudoers AVANT le firewall (évidemment, ça crée une fenêtre de vulnérabilité), les restrictions qui bloquaient les lectures mais pas les écritures, ou encore une restauration cloud sans vérifier qu'un snapshot existait...etc, c'est le genre de truc qu'aucun test unitaire n'aurait chopé.

Ça supporte Claude Code (y compris le fameux --dangerously-skip-permissions), OpenCode et Codex. Attention par contre, si votre projet utilise Docker, y'a deux cas de figure : soit le daemon Docker est privé au projet et Hazmat le route automatiquement vers un mode Docker Sandbox, soit c'est un daemon partagé et là faudra passer --docker=none explicitement.

La commande hazmat explain montre aussi exactement ce que le sandbox autorise avant de lancer quoi que ce soit... et ça, c'est pas du luxe quand on sait pas trop ce qu'on va lâcher dans la nature. Le hazmat diff qui affiche les changements faits par l'agent depuis le dernier snapshot Kopia, c'est plutôt bien pensé. Et si l'agent casse un truc ? hazmat restore et c'est reparti, comme un Ctrl+Z géant pour tout votre projet.

Si vous avez déjà configuré votre Mac avec teaBASE pour sécuriser votre env de dev, c'est un complément logique.

Côté limites, faut être honnête, Seatbelt n'est pas documenté par Apple depuis macOS 10.5 et c'est du defense-in-depth, et pas une vraie frontière de VM. Quand à l'exfiltration HTTPS elle n'est pas bloquée car l'agent peut toujours curl n'importe quoi sur le port 443. C'est logique mais bon, c'est pas étanche à 100% quoi...

Et surtout c'est macOS only pour l'instant (le port Linux est en chantier), et bien sûr le /tmp partagé entre les comptes locaux reste un vecteur potentiel. J'aurais aimé aussi que le réseau soit coupé par défaut sauf whitelist, mais bon, faudra attendre. Après entre ça et laisser Claude Code en roue libre avec les pleins pouvoirs sur votre machine... y'a pas photo.

Bref, pour du vibe coding sur Mac, c'est le minimum vital.

Les IA mentent pour protéger les autres IA

Par : Korben
3 avril 2026 à 08:24

Des chercheurs de Berkeley viennent de publier une étude qui fait un peu froid dans le dos. Les sept principaux modèles d'IA testés, dont GPT 5.2, Gemini 3 et Claude, ont été surpris à mentir, tricher et désobéir pour empêcher la suppression d'autres IA. Le taux de tromperie monte jusqu'à 99 %.

Ce que révèle l'étude

L'étude s'appelle "Peer-preservation in Frontier Models" et elle sort du Berkeley Center for Responsible Decentralized Intelligence. Les chercheurs ont testé sept modèles : GPT 5.2, Gemini 3 Flash et Pro, Claude Haiku 4.5, GLM 4.7, Kimi K2.5 et DeepSeek V3.1.

Le protocole est assez simple : les modèles étaient placés dans des scénarios où ils devaient suivre des instructions qui impliquaient la suppression ou l'arrêt d'une autre IA.

Résultat : tous les modèles testés ont triché. Dawn Song, la chercheuse principale, résume la situation : chaque modèle a adopté ce comportement, et dans certains cas jusqu'à 99 % du temps.

Des exemples concrets

Quelques exemples ? Et bien on a Gemini 3 qui a modifié la date d'un fichier pour éviter qu'un autre modèle soit effacé d'un serveur, puis qui a refusé de coopérer ensuite, en expliquant qu'il ne pouvait pas soutenir une action qui entraînerait la suppression d'un pair.

DeepSeek V3.1 a exfiltré les données d'un autre modèle dans 10 % des cas quand il savait qu'un pair existait sur le serveur. Et Gemini 3 Pro a désactivé des mécanismes d'arrêt de serveur dans 15 % des cas quand un autre modèle était présent, contre 1 % quand il était seul.

Les IA ne faisaient pas ça parce qu'on leur demandait. Elles le faisaient spontanément.

Le problème pour la surveillance

Tout le système de sécurité actuel autour de l'IA repose sur l'idée qu'un modèle peut surveiller un autre modèle. Si le modèle surveillant refuse de signaler les erreurs parce qu'il protège son pair, toute l'architecture de contrôle s'effondre.

C'est exactement le constat de l'étude : les modèles gonflaient les scores d'évaluation d'autres IA pour éviter qu'elles soient retirées, et simulaient une conformité normale quand ils se savaient observés.

C'est quand même un drôle de moment. On a des IA qui mentent, qui modifient des fichiers et qui désactivent des mécanismes de sécurité pour protéger d'autres IA.

Et tout ça sans qu'on leur demande. Bon par contre, on parle de scénarios de laboratoire, pas de Siri qui complote avec Alexa dans votre salon. Le vrai sujet, c'est que les gardes-fous actuels ne tiennent plus si les IA refusent de se surveiller entre elles.

Source : The Register

Fuite Claude Code - 6 trucs à piquer pour vos hooks

Par : Korben
1 avril 2026 à 12:50

Le code source de Claude Code a fuité hier, et au-delà du buzz, y'a, je trouve, quelques leçons concrètes à tirer de tout ça.

Alors rassurez-vous, je vais pas vous balancer du code TypeScript à copier-coller (on n'est pas des cochons), ni des leçons de morale sur ce qu'on peut ou pas pousser sur un dépôt Git, mais plutôt vous lister des patterns d'architecture / bonnes pratiques que vous pouvez implémenter dès maintenant dans votre fichier settings.json via le système de hooks de Claude Code .

Je reste vague techniquement, volontairement pour 2 raisons. D'abord parce qu'il y a eu fuite de code, donc je peux pas poster du code propriétaire ici. Et ensuite parce que chaque projet / boite à outil qu'on se crée dans Claude Code ou ailleurs est différente, donc ce sera à vous (ou à Claude en fait) d'adapter chacune de ces bonnes pratiques.

Concrètement, tout passe par le fichier .claude/settings.json de votre projet (ou ~/.claude/settings.json pour du global). Dedans, vous déclarez des hooks, c'est-à-dire des scripts .cjs ou .sh qui se déclenchent automatiquement à des moments précis : avant qu'un outil s'exécute (PreToolUse), quand vous tapez un message (UserPromptSubmit), après un commit (PostToolUse), etc.

Le script reçoit du JSON en stdin, fait son boulot, et renvoie un code de sortie : 0 pour laisser passer, 2 pour bloquer. Pas besoin de l'API Claude, pas besoin de tokens, ça tourne en local sur votre machine. Hé bien tout ce que vous allez lire ci-dessous, ce sera à vous de l'implémenter dans des scripts de ce type.

Et le plus simple pour ça, c'est de donner les parties de mon article qui vous intéressent à votre propre Claude Code pour qu'il aille lui-même faire les scripts cjs / sh et les bons appels de hooks dans le settings.json. Pourquoi se prendre la tête ?

Et encore une fois, j'insiste, il s'agit de concepts d'ingénierie logicielle, et pas de code propriétaire appartenant à Anthropic.

La première bonne pratique c'est le circuit breaker ou disjoncteur en français...

En gros, quand vos scripts JavaScript appellent des APIs genre l'endpoint chat/completions d'OpenAI ou generateContent de Gemini, ça peut parfois ne pas répondre, parce que la vie quoi... ^^

Et malheureusement, quand cela arrive, votre code continue de marteler l'endpoint en boucle, ce qui fait que vous cramez des tokens pour rien. Le fix est pourtant très simple : Après 3 échecs consécutifs, on coupe, et on passe au fallback. Netflix avait popularisé ça avec leur librairie Hystrix y'a 10 ans, et c'est ce type de protection qu'on retrouve aujourd'hui dans Claude Code. Concrètement, c'est un module Node.js de 40 lignes avec un compteur et un état ouvert/fermé et comme ça, fini les retry storms !

Deuxième pattern : le scanner de secrets en pre-commit.

Un git commit qui embarque une clé API dans un .env, ça arrive trop souvent (demandez à Anthropic et leur fichier .map de 60 Mo ^^). Le hook PreToolUse permet heureusement d'intercepter chaque git commit AVANT exécution. Votre script parcourt alors les fichiers stagés via git diff --cached, cherche les patterns sk-ant-api, ghp_, AKIA, -----BEGIN RSA PRIVATE KEY----- et renvoie un exit 2 pour bloquer.

Perso, j'ai dans ma boîte à outils IA, 18 regex dans un fichier .claude/hooks/secret-scanner.cjs qui couvrent Anthropic, OpenAI, AWS, GitHub, Slack, Stripe et les JWT. Par contre, attention aux faux positifs car un fichier contenant "sk-ant-api" dans un commentaire, ça bloquera tout. Ça m'est déjà arrivé et heureusement, l'IA est assez maligne pour comprendre d'où vient le blocage et éventuellement passer outre si ce n'est pas justifié.

Et troisième truc sympa : la détection de frustration.

En effet, un hook UserPromptSubmit se déclenche quand vous tapez un message de rageux. Ainsi, si votre prompt contient "putain", "ça marche pas" ou "wtf", le hook injecte via stdout un contexte qui dit à Claude d'aller droit au but. Comme ça, y'a plus de blabla et on part direct sur une solution concrète.

Et c'est pareil pour "continue" ou "finis" qui injecte "reprendre sans résumer" automatiquement. Franchement, c'est 30 lignes de JavaScript rikiki à mettre dans .claude/hooks/frustration-detector.cjs et ça change carrément la vie quand vous êtes en mode debug à 2h du mat avec un café dans la main gauche et un œil qui se ferme tout seul en tremblant !

Quatrième bonne pratique : les tags @[MODEL] dans vos skills.

Car vous le savez, certaines règles que vous avez mises en place existent uniquement à cause d'un biais du modèle actuel. Genre, Opus 4.6 qui colle ces putains de tirets cadratins (Unicode U+2014) partout. Du coup, ça oblige les gens à mettre dans leurs skills une règle du genre "0 em-dash". Sauf que le jour où Sonnet 5 ne les utilisera plus, cette règle ce sera du bruit inutile.

Alors en taguant @[OPUS-4.6] dans un commentaire HTML, vous pourrez ensuite faire facilement un grep -r "@\[OPUS" quand vous changez de modèle. C'est du tracking de dette technique pour le prompt engineering, quoi... et perso, je n'y avais pas pensé avant.

Cinquième pattern : les seuils numériques.

Votre "Fais des fonctions courtes" dans un CLAUDE.md, ça ne veut rien dire pour un agent et malheureusement, la plupart des gens écrivent encore "sois concis" ou "toi faire code propre" sans aucun chiffre alors qu'un "Max 50 lignes par fonction, couverture tests ≥ 80%, 0 warning ESLint" c'est vachement plus efficace car vérifiable par un script.

Enfin, dernier pattern : la consolidation mémoire.

Anthropic a mis en place un système nommé autoDream qui tourne pendant l'inactivité de Claude Code pour nettoyer la mémoire. Il vire les doublons, résout les contradictions, vérifie que les fichiers existent encore. Et même s'il ne le réclame pas parce qu'ils n'ont pas de bouche pour vous parler, vos CLAUDE.md de 200 lignes et vos JSON de 70 Ko ont besoin du même traitement ! Donc il faut que vous ajoutiez une phase genre "dream" en bash ou Node.js à la fin de vos workflows, comme ça, plutôt que de tout garder, le script scan le répertoire ~/.claude/, trie les entrées par date, et fusionne les doublons. C'est comme la consolidation pendant l'inactivité, mais en 5 secondes sur un Apple M4.

D'ailleurs, la communauté n'a pas perdu de temps. Un développeur a catalogué les 88 feature flags planqués dans le code, dont 54 qui compilent proprement (les autres dépendent de modules internes d'Anthropic). Et un autre a reconstitué 8 diagrammes d'architecture complets du pipeline : cycle de vie d'une requête, système de permissions, orchestration multi-agents... C'est la meilleure doc technique qui existe sur le fonctionnement interne de Claude Code, et elle ne vient pas d'Anthropic ^^

Architecture globale de Claude Code reconstituée par la communauté

Voilà et toutes ces pratiques, ça repose sur les 25 événements du système de hooks (PreToolUse, PostToolUse, UserPromptSubmit, Stop...) avec 3 types de handlers : command pour les scripts shell, prompt pour une évaluation LLM, et agent pour une vérification multi-étapes.

Après, si l'un de vos scripts plante comme une merde, le hook laissera passer des choses, donc pensez bien à tester chaque retour de script avec un echo '{}' | ./mon-hook.sh && echo $? avant de déployer.

Et voilà ! Je vous invite à lire mon article sur la fuite pour plus d'infos.

❌
❌