**Ce qu'on a testé** : une machine jetable, réseau coupé (`--network none`), puis l'installateur officiel relancé étape par étape, en préparant à chaque fois ce qui pouvait raisonnablement l'être avant de couper la connexion. Voici exactement où ça bloque, et ce qui s'évite.
**Avant même de commencer** : la commande d'installation standard (`curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash`) est elle-même une requête réseau. Sans connexion du tout, impossible d'obtenir le script — il faut au minimum le télécharger une fois pendant que vous êtes connecté, puis le lancer plus tard hors ligne si besoin.
**Premier blocage réel : `uv`** (le gestionnaire Python que Hermes Agent utilise). Message exact : `curl: (6) Could not resolve host: astral.sh`. Ça s'évite : téléchargez `uv` pendant que vous êtes connecté (`curl -LsSf https://astral.sh/uv/install.sh | sh`), placez le binaire résultant dans `~/.hermes/bin/`, et l'installateur le détecte automatiquement sans retenter le téléchargement.
**Deuxième blocage : Python 3.11.** `uv` le télécharge lui-même depuis GitHub. Ça se prépare aussi : lancez `uv python install 3.11` en étant connecté, et emportez le dossier résultant (`/usr/local/share/uv/python` par défaut pour une installation root) — confirmé sans nouveau téléchargement au relancement.
**Troisième blocage : Node.js.** Message exact : `curl: (6) Could not resolve host: nodejs.org`. Même logique : téléchargez l'archive Node pendant que vous êtes connecté, décompressez-la quelque part dans le PATH avant de couper — la vérification de version passe et l'installateur saute directement cette étape.
**Un compilateur C++** (`build-essential`, nécessaire pour certains modules Node natifs) doit lui aussi être installé via `apt` pendant que vous êtes connecté — sans lui, ces modules spécifiques échoueront plus tard, sans bloquer le reste.
**Ripgrep et ffmpeg ne sont PAS des blocages** : s'ils manquent, l'installateur continue avec un avertissement — recherche de fichiers en repli sur `grep`, messages vocaux TTS limités. Ni l'un ni l'autre n'empêche l'agent de fonctionner.
**Le vrai mur, celui qui résiste à toute préparation** : même avec tout ce qui précède déjà en place, l'installateur doit encore synchroniser le code source d'Hermes Agent avec GitHub. Cloner le dépôt à l'avance ne suffit pas — l'installateur détecte la copie existante (« Existing installation found, updating... ») mais tente quand même un `git fetch` à chaque lancement, qui échoue exactement pareil hors ligne (`Could not resolve host: github.com`). Aucune option documentée ne permet de sauter cette vérification.
**Et une fois l'agent lancé**, il appelle votre fournisseur de modèle (OpenRouter, OpenAI...) pour chaque réponse qu'il génère — ce point-là ne se prépare jamais à l'avance, quelle que soit la préparation en amont.
**En pratique** : préparez tout ce qui précède (uv, Python, Node, compilateur) pendant une connexion normale, et gardez une fenêtre de connectivité — même brève, un partage de connexion mobile suffit — pour le clonage initial et le premier lancement. Le reste peut se faire hors ligne.
Si vous préférez éviter cette préparation entièrement, [on héberge votre agent pour vous](https://hermesagentfrance.com/hermes-heberge) : vous gardez votre propre clé API, 12 €/mois, rien à installer.