Installer PoisonZero : référence complète
PoisonZero installe sur chaque appareil un petit daemon qui surveille localement les fichiers mémoire de vos agents. Cette page documente l'installateur de bout en bout : les commandes d'installation rapide, chaque variable d'environnement, le répertoire de données par système d'exploitation, le service qui exécute le daemon et comment le déployer sans surveillance.
Aperçu
Ce que fait l'installateur, dans l'ordre :
- Télécharge le binaire du daemon correspondant depuis
https://poisonzero.com/dl/latest(Linux/macOS/Windows,amd64ouarm64). - Vérifie sa somme de contrôle SHA-256 par rapport au fichier
SHA256SUMSpublié ; s'interrompt à toute divergence. - Installe un service privilégié et, en option, inscrit l'appareil avec une clé d'installation du panneau.
sudo) sous Linux/macOS, une PowerShell Administrateur sous Windows. Utilisez PZ_FETCH_ONLY=1 pour seulement télécharger et vérifier.Prérequis vérifiés avant l'installation :
- x86-64 : AVX2 (Intel Haswell/2013+, AMD Zen+).
- ARM64 : i8mm (Apple M2+ ; Apple M1 non pris en charge).
- Windows : répertoire de données sur un volume NTFS.
Installation rapide
Créez une clé d'installation dans le panneau (ou utilisez un ancien code par appareil), puis exécutez la commande pour votre plateforme :
curl -fsSL https://poisonzero.com/install.sh | sudo \ PZ_ENROLL_CODE="votre-code" sh
$env:PZ_ENROLL_CODE="votre-code" irm https://poisonzero.com/install.ps1 | iex
- Sans code prédéfini : l'installateur demande la clé d'installation (plus les choix d'accélération/palier et headless sur un vrai terminal) ; un ID d'app n'est demandé que pour l'ancien procédé par appareil.
- Une clé d'installation est réutilisable jusqu'à son plafond d'utilisation ; un ancien code par appareil reste à usage unique.
- Déjà inscrit, réexécuté sans nouveau code = mise à niveau : remplace le binaire, redémarre le service, conserve vos identifiants.
Clés d'installation
Créez une clé d'installation dans le panneau, sous Clés d'installation. C'est la façon recommandée d'inscrire des appareils :
- Réutilisable : une clé inscrit des appareils jusqu'au plafond que vous fixez à sa création ; chaque inscription compte pour ce plafond.
- Affichée une fois : copiez-la à sa création - le panneau ne l'affiche plus ensuite.
- Révocable : révoquez-la dans le panneau pour arrêter immédiatement d'autres inscriptions ; les appareils déjà inscrits continuent de fonctionner.
- Aucun ID d'app requis : le backend attribue à chaque appareil son identité au moment de l'utilisation de la clé.
Variables d'environnement
Fixez n'importe quelle option par une variable d'environnement pour exécuter l'installation de façon non interactive :
| Variable | Valeurs | Par défaut | Effet |
|---|---|---|---|
PZ_ENROLL_CODE | clé d'installation | aucun | La clé d'installation du panneau. Requise pour une nouvelle inscription ; seule, elle suffit, car le backend attribue l'identité de l'appareil. Passer une clé neuve sur un appareil déjà inscrit force une réinscription délibérée. |
PZ_APP_ID | App ID | aucun | Ancien et optionnel : nécessaire seulement avec un code par appareil plus ancien, généré avant les clés d'installation. Ignoré seul. |
PZ_HEADLESS | none, standard, strict | none | Fixe la gestion des invites de confirmation utilisateur sur une machine sans utilisateur de bureau pour répondre. none détecte automatiquement d'après l'utilisateur connecté ; standard/strict écrivent un fichier headlessmode que le daemon lit. |
PZ_BACKEND | cpu, gpu | cpu | Backend d'accélération. Le mode CPU seul est le choix par défaut recommandé et le plus sûr. Le GPU est optionnel et affiche un avertissement de sécurité ; le moteur GPU n'est pas encore publié. |
PZ_TIER | enterprise, ultra | enterprise | Palier produit. ultra implique le GPU et est fail-closed sans repli CPU ; enterprise avec GPU se replie sur une installation CPU seul fonctionnelle. |
PZ_FETCH_ONLY | 1 | non défini | Télécharge et vérifie uniquement le binaire, puis quitte. Aucun service n'est installé, donc aucun droit élevé n'est requis. |
PZ_FETCH_DEST | chemin | ./poisonzero (.\poisonzero.exe sous Windows) | Chemin de destination du binaire vérifié quand PZ_FETCH_ONLY=1. |
PZ_SETUP_AGENTS | liste séparée par virgules, ex. claude,codex | non défini | Branche la commande de statistiques locale /poisonzero dans les agents listés (Claude Code, Codex, Gemini, Cursor). Entièrement local, sur adhésion. |
PZ_SETUP_STATUSLINE | 1 | non défini | Ajoute la ligne de statut PoisonZero dans Claude Code (~/.claude/settings.json). Une ligne de statut existante n'est jamais remplacée. |
PZ_DRY_RUN | 1 | non défini | Affiche le mode résolu (fresh/re-enroll/upgrade) et quitte avant tout effet de bord. Utile pour tester l'automatisation. |
POISONZERO_DATA_DIR | chemin | valeur par défaut selon l'OS (voir ci-dessous) | Remplace le répertoire de données utilisé par le daemon et l'installateur. |
--headless none|standard|strict (l'emporte sur PZ_HEADLESS) ; le script de déploiement Windows prend -Headless.Répertoire de données et fichiers
Binaire : /usr/local/bin/poisonzero (Linux/macOS), <ProgramFiles>\PoisonZero\poisonzero.exe (Windows). Répertoire de données par OS :
| OS | Répertoire de données | Propriétaire |
|---|---|---|
| Linux | /var/lib/poisonzero (fichier enroll dans /etc/poisonzero/enroll) | poisonzero:poisonzero |
| macOS | /Library/Application Support/PoisonZero | root:wheel |
| Windows | <ProgramData>\PoisonZero | SYSTEM / Administrateurs |
Fichiers dans le répertoire de données :
credentials- jeton stocké de l'appareil ; sa présence marque l'appareil comme inscrit et n'est jamais écrasé lors d'une mise à niveau.enroll- entrée d'inscription à usage unique (la clé d'installation, plusappIdpour l'ancien procédé) consommée parpoisonzero enrollau premier démarrage.headlessmode- présent seulement quandstandard/stricta été fixé ; absent ou vide = détection automatique.vault/- magasin de quarantaine pour le contenu annulé.
Service / daemon
S'exécute comme un service d'arrière-plan privilégié, un mécanisme par OS :
| OS | Type | Nom et commande de statut |
|---|---|---|
| Linux | unité systemd (root) | poisonzero.service · systemctl status poisonzero |
| macOS | LaunchDaemon launchd | com.poisonzero.daemon · launchctl print system/com.poisonzero.daemon |
| Windows | Tâche planifiée (SYSTEM, au démarrage) | PoisonZero · Get-ScheduledTask -TaskName PoisonZero |
- Windows utilise une tâche planifiée, pas un service Windows : le binaire Go charge son modèle au premier démarrage et manquerait le délai de démarrage du Service Control Manager.
- Un notifieur de bureau s'exécute dans chaque session utilisateur pour l'invite de confirmation utilisateur : autostart XDG (Linux), LaunchAgent par utilisateur (macOS), wrapper VBS via clé Run (Windows).
Installation sans surveillance (Intune / SCCM)
Définissez la clé d'installation dans l'environnement, puis exécutez la même ligne ; avec le code présent et aucun terminal, elle s'exécute sans invites :
PZ_ENROLL_CODE="votre-code" \ sh -c "$(curl -fsSL https://poisonzero.com/install.sh)"
$env:PZ_ENROLL_CODE="votre-code" irm https://poisonzero.com/install.ps1 | iex
PZ_DRY_RUN=1 pour afficher le mode résolu (fresh/re-enroll/upgrade) et quitter avant tout changement.Télécharger et vérifier uniquement
PZ_FETCH_ONLY=1 télécharge le binaire, vérifie sa somme de contrôle SHA-256 et l'écrit sur le disque sans installer de service (aucun droit élevé) :
curl -fsSL https://poisonzero.com/install.sh | PZ_FETCH_ONLY=1 sh # écrit ./poisonzero (remplacer avec PZ_FETCH_DEST)
$env:PZ_FETCH_ONLY="1"; irm https://poisonzero.com/install.ps1 | iex # écrit .\poisonzero.exe (remplacer avec $env:PZ_FETCH_DEST)
Vérifier l'appareil
- Vérifiez que le service tourne avec la commande de statut pour votre OS (tableau ci-dessus).
- Ouvrez le panneau : l'appareil inscrit apparaît avec son statut dans votre liste d'appareils.
- Pour faire passer un appareil à une clé d'installation neuve, réexécutez l'installateur avec un nouveau
PZ_ENROLL_CODE- il se réinscrit proprement.
Désinstaller
Arrêtez le service, puis supprimez le binaire et le répertoire de données :
sudo systemctl disable --now poisonzero.service sudo rm -f /usr/local/bin/poisonzero sudo rm -rf /var/lib/poisonzero /etc/poisonzero
sudo launchctl bootout system /Library/LaunchDaemons/com.poisonzero.daemon.plist sudo rm -f /Library/LaunchDaemons/com.poisonzero.daemon.plist /usr/local/bin/poisonzero sudo rm -rf "/Library/Application Support/PoisonZero"
Unregister-ScheduledTask -TaskName PoisonZero -Confirm:$false icacls "$env:ProgramFiles\PoisonZero\poisonzero.exe" /reset Remove-Item -Recurse -Force "$env:ProgramFiles\PoisonZero", "$env:ProgramData\PoisonZero"
Protégez chaque appareil en une seule commande.
Gratuit pour Linux, macOS et Windows. Installez une fois, les mises à jour s'exécutent automatiquement.
Sign me up