6 points par GN⁺ 1 일 전 | 1 commentaires | Partager sur WhatsApp
  • Installez Claude Code sur un Mac de rechange ne contenant aucune donnée personnelle, et configurez-le comme un environnement autonome toujours accessible depuis le SSH du Mac principal et l’app Claude sur téléphone
  • Le niveau d’isolation matérielle est plus élevé qu’avec des conteneurs, et il est possible d’utiliser Unity ainsi que des apps GUI propres au Mac, ce qui permet de séparer du Mac principal les risques liés à --dangerously-skip-permissions
  • La base de travail à distance est mise en place via un nouveau compte administrateur local, sudo et SSH sans mot de passe, la prévention de la mise en veille, la synchronisation du presse-papiers et l’installation de Claude Code
  • Le contrôle de l’interface graphique est implémenté avec un serveur tmux maintenu par un LaunchAgent au sein de la session GUI ; les autorisations d’enregistrement de l’écran, d’accessibilité et d’accès complet au disque doivent être accordées manuellement
  • En ajoutant Remote Control, Claude in Chrome, Screen Sharing et Tailscale, on peut aller du contrôle depuis un téléphone à l’automatisation du navigateur et à l’accès externe, mais cela nécessite une authentification distincte et la configuration des autorisations macOS

Objectif de la configuration et principes de base

  • Créer un environnement que Claude Code pourra contrôler de manière autonome afin de déléguer des travaux de recherche et de développement en dehors du Mac principal
  • Comme un agent utilisant --dangerously-skip-permissions dispose de permissions étendues, l’exécuter sur une machine distincte sans données personnelles ni Apple ID afin de réduire les informations sensibles accessibles
  • Claude Code reste accessible à tout moment via l’app Claude sur téléphone ou le SSH du Mac principal
  • La configuration de base nécessite un Mac cible de rechange connecté au même Wi-Fi et le Mac source utilisé au quotidien

Pourquoi utiliser un Mac de rechange plutôt qu’un conteneur ou OpenClaw

  • Un conteneur s’exécute toujours sur le Mac principal, et les requêtes réseau passent aussi par celui-ci : ce n’est donc pas une séparation matérielle complète
  • Il est difficile d’exécuter Unity ou des apps propres au Mac, et les tâches GUI nécessitant de cliquer ou de glisser via les fonctions d’utilisation de l’ordinateur sont également limitées
  • La configuration sur un Mac de rechange permet d’exploiter telles quelles les dernières fonctions de Claude Code, le contrôle via l’app Claude et le quota de l’abonnement Claude déjà détenu
  • L’environnement est isolé selon les principes suivants
    • Utiliser un ancien Mac de rechange, et non le Mac principal
    • Créer un nouveau compte local sans données personnelles ni Apple ID
    • Contrôler la machine via SSH sur le réseau local, et via l’app Claude depuis le téléphone

1. Réinitialiser le Mac cible et isoler le compte

  • S’il contient déjà des données personnelles, l’agent pourrait toutes y accéder ; il faut donc d’abord effacer la machine
    • Mac pris en charge : System Settings → General → Transfer or Reset → Erase All Content and Settings
    • Anciens Mac Intel : au démarrage, entrer dans Recovery avec Cmd-R, effacer le disque interne avec Disk Utility, puis réinstaller macOS
  • Si nécessaire, mettre à jour vers la dernière version de macOS dans System Settings → General → Software Update
  • Créer un nouveau compte utilisateur local et ignorer la connexion à l’Apple ID
  • Accorder au compte les droits administrateur pour qu’il puisse utiliser sudo
    • Dans System Settings → Users & Groups, activer Allow this user to administer this computer
    • Lors d’une récupération depuis un autre compte administrateur, on peut utiliser sudo dseditgroup -o edit -a <user> -t user admin

2. Activer la connexion SSH à distance

  • Sur le Mac cible, activer Remote Login avec la commande suivante
sudo systemsetup -setremotelogin on
  • Si l’erreur Turning Remote Login on or off requires Full Disk Access privileges se produit, accorder à Terminal l’accès complet au disque
    • Dans System Settings → Privacy & Security → Full Disk Access, ajouter Applications → Utilities → Terminal
    • Quitter Terminal, le rouvrir, puis relancer la commande

3. Configurer sudo sans mot de passe

  • Créer une règle par compte dans /etc/sudoers.d/ afin que l’agent et les commandes SSH ne demandent pas le mot de passe à chaque fois
echo "<user> ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/<user>-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/<user>-nopasswd
sudo visudo -cf /etc/sudoers.d/<user>-nopasswd
  • La première commande écrit la règle, et la deuxième définit les permissions en lecture seule requises par sudo
  • La dernière vérification doit impérativement afficher parsed OK ; une syntaxe sudoers incorrecte peut bloquer l’accès à sudo
  • Si sudo -n true réussit sans afficher de sortie, sudo sans mot de passe fonctionne

4. Vérifier l’adresse du Mac cible

  • Comme l’IP peut changer après un redémarrage ou avec le temps, il est recommandé d’utiliser un nom d’hôte fixe
scutil --get LocalHostName
  • Ajouter .local au nom affiché et l’utiliser sous la forme <target-host>.local
  • Si les noms .local des deux Mac se chevauchent sur le même réseau, on peut se connecter à la mauvaise machine ; définir donc un nom unique
sudo scutil --set LocalHostName newmacbook
  • Si une IP est nécessaire, on peut la vérifier avec ipconfig getifaddr en0, mais elle peut changer
  • Par la suite, utiliser l’adresse au format <user>@<target-host>.local

5. Configurer le SSH sans mot de passe depuis le Mac source

  • Si aucune clé SSH n’existe déjà, générer une clé Ed25519 sur le Mac source
ssh-keygen -t ed25519
ssh-copy-id <user>@<target-host>.local
  • Saisir une fois le mot de passe du compte cible lors de l’installation de la clé publique
  • Si la commande suivante affiche le nom d’utilisateur cible sans demander de mot de passe, la configuration est terminée
ssh <user>@<target-host>.local whoami

6. Empêcher la mise en veille et le verrouillage automatique

  • Même branché sur secteur, macOS peut se mettre en veille après environ 10 minutes d’inactivité et disparaître du réseau ; désactiver donc la veille
sudo pmset -c sleep 0
sudo pmset -c disablesleep 1
sudo pmset -c displaysleep 0
  • Chaque commande empêche respectivement la mise en veille du système sur secteur, la mise en veille lorsque le capot est fermé, et la mise en veille de l’écran
  • Vérifier la sortie de pmset -g | grep -iE 'sleep' pour confirmer sleep 0, SleepDisabled 1 et displaysleep 0
  • Pour appliquer aussi ces réglages sur batterie, utiliser -a au lieu de -c, mais la consommation de batterie augmentera
  • Empêcher également le verrouillage automatique dû à l’économiseur d’écran
defaults -currentHost write com.apple.screensaver idleTime 0

7. Synchronisation du presse-papiers via SSH

  • En reliant pbcopy et pbpaste de macOS via SSH, on peut transférer du texte en P2P chiffré, sans Apple ID ni service externe
  • clip.sh prend aussi en charge le transfert d’images
curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o ~/.local/bin/clip
chmod +x ~/.local/bin/clip
export IC_BOX="<user>@<target-host>.local"
  • Ajouter le réglage IC_BOX à ~/.zshrc
  • clip send envoie le texte ou les images du Mac source vers le Mac cible ; les images peuvent être collées avec Ctrl-V dans la session Claude Code de la cible
  • clip get récupère le presse-papiers du Mac cible vers le Mac source

8. Installer Claude Code

  • Depuis le Mac source, installer une version précise de Claude Code sur le Mac cible via SSH
ssh <user>@<target-host>.local 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.201'
  • Vous pouvez aussi spécifier latest ou stable au lieu de la version 2.1.201
  • Si un avertissement concernant le PATH de ~/.local/bin apparaît, ajoutez le chemin à ~/.zshenv, lu par tous les zsh
ssh <user>@<target-host>.local 'echo '\''export PATH="$HOME/.local/bin:$PATH"'\'' >> ~/.zshenv'

9. Installer au choix un environnement adapté à Claude Code

  • Le script optionnel setup-claude-env.sh installe des alias shell, des plugins DX, des ajustements de settings.json, GitHub CLI ainsi que, en option, Playwright MCP et yt-dlp
  • La liste complète des composants est disponible dans claude-env-components.md
  • En exécution interactive, il propose une checklist où les éléments par défaut sont sélectionnés et les éléments optionnels sont décochés
ssh -t <user>@<target-host>.local \
  'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o setup-claude-env.sh && bash setup-claude-env.sh'
  • L’exécution non interactive n’installe par défaut que les éléments essentiels et prend en charge les flags --yt-dlp, --playwright, --all et --core
  • Le script est idempotent : il peut être relancé sans problème

10. Connexion à Claude et GitHub

  • Connectez-vous au Mac cible en SSH, lancez claude, puis connectez-vous à votre compte Anthropic via le flux navigateur/code d’appareil, que vous pouvez terminer dans le navigateur du Mac principal
  • Pour travailler sur des dépôts, il est recommandé d’ajouter une connexion GitHub avec gh auth login
  • Il est plus sûr d’utiliser un compte GitHub séparé afin que l’agent n’affecte pas le compte principal

11. Fonctionnalité d’utilisation de l’ordinateur via SSH

  • Mode de connexion à la session GUI

    • Un processus SSH ne peut pas utiliser directement les autorisations d’enregistrement de l’écran et d’accessibilité associées à la session de connexion GUI
    • Un LaunchAgent maintient un serveur tmux et une session d’ancrage cc sur un socket fixe dans la session GUI
    • Claude Code lancé dans ce serveur hérite de la session GUI et peut accéder aux captures d’écran ainsi au contrôle de la souris et du clavier
  • Installation

    ssh -t <user>@<target-host>.local \
      'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o setup-computer-use.sh && bash setup-computer-use.sh'
    
    • Il installe le LaunchAgent et l’ancrage tmux, puis active l’outil intégré computer-use dans ~/.claude.json
    • tmux et un forfait Claude Pro ou Max sont nécessaires ; le script peut être relancé et supprimé avec --uninstall
  • Gérer les sessions avec la commande ic

    • Installez ic.sh sur le Mac source
    curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o ~/.local/bin/ic
    chmod +x ~/.local/bin/ic
    echo 'export IC_BOX="<user>@<target-host>.local"' >> ~/.zshrc
    
    • Les principales commandes sont les suivantes
      • ic : nouvelle session Claude
      • ic -c, ic -r : poursuivre la conversation récente ou choisir une reprise
      • ic --chrome : exécuter avec Claude in Chrome
      • ic sh : shell standard de la cible
      • ic vnc : lancer Screen Sharing
      • ic rc : serveur Remote Control pour téléphone
      • ic history, ic ls : consulter les conversations enregistrées et les sessions en cours
      • ic attach <id>, ic kill <id>, ic kill-all, ic kill-except : gérer l’attachement et l’arrêt des sessions
    • Toutes les sessions ic sont lancées avec --dangerously-skip-permissions, et ic rc utilise --permission-mode bypassPermissions
    • Dans tmux, Terminal.app ne reçoit pas les séquences de presse-papiers OSC52 émises par Claude ; pour copier tout l’écran, utilisez Cmd-A puis Cmd-C
  • Délégation entre agents

    • Claude Code sur le Mac source peut utiliser SSH et tmux send-keys pour envoyer des prompts à une session Claude en cours d’exécution sur la cible
    • Pour les prompts longs, l’Entrée incluse dans le même lot d’envoi que le texte peut ne pas être traitée comme une soumission ; il faut alors attendre brièvement puis envoyer une nouvelle fois Entrée
    • Vous pouvez lire la réponse avec tmux capture-pane et tail, puis vérifier à intervalles réguliers jusqu’à la fin de la tâche
  • Autorisations à accorder manuellement

    • Les autorisations d’enregistrement de l’écran et d’accessibilité doivent être approuvées manuellement dans l’interface GUI de macOS et ne peuvent pas être accordées par des clics synthétiques
    • Il faut aussi approuver la demande d’autorisation bypass the window picker qui apparaît lors de la première capture ; elle peut réapparaître environ une fois par mois
    • La cible des autorisations n’est pas claude, mais le processus responsable, le binaire tmux
      • Chemin Intel : /usr/local/bin/tmux
      • Chemin Apple Silicon : /opt/homebrew/bin/tmux
    • L’enregistrement de l’écran autorise les captures d’écran, et l’accessibilité autorise le contrôle de la souris et du clavier
    • Comme l’état des autorisations est mis en cache au démarrage du processus, redémarrez le serveur après les avoir accordées avec tmux -S /tmp/cc-tmux.sock kill-server
    • Si tmux n’apparaît pas dans la liste des réglages, demandez d’abord une capture d’écran à Claude depuis ic afin de déclencher la demande d’autorisation
    • Pour éviter les demandes répétées d’accès aux données par application dans les versions récentes de macOS, accordez le Full Disk Access à tmux puis redémarrez le serveur

12. Installer un VPN et d’autres applications GUI

  • Vous pouvez installer un VPN comme Proton VPN afin de séparer le trafic du Mac cible de votre IP locale
  • Si la fonctionnalité d’utilisation de l’ordinateur est configurée, vous pouvez demander à Claude depuis ic d’installer l’application, mais les tâches suivantes doivent être effectuées par une personne
    • Même avec l’offre gratuite, des identifiants de connexion sont nécessaires, et le mot de passe peut être transmis avec clip send
    • Il faut approuver les autorisations de configuration VPN/réseau lors de la première connexion ainsi que la demande de mot de passe du Mac
    • Le contrôle d’applications exclusivement GUI nécessite la fonctionnalité d’utilisation de l’ordinateur
  • Après la connexion, l’agent peut se connecter et changer de serveur, et le même flux peut être appliqué à d’autres applications

13. Contrôler depuis un téléphone

  • En exécutant /remote-control ou /rc dans une session existante, vous pouvez continuer à contrôler la même session depuis l’application Claude
  • claude remote-control prend en charge non seulement la connexion à une session existante depuis un téléphone, mais aussi la création d’une nouvelle session
  • En lançant ic rc, les sessions créées depuis le téléphone peuvent également accéder à la fonctionnalité d’utilisation de l’ordinateur du Mac cible

14. Configuration de Claude in Chrome

  • La fonctionnalité générale d’utilisation de l’ordinateur permet de voir l’écran du navigateur, mais reste limitée pour les clics et la saisie
  • L’extension Claude in Chrome prend en charge la navigation, les clics, la saisie de formulaires, ainsi que la lecture des logs de console et des requêtes réseau
  • Contrairement à Playwright MCP, elle utilise le profil Chrome standard du Mac cible, ce qui permet de tirer parti des sessions déjà connectées
  • Le Mac cible doit disposer de Chrome et d’un abonnement direct Anthropic Pro, Max, Team ou Enterprise
  • Les actions suivantes doivent être effectuées manuellement
    • Cliquer sur Add to Chrome dans le Chrome Web Store
    • Se connecter au compte Claude dans l’extension ; les identifiants peuvent être transmis avec clip send
  • Dans Claude Code, exécuter /chrome pour l’activer par défaut, ou utiliser claude --chrome ou ic --chrome pour une session donnée
  • Si la connexion ne s’établit pas, redémarrer Chrome une fois
  • Le script d’environnement de l’étape 9 ajoute dans ~/.claude/CLAUDE.md des consignes pour utiliser des références d’éléments de l’arbre d’accessibilité plutôt que des coordonnées, et pour éviter les captures d’écran non demandées
  • Si les extensions Chrome de la machine source et de la machine cible, associées au même compte, s’exécutent simultanément, une demande de sélection apparaît ; il existe aussi un problème #74667 pouvant entraîner une mauvaise identification de la machine locale
    • Pour le contourner, supprimer temporairement l’extension du Mac source ou fermer Chrome sur la source
  • Il existe un problème #74671 : les outils de navigateur ne sont actuellement pas disponibles dans les sessions créées depuis un téléphone
    • Démarrer la session depuis le terminal, puis connecter le téléphone avec /rc

15. Partage d’écran macOS

  • Avec le partage d’écran intégré, il est possible de consulter en temps réel l’écran cible depuis le Mac source et de contrôler directement la souris et le clavier
  • Depuis macOS 12.1, il ne peut plus être activé en ligne de commande et doit donc être configuré dans l’interface graphique de la machine cible
  • Dans Réglages Système → Général → Partage, activer le partage d’écran
    • Si la gestion à distance est activée et que le bouton n’apparaît pas, la désactiver d’abord
  • Depuis le Mac source, se connecter avec la commande suivante
open vnc://<user>@<target-host>.local
  • Se connecter avec le mot de passe du compte cible ; il est possible de choisir d’enregistrer le mot de passe dans le trousseau

16. Accès depuis un réseau externe via Tailscale

  • Les adresses .local ne fonctionnent que sur le LAN, mais Tailscale permet d’utiliser SSH, ic, clip et le partage d’écran depuis un réseau externe au moyen de tunnels WireGuard P2P chiffrés de bout en bout
  • Aucun service n’est exposé sur l’Internet public, et sur le réseau domestique, le chemin LAN direct est utilisé
  • Rejoindre le réseau Tailscale ne fournit que la joignabilité entre machines ; les clés SSH ou le mot de passe du partage d’écran restent nécessaires
  • Installer Tailscale sur le Mac cible en mode headless, puis se connecter via l’URL affichée
ssh <user>@<target-host>.local 'brew install tailscale'
ssh <user>@<target-host>.local 'sudo brew services start tailscale'
ssh <user>@<target-host>.local 'sudo tailscale up --operator=<user>'
  • L’installer aussi sur le Mac source et se connecter avec le même compte Tailscale que la cible
brew install --cask tailscale-app
  • Avec MagicDNS, activé par défaut, il est possible d’accéder à la machine de n’importe où avec le nom d’hôte sans .local
export IC_BOX="<user>@<target-host>"


# export IC_BOX="<user>@<target-host>.local"
  • L’adresse de partage d’écran devient également open vnc://<user>@<target-host>
  • Les paramètres de sécurité et de disponibilité suivants sont recommandés dans la console d’administration
    • Activer device approval afin qu’une simple connexion compromise ne permette pas d’ajouter un nouvel appareil
    • Désactiver l’expiration des clés pour éviter que la machine cible ne soit déconnectée après environ 180 jours à cause de l’expiration de sa clé
  • Tester l’accès distant réel en connectant le Mac source à un autre réseau, comme un hotspot de téléphone, puis en vérifiant avec ic ls

1 commentaires

 
GN⁺ 1 일 전
Commentaires sur Hacker News
  • Sauf pour le développement graphique mentionné dans l’article, il n’y a aucune raison d’isoler l’agent sur du matériel réel. J’ai écrit un script qui crée avec libvirt un bureau graphique dédié à Claude, jusqu’à effectuer des tests d’acceptation utilisateur dans Chrome
    Même en lui donnant tous les droits root, en cas de problème on peut le jeter et le réinstaller en quelques secondes

    • Pour ma part, je crée simplement un utilisateur séparé avec quelque chose comme sudo useradd agent, sudo su agent, afin que l’agent ne puisse casser que ses propres fichiers. J’ai aussi pris des captures d’écran avec Chrome headless et configuré VNC, mais ça ne valait pas vraiment le coup
      Même sur un VPS à 3 dollars, s’il est cassé, on peut le réinstaller aussitôt, ce qui rend amusant le fait de donner root à l’agent
    • Il est possible d’exécuter un invité macOS dans une machine virtuelle sur un hôte Mac, et Apple l’autorise explicitement
    • Si l’espace disque suffit, on peut créer un iMessage dédié à Claude dans une machine virtuelle, mais utiliser du vieux matériel Apple qui traîne est aussi une bonne option
    • Ce script semble être du code généré par Claude ; après environ 250 lignes, le manque de cohérence du code m’a fatigué et j’ai perdu tout intérêt
  • J’ai beau chercher, je ne trouve vraiment pas d’usage où une IA pourrait réellement aider en continu 24 h/24, mais j’aimerais moi aussi en ressentir le besoin

    • Les utilisateurs expérimentés de Claude Code utilisent très peu l’IDE ; à part les habitudes, il n’y a donc pas vraiment de raison de ne pas travailler depuis un téléphone plutôt que depuis un ordinateur portable
      Concrètement, si des alertes Datadog, des logs cloud et des alertes GitHub s’accumulent pendant qu’on est dehors, on peut confier l’enquête à Claude Code et lui faire classer le problème du type : « des timeouts de l’API de la banque partenaire surviennent depuis une heure sur environ 15 % des requêtes ». Il suffit ensuite de contacter la personne responsable et de retourner profiter de son week-end
      Un vrai système d’astreinte serait préférable, mais vu la flexibilité offerte par le poste, des alertes Slack le week-end restent acceptables
    • Je fais surtout surveiller par Claude des analyses de data science qui prennent plusieurs heures. Avec le contrôle à distance, je reçois une notification quand c’est terminé ou quand une vérification supplémentaire est nécessaire, et si une nouvelle idée me vient, je peux l’ajouter immédiatement à la file de travaux
      Le matériel devient plus souvent le goulot d’étranglement que la limite de l’abonnement
    • Quand il me restait des tokens, je les ai utilisés pour du fuzzing exploitant la connaissance du domaine et du code source afin de choisir les méthodes de fuzzing, pour des problèmes d’optimisation similaires, et pour exécuter SkillOpt de Microsoft
    • Avec Claude Cowork, j’ai créé une checklist et des sauvegardes pour réinstaller mon ordinateur portable en toute sécurité. Après lui avoir fait vérifier la configuration SSH, les apps, les téléchargements, les documents, etc., je lui ai aussi confié la sauvegarde, puis fait rédiger la procédure de restauration après réinstallation, ce qui m’a permis de terminer une tâche que je repoussais depuis longtemps
    • Les usages qui m’ont été utiles : lui faire manipuler Google Chrome et Figma en mode GUI dans un environnement séparé, exécuter des tâches de plus d’une heure pendant que mon ordinateur principal est fermé, et isoler les tâches gourmandes en CPU et en ressources comme Gemma, Whisper ou Qwen
  • Plutôt que d’installer Claude sur un troisième PC pour lui faire halluciner en boucle du code dont personne ne veut, juste pour essayer de ne pas prendre du retard, je préfère coder moi-même, parce que j’aime coder

  • Je l’ai configuré de manière similaire sur un vieux Mac comme alternative gratuite au bot OpenClaw. La connexion se coupe parfois et je dois reprendre la main depuis le téléphone, mais j’y fais aussi tourner Homebridge, que Claude peut manipuler, donc c’est plutôt utile

  • J’ai installé Claude Desktop sur un Mac mini M4 séparé et je le contrôle avec Dispatch. Comme il peut déjà contrôler entièrement le compte local que je lui ai donné, je me demande s’il y a une raison de passer à cette méthode

    • Je me demande pourquoi un M4 serait nécessaire, puisque l’essentiel de l’inférence est fait côté Anthropic. À moins d’exécuter des apps particulièrement gourmandes en ressources, ça semble surdimensionné
    • RC était plus puissant que Dispatch et plus proche de l’expérience d’utilisation directe de Claude Code, mais par rapport au bac à sable appartenant à Claude, il manque aussi des fonctions au mode RC
      J’aimerais que Claude puisse utiliser mon ordinateur comme hôte de bac à sable, au lieu de lancer RC pour chaque session hôte. Pour l’instant, j’utilise une configuration provisoire où une session RC maître crée une nouvelle fenêtre tmux et une nouvelle session Claude RC pour chaque tâche de codage
      En cas de bug de RC, je peux utiliser directement Code dans Termux, mais l’interface de permissions d’iOS était assez instable
    • Dispatch/Cowork, c’est fondamentalement Claude Code dans un conteneur. La section « Why not run it in a container? » de l’article répond à la question ; à cause des permissions du conteneur, Cowork ne parvient parfois pas à télécharger et lire ou écrire des PDF ou d’autres fichiers, alors que Claude Code classique utilise curl et wget sans problème
    • Dispatch est différent de cette méthode et très pratique pour certaines tâches, notamment les connecteurs. Cela dit, faute de stratégie unifiée couvrant mobile, desktop et ordinateur portable, cela ressemble de plus en plus à des fonctionnalités ajoutées progressivement par-dessus Cowork
  • Cela ne résout pas toutes les contraintes, mais avec UTM, on peut installer macOS et Claude Code dans une machine virtuelle sur Mac. UTM fonctionne même avec un compte non administrateur et permet d’utiliser la plupart des outils natifs Mac
    Cela dit, l’UI de Claude Code dans la machine virtuelle n’est pas très performante en interaction, et je ne sais pas si l’on peut contourner cela en s’y connectant via le terminal depuis un compte non administrateur de l’hôte

    • UTM ne prend pas en charge l’accélération graphique, ce qui limite les fonctionnalités du navigateur. Même lorsque l’accélération n’était pas nécessaire, les navigateurs lancés dans l’OS virtualisé d’UTM ne passaient pas certains CAPTCHA récents ni certains contrôles d’empreinte de navigateur
  • J’ai reconstruit mon homelab et serveur multimédia avec un HP EliteDesk équipé d’un i5, à la place d’un vieux NUC dont je n’avais jamais réglé les problèmes de surchauffe. Je pense créer des machines virtuelles d’isolation sur Ubuntu de base, y exécuter Claude et tester Dispatch, ou installer directement Claude Code puis utiliser l’app Moshi sur iPhone et iPad

    • Moi aussi, j’exécute Claude dans une machine virtuelle Ubuntu et je lui confie des choses que j’aurais auparavant traitées avec des tâches planifiées. Si l’on n’a pas besoin d’iMessage, je me demande quel avantage supplémentaire apporte une configuration sur Mac
  • J’ai une configuration similaire avec un vieux M2. Il n’est pas suffisant pour faire tourner des modèles locaux assez performants, mais il est parfait pour OpenClaw et Claude
    Je suis aussi surpris de voir que les prix des MacBook M1 et M2 sont désormais plutôt bas comparés au Mac mini

    • De mon côté, c’est l’inverse : j’utilise un Framework Desktop performant comme machine IA headless, et un MacBook Pro M1 au quotidien ; ça fonctionne très bien
    • Les MacBook Air et MacBook avec 16 Go ou plus sont devenus excessivement chers, sans doute à cause de ce type de demande