Vue lecture

PureMac - Faites un grand ménage sur votre Mac, gratuitement

Vous glissez une app dans la corbeille du Mac, elle disparaît du dossier Applications, et vous pensez que c'est réglé ? Que vous êtes naïfs ! Hé oui, ce que vous ne savez pas, c'est que ses préférences, ses caches et son container restent bien présent dans votre ~/Library, parfois pendant des années, encombrant votre espace disque pour rien.

Hé bien s'occuper de tout ce merdier, c'est le job de PureMac , une app native codée en SwiftUI qui piste ces fichiers-là pour libérer des ressources sur votre mac. Elle croise l'identifiant du bundle, celui de l'équipe de développement, les entitlements et les métadonnées Spotlight, selon trois niveaux d'agressivité en fonction de ce que vous voulez ratisser.

Elle sait aussi prendre le problème dans l'autre sens puisque son chercheur de fichiers orphelins parcourt ~/Library pour retrouver les restes d'applications que vous avez virées il y a trois ans et dont plus rien ne vous rappelle l'existence.

Et si vous développez, il y a de quoi récupérer bien plus de place avec les DerivedData, les runtimes de simulateur Xcode, les couches Docker, les caches npm, yarn, pnpm et Homebrew. Bon, ça vous savez déjà le faire avec docker system prune, deux ou trois autres commandes, ou avec Mole en ligne de commande dont je vous ai déjà parlé. Mais l'intérêt ici, c'est de tout voir d'un coup avant d'arbitrer.

Côté données, il n'y a rien à surveiller puisque PureMac n'embarque aucune télémétrie ni appel réseau. Et la licence, c'est du 100% licence MIT, là où d'autres outils similaires comme Pearcleaner ajoute une Commons Clause qui en interdit la revente, que AppCleaner, lui, s'arrête à la désinstallation, ou encore que CleanMyMac nécessite d'acheter une licence.

Pour le faire tourner, il vous faut macOS 13 au minimum, et ça s'installe en une ligne avec brew install --cask puremac. Sinon, il y a un .dmg signé et notarisé à récupérer directement.

Par contre, sachez que ça réclame le l'accès complet au disque, soit la permission la plus large que macOS distribue, et il ne garde aucun journal des chemins qu'il a supprimés. Surtout que quand un fichier est supprimé, il l'est pour de bon, donc vérifiez bien les choses avant de les supprimer.

Le nettoyeur de caches, est également une opération sans retour. Alors pour un cache ça n'a pas d'importance, puisqu'il se régénèrera tout seul. Mais pour un reste dans ~/Library qui contenait, j'sais pas, par exemple une licence, un wallet crypto ou vos réglages, c'est une autre affaire.

Donc soyez TRÈS prudent et lisez bien les chemins d'accès vers les fichiers avant de cliquer pour les supprimer, histoire de pas faire de conneries.

  •  

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

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 !

  •  

macUSB - Créer une clé USB macOS sans toucher au Terminal

Krystian Pierz, un développeur polonais qui se planque derrière le pseudo Kruszoneq, en a eu marre de se galérer à chaque fois pour faire des clés USB bootable pour Mac, alors il a sorti macUSB , une app Mac native (du vrai Swift, pas un machin Electron quoi) qui fait tout le sale boulot à votre place. C'est gratuit, le code est ouvert, et surtout c'est notarisé par Apple, donc pas besoin de bidouiller la sécurité de votre Mac avec Sentinel pour la lancer.

Et ça se fait en trois clics. Vous balancez votre image (un .dmg, un .app d'installation macOS, ou même un .iso), vous désignez votre clé USB, et macUSB se débrouille pour calculer le checksum, détecter la version et l'architecture, formater le support dans le bon système de fichiers et écrire le tout en vous affichant la vitesse en temps réel. Pas de Terminal, pas de commande à rallonge à recopier sans se tromper d'un espace, et surtout l'Utilitaire de disque qu'on déteste tous reste fermé.

Le vrai exploit de Kruszoneq c'est surtout qu'il a réussi à régler les cas de figure où createinstallmedia, l'outil officiel d'Apple, se crashait comme une merde. Je pense que si vous avez déjà essayé de vous faire une clé Monterey ou Big Sur depuis un Mac Silicon par exemple, pour réparer un autre Mac Intel, vous avez dû vous galérer avec des erreurs de validation et autres messages d'erreur pour cause d'architecture incompatible.

Bah macUSB contourne tout ça tout seul comme un grand, et répare même les certificats expirés des installeurs High Sierra et Mojave sans rien vous demander.

Pour situer le progrès, la méthode "propre" côté Apple ressemble à ça :

sudo /Applications/Install macOS Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/MaCle

...et encore, à condition d'avoir déjà récupéré le bon installeur dans l'App Store. Je ne vous parle même pas de l'époque où il fallait extraire à la main le fichier InstallESD.dmg planqué dans le paquet de l'installeur (j'expliquais déjà ce bricolage en 2011 pour OSX Lion ). Alors que macUSB, lui, embarque un téléchargeur qui va chercher les installeurs directement sur les serveurs d'Apple. Vous n'avez plus rien à préparer en amont.

L'outil sait donc préparer des clés USB de macOS Tahoe (la version 26, celle de cette année) jusqu'à Tiger 10.4 sorti en 2005, PowerPC compris. Oui, vous pouvez ressusciter un iMac G5 depuis votre MacBook M4. Pour les collectionneurs de vieilles machines, les labos qui gardent des Macs d'époque, ou juste pour remettre d'aplomb un ordi que vous comptez revendre, c'est du bonbon ^^.

Et la v2.3, sortie hier, en remet une couche côté Windows puisqu'elle sait également préparer des clés Windows 10 et 11 en contournant le check TPM 2.0 (le compte Microsoft obligatoire avec la connexion Wi-Fi forcée pendant l'installation, argh !). Et elle écrit aussi les images Linux en .iso et en .img. Après si c'est juste faire une clé Windows depuis votre Mac que vous cherchez, WinDiskWriter fait déjà très bien le job, mais macUSB a l'avantage de tout regrouper au même endroit.

Côté prérequis, votre Mac doit donc tourner au minimum sous Sonoma 14.6 (Apple Silicon ou Intel), et il faudra lui accorder l'accès complet au disque dans les réglages système, rien d'anormal puisqu'il écrit directement sur vos volumes. Une fois ça réglé, vous récupérez le .dmg sur la page des releases GitHub , ou vous l'installez en une ligne avec Homebrew :

brew install --cask macusb

C'est super impressionnant pour un projet développé par une seule personne et qui plus est n'a que 6 mois d'existence. Bref, si vous avez un Mac à réinstaller, un vieux coucou à dépanner ou une machine à remettre d'aplomb avant de la revendre, foncez !

  •  

Windows NT sur GameCube - Parce que pourquoi pas

La GameCube, on la connaît pour avoir fait tourner la meilleure version de Smash Bros et pour son look de petit cube vaguement "rectangulaire". Mais on ne la connait pas vraiment pour faire tourner un système d'exploitation de bureau du milieu des années 90.

Et pourtant, une bande de bidouilleurs emmenée par Rairii (alias Wack0), épaulé par NTx86 et stonedDiscord, s'est amusée à virer les jeux pour loger un vrai Windows NT là-dedans. Oui, le vrai NT de Microsoft.

Merveilleux non ?

Et le plus beau, c'est que ce n'est même pas de l'émulation, c'est carrément un portage natif. Le truc que j'ignorais, c'est qu'à une époque Microsoft avait sorti une version PowerPC de Windows NT, du temps où le système supportait encore des architectures un peu exotiques. Or la GameCube tourne justement sur un processeur PowerPC, le fameux Gekko.

Les deux étaient donc faits pour se rencontrer, et il ne manquait qu'un type assez taré pour les marier. Le projet s'appelle entii-for-workcubes , et il ne s'arrête pas à la GameCube. Vous pouvez aussi le booter sur une Wii, sur une Wii Mini (qui réclame quand même un petit hardmod pour la carte SD), et même dans le mode vWii de la Wii U.

Petit retour en arrière quand même pour les plus jeunes... Dans les années 90, Windows NT n'était pas du tout le truc Windows-x86-only qu'on connaît aujourd'hui. Il tournait sur MIPS, sur DEC Alpha, sur PowerPC, parce que Microsoft voulait un OS portable, qui ne soit pas marié à un seul fabricant de puces. L'histoire a tranché en faveur du x86 et tout le reste est tombé dans l'oubli. Sauf que ces vieux binaires PowerPC existent toujours, et c'est ce qui rend ce hack possible 25 ans plus tard.

Pour l'installer, vous balancez une image ISO de NT 3.51 ou 4.0 sur une carte SD, vous chargez le loader via Swiss sur GameCube ou via le Homebrew Channel sur Wii, et vous vous laissez guider par l'installeur de NT comme en 1996.

C'est une version assez dégradée, mais parfaitement fonctionnelle de l'expérience poste de travail d'époque. Le seul vrai casse-tête, c'est la saisie. La GameCube n'a jamais eu de clavier digne de ce nom, donc il faut ruser avec des méthodes de saisie à la manette. À moins de mettre la main sur une de ces rarissimes manettes GameCube qui planquaient un clavier complet en plein milieu. Oui oui, ça a vraiment existé.

Maintenant, ne vous attendez pas non plus à un miracle car tout ne fonctionne pas. Pas de réseau, pas de son non plus. Et le bus EXI est lent de fou, donc ça traîne franchement sur les accès disque côté GameCube. Le pilote graphique GDI tourne également avec du code pas optimisé pour un sou, le branchement à chaud de l'USB n'est pas géré, et le système peut planter au redémarrage de temps en temps. Bref, c'est un poste de travail des années 90 sur un jouet des années 2000, avec les compromis qui vont avec.

À noter d'ailleurs que ce hack n'est pas tout frais, la dernière version date de mars 2025. C'est juste qu'il refait surface en ce moment, et je pense qu'il le mérite. La Dreamcast affichait fièrement "Compatible with Microsoft Windows CE" imprimé sur sa coque, la GameCube vient de la rattraper par la petite porte. Et détourner une console pour lui faire avaler un OS qui n'a rien à y faire, ça reste un grand classique, avec le hack qui a fait tourner Linux sur la PS5 et tous ceux qui font tourner Half-Life sur un Nokia de 2007 ou un jeu Mega Drive depuis un vinyle ...

Évidemment, faire tourner Windows NT sur une GameCube ça ne sert strictement à rien, à part pour le challenge et la frime, ça présente donc peu d'intérêt, mais c'est rigolo de voir que ça reste possible. Et c'est pour ça aussi que j'adore ça !

Source

  •  

Super Mario 64 enfin sur Nintendo DS avec un mode coop

À tous les nostalgiques de la Nintendo 64 et notamment de Super Mario 64, j'ai un petit truc cool à vous montrer. Tobi Friedly vient de sortir un portage du jeu sur Nintendo DS, et pas n'importe lequel, puisque celui-ci tourne sur la vraie console de 2004, et pas seulement sur la DSi qui embarquait quatre fois plus de mémoire vive. Et comme si ça suffisait pas, il y a même mis un mode deux joueurs.

C'est vrai que le truc qui coince d'habitude, c'est que la DS originale n'a pas assez de RAM pour charger toute la ROM du jeu d'un coup. Tobi a donc contourné le problème en faisant streamer les assets à la demande via NitroFS , le système de fichiers des cartouches DS.

Du coup, au lieu de tout balancer en mémoire d'un bloc, le jeu va piocher les niveaux et les textures au fur et à mesure qu'il en a besoin. C'est grâce à cette méthode ingénieuse qu'il a pu débloquer son portage sur la vraie DS, là où le portage précédent de Hydr8gon restait coincé sur DSi faute de place.

C'est d'ailleurs grâce au boulot de Hydr8gon que Tobi a construit le sien, en le modifiant et en l'adaptant suffisamment pour qu'il tourne sur tous les modèles de DS.

Au passage il a rebouché aussi deux bugs qui traînaient, et maintenant le jeu est finissable à 120 étoiles, et le son fonctionne enfin (avant c'était silence radio). La stabilité générale a aussi pris un bon coup de polish.

Le mode multijoueur, lui, réclame deux DS, chacune avec sa propre copie du jeu. C'est du coop local, parfait pour explorer le château à deux ou juste pour déconner ensemble, entre moustachus, dans un niveau de Mario.

Attention quand même, ce n'est pas un fichier .nds prêt à double-cliquer. Faut dumper vous-même la ROM de votre propre cartouche Super Mario 64, puis compiler le truc via Docker. Si vous bidouillez un peu l'émulation ou si vous utilisez des cartouches de type flashcart, vous savez que c'est le prix d'entrée habituel pour ce genre de projet de décompilation, notamment pour rester du bon côté niveau droits.

Super Mario 64, faut dire, c'est un peu le terrain de jeu favori de la scène decomp... on l'a déjà vu débarquer sur PlayStation 1 dans un sacré bordel technique, tourner en coop et en 4K sur PC avec SM64CoopDX, et on sait même que le jeu gaspillait joyeusement la mémoire de la N64 à l'origine grâce à ce genre de portage.

Si le projet vous intéresse, tout est sur le GitHub de Tobi Friedly .

Et si votre vieille DS a rendu l'âme, un émulateur comme melonDS fera tout aussi bien l'affaire.

Source

  •  
❌