Installer Claude Code sur macOS Tahoe

Introduction

Cet article documente l'installation de Claude Code sur macOS Tahoe (macOS 26.x), très largement au-dessus du minimum requis par Claude Code (macOS 13.0+). L'installation peut se faire indifféremment depuis le Terminal local du Mac, ou via SSH depuis un autre poste — la procédure est identique. Seule l'étape d'authentification diverge légèrement entre les deux contextes.

Contrairement à FreeBSD qui propose un paquet pkg natif, ou Alpine qui passe par l'installateur bash officiel, la voie la plus propre sur macOS est le cask Homebrew claude-code — un seul brew install, et le binaire est en place.

(Toutes les commandes s'exécutent en tant qu'utilisateur standard. Sudo n'est nécessaire à aucune étape, Homebrew refuse même de tourner en root.)


Pré-requis

Avant de commencer :


1. Préparation du système

Vérification de la version de macOS, que Homebrew répond, et mise à jour du catalogue des formules et casks.

sw_vers
brew --version
brew update

(sw_vers doit afficher ProductVersion: 26.x. brew --version doit retourner un numéro sans erreur — sur Apple Silicon, Homebrew est installé dans /opt/homebrew, et son binaire est par défaut dans le PATH.)


2. Installation via Homebrew

Homebrew publie deux casks pour Claude Code : claude-code suit le canal stable (environ une semaine de décalage, sans les régressions majeures), et claude-code@latest suit le canal latest (mises à jour dès leur sortie). Pour un usage courant, le cask stable suffit largement.

brew install --cask claude-code

(Le cask installe le binaire natif dans /opt/homebrew/Caskroom/claude-code/<version>/claude et crée un lien symbolique dans /opt/homebrew/bin/claude. Aucun runtime Node.js requis. Aucune manipulation de PATH à prévoir si Homebrew est correctement initialisé dans le shell.)


3. Vérification de l'installation

claude --version
claude doctor

À la date de rédaction, la version stable est 2.1.142. claude doctor effectue un diagnostic complet (chemin du binaire, gestionnaire de paquets détecté, ripgrep embarqué, canal de mise à jour, état du serveur en arrière-plan).

Si l'installation se fait via une session SSH, claude doctor signale presque toujours un avertissement Keychain de ce type :

⚠ macOS Keychain is not writable
 (security: SecKeychainItemCreateFromContent...
 add-generic-password: returned -25308).
 Console login will fail to save your API key.

Ce n'est pas un défaut d'installation, mais la conséquence directe du fait que le login.keychain-db macOS n'est pas déverrouillable sans interaction graphique. C'est l'objet de la section suivante.


4. Authentification

4.1 OAuth ou clé API ?

Claude Code propose deux modes d'authentification :

Sur le Terminal en local, OAuth fonctionne sans accroc : Claude Code ouvre Safari pour la phase d'authentification, et stocke le token résultant dans le Keychain macOS — qui est déjà déverrouillé par la session graphique de l'utilisateur.

Sur une session SSH headless en revanche, deux obstacles se cumulent :

Une option existe : déverrouiller manuellement le Keychain au début de chaque session SSH.

security unlock-keychain ~/Library/Keychains/login.keychain-db

(Le mot de passe demandé est celui du compte macOS local, pas une clé API. Faisable pour un usage ponctuel, mais ajoute une étape interactive à chaque connexion SSH — peu compatible avec un usage automatisé.)

La voie la plus fiable, tant en local que via SSH, et la seule réellement pratique pour de l'automatisation, est de passer par une clé API. C'est l'objet de la section suivante.

4.2 La méthode du token API

Une clé API générée sur la Console Anthropic contourne complètement le Keychain :

echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc
chmod 600 ~/.zshrc
exec zsh
echo $ANTHROPIC_API_KEY

Conséquences à connaître


5. Premier lancement

claude

Au tout premier lancement, Claude Code affiche un écran Quick safety check qui demande de confirmer la confiance dans le dossier courant avant de le lire, l'éditer ou y exécuter des commandes. Lancé depuis le home (~/), ce prompt est légitime : le home contient typiquement des fichiers privés (.ssh, .zshrc, .aws...) qu'on ne veut pas exposer.

Le plus propre est de quitter avec Esc, de créer un dossier projet dédié, et de relancer claude depuis ce dossier :

mkdir ~/PROJET && cd ~/PROJET
claude

Depuis le dossier projet, l'écran d'accueil de Claude Code apparaît avec :


6. Choix du modèle

Le cask stable suit le canal officiel avec environ une semaine de décalage : la 2.1.142 supporte largement Opus 4.7, qui requiert 2.1.111 ou supérieur. En session, trois commandes utiles :

Pour fixer Opus 4.7 comme modèle par défaut de toutes les sessions futures, l'ajouter à la configuration shell :

echo 'export ANTHROPIC_MODEL="claude-opus-4-7"' >> ~/.zshrc
exec zsh

(Sur clé API Console, Opus 4.7 est accessible sans contrainte de plan. En revanche, sur abonnement Pro le sélecteur masquera Opus et basculera silencieusement sur Sonnet — c'est aussi pour ça que la voie clé API est préférable sur une machine dédiée à du travail Opus.)


7. Mises à jour

À la différence de l'installateur natif officiel (curl ... | bash) qui se met à jour seul en arrière-plan, le cask Homebrew n'auto-update pas. Les mises à jour se font manuellement :

brew update
brew upgrade claude-code

(Pour suivre le canal latest plutôt que stable, le cask alternatif est claude-code@latest ; la commande de mise à jour devient alors brew upgrade claude-code@latest. Homebrew conserve les anciennes versions sur disque après upgrade — lancer brew cleanup périodiquement pour récupérer l'espace.)


Conclusion

L'installation de Claude Code sur macOS Tahoe se résume à un brew install --cask claude-code, à condition d'avoir préalablement Homebrew en place. Le vrai sujet sur macOS n'est pas l'installation elle-même mais l'authentification : OAuth fonctionne nativement en Terminal local, mais le Keychain ne suit pas en session SSH headless. La voie la plus simple et la plus robuste, qui marche dans tous les contextes, est de passer par une clé API Console exportée dans ~/.zshrc — exactement la même approche que sur les VMs Alpine ou FreeBSD, et pour les mêmes raisons de fond.

Une fois en place, la version 2.1.142 du cask permet d'utiliser Opus 4.7 avec contexte 1M sans contrainte, et le cycle de mise à jour se fait via brew upgrade comme tout autre paquet Homebrew.



↑ Haut de page