Pourquoi construire un environnement IA local ?
Depuis quelques mois, les assistants IA ne sont plus réservés aux plateformes cloud.
Entre les modèles locaux pilotés par Ollama et les outils de développement augmentés comme Claude Code, il devient possible de construire un environnement de travail moderne, reproductible et parfaitement intégré à Nixos.
Le problème, c’est que l’empilement technique devient rapidement fragile :
- une version de Node.js incompatible ;
- un npm global qui casse après une mise à jour ;
- des dépendances qui divergent d’une machine à l’autre ;
- des outils IA installés à moitié dans le système et à moitié dans le home utilisateur.
C’est précisément là que NixOS change complètement l’expérience.
Avec un simple flake.nix, il devient possible de décrire un environnement de développement complet, reproductible et portable.
Dans cet article, nous allons mettre en place :
- Client Ollama pour exécuter des modèles locaux ;
- Claude Code comme assistant de développement ;
- un shell Nix moderne compatible NixOS 25.11.
Le principe : un environnement entièrement déclaratif et reproductif
La base
|
|
Ce fichier permettra :
- d’installer automatiquement les bons paquets ;
- d’obtenir les mêmes versions sur toutes les machines ;
- d’éviter les conflits entre projets ;
- de reconstruire l’environnement en quelques secondes.
C’est l’un des grands avantages de NixOS : l’environnement devient du code.
La structure du flake
Voici une version compatible avec NixOS 25.11.
|
|
Pourquoi utiliser nodejs_24 ?
Avant NixOS 25.11, beaucoup de projets utilisaient encore :
|
|
Le problème est que tout le namespace nodePackages a été supprimé dans les versions récentes de nixpkgs.
La bonne pratique consiste désormais à utiliser directement une version explicite de Node.js :
|
|
Cela fournit automatiquement :
- node
- npm
- npx
sans dépendre des anciens wrappers nodePackages.
Pourquoi installer Claude Code via Nix ?
Beaucoup de tutoriels recommandent encore :
|
|
Techniquement, cela fonctionne, mais dans une logique NixOS, cette approche casse plusieurs principes importants :
- npm va essayer d'écrire dans /nix/store
- l’installation n’est plus déclarative ;
- le binaire dépend du profil utilisateur ;
- les versions deviennent difficiles Ă reproduire ;
- les mises à jour peuvent casser silencieusement l’environnement.
L’approche ici consiste donc à utiliser directement le paquet :
|
|
Le paquet étant marqué unfree, il faut activer explicitement :
|
|
Démarrer l’environnement
Une fois le fichier créé, il suffit d’exécuter :
|
|
Le shell charge automatiquement :
- Ollama ;
- Node.js ;
- Claude Code ;
- les variables d’environnement.
Ollama étant déjà installé avec open-webui pour d'autres usages, il me reste simplement à lancer Claude Code :
|
|
Pourquoi cette approche devient incontournable
L’écosystème IA évolue extrêmement vite.
Les dépendances changent constamment. Les versions de Node.js deviennent incompatibles. Les wrappers npm globaux cassent régulièrement.
Avec NixOS, on verrouille complètement l’environnement.
Aller plus loin
Une fois cette base fonctionnelle, plusieurs extensions deviennent intéressantes :
intégrer direnv pour charger automatiquement le shell
Ici il suffit d'ajouter un fichier flake.nix Ă la racine du projet :
|
|
Autoriser le chargement automatique du flake :
|
|
Vous pouvez ajouter :
ajouter CUDA pour l’accélération GPU (mais moi j'ai pas);
empaqueter des modèles Ollama spécifiques ;
construire des environnements totalement hermétiques par projet.
Alexandre