Installation et exploitation

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.

~9 min de lecture · Installation et exploitation

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, amd64 ou arm64).
  • Vérifie sa somme de contrôle SHA-256 par rapport au fichier SHA256SUMS publié ; s'interrompt à toute divergence.
  • Installe un service privilégié et, en option, inscrit l'appareil avec une clé d'installation du panneau.
L'installation du service exige des droits élevés : root (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 :

bashTerminal
curl -fsSL https://poisonzero.com/install.sh | sudo \
  PZ_ENROLL_CODE="votre-code" sh
powershellPowerShell
$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.
Les mises à jour s'exécutent automatiquement. Installez une fois par appareil ; réexécutez seulement pour changer l'inscription ou forcer un remplacement du binaire.

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é.
L'ancien procédé - créer un appareil dans le panneau pour obtenir un ID d'app correspondant et un code à usage unique - fonctionne toujours à l'identique. Utilisez-le pour les installateurs plus anciens ou les intégrations déjà construites autour de lui.

Variables d'environnement

Fixez n'importe quelle option par une variable d'environnement pour exécuter l'installation de façon non interactive :

VariableValeursPar défautEffet
PZ_ENROLL_CODEclé d'installationaucunLa 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_IDApp IDaucunAncien et optionnel : nécessaire seulement avec un code par appareil plus ancien, généré avant les clés d'installation. Ignoré seul.
PZ_HEADLESSnone, standard, strictnoneFixe 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_BACKENDcpu, gpucpuBackend 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_TIERenterprise, ultraenterprisePalier 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_ONLY1non définiTélécharge et vérifie uniquement le binaire, puis quitte. Aucun service n'est installé, donc aucun droit élevé n'est requis.
PZ_FETCH_DESTchemin./poisonzero (.\poisonzero.exe sous Windows)Chemin de destination du binaire vérifié quand PZ_FETCH_ONLY=1.
PZ_SETUP_AGENTSliste séparée par virgules, ex. claude,codexnon définiBranche la commande de statistiques locale /poisonzero dans les agents listés (Claude Code, Codex, Gemini, Cursor). Entièrement local, sur adhésion.
PZ_SETUP_STATUSLINE1non définiAjoute la ligne de statut PoisonZero dans Claude Code (~/.claude/settings.json). Une ligne de statut existante n'est jamais remplacée.
PZ_DRY_RUN1non définiAffiche le mode résolu (fresh/re-enroll/upgrade) et quitte avant tout effet de bord. Utile pour tester l'automatisation.
POISONZERO_DATA_DIRcheminvaleur par défaut selon l'OS (voir ci-dessous)Remplace le répertoire de données utilisé par le daemon et l'installateur.
Linux/macOS acceptent aussi une option --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 :

OSRépertoire de donnéesPropriétaire
Linux/var/lib/poisonzero (fichier enroll dans /etc/poisonzero/enroll)poisonzero:poisonzero
macOS/Library/Application Support/PoisonZeroroot:wheel
Windows<ProgramData>\PoisonZeroSYSTEM / 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, plus appId pour l'ancien procédé) consommée par poisonzero enroll au premier démarrage.
  • headlessmode - présent seulement quand standard/strict a é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 :

OSTypeNom et commande de statut
Linuxunité systemd (root)poisonzero.service · systemctl status poisonzero
macOSLaunchDaemon launchdcom.poisonzero.daemon · launchctl print system/com.poisonzero.daemon
WindowsTâ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 :

bashSans surveillance
PZ_ENROLL_CODE="votre-code" \
  sh -c "$(curl -fsSL https://poisonzero.com/install.sh)"
powershellSans surveillance
$env:PZ_ENROLL_CODE="votre-code"
irm https://poisonzero.com/install.ps1 | iex
Ajoutez 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é) :

bashTéléchargement seul
curl -fsSL https://poisonzero.com/install.sh | PZ_FETCH_ONLY=1 sh
# écrit ./poisonzero (remplacer avec PZ_FETCH_DEST)
powershellTéléchargement seul
$env:PZ_FETCH_ONLY="1"; irm https://poisonzero.com/install.ps1 | iex
# écrit .\poisonzero.exe (remplacer avec $env:PZ_FETCH_DEST)
La vérification de la somme de contrôle est obligatoire sur chaque chemin ; un téléchargement altéré ou tronqué n'est jamais installé.

Vérifier l'appareil

  1. Vérifiez que le service tourne avec la commande de statut pour votre OS (tableau ci-dessus).
  2. Ouvrez le panneau : l'appareil inscrit apparaît avec son statut dans votre liste d'appareils.
  3. 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 :

bashDésinstaller
sudo systemctl disable --now poisonzero.service
sudo rm -f /usr/local/bin/poisonzero
sudo rm -rf /var/lib/poisonzero /etc/poisonzero
bashDésinstaller
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"
powershellDésinstaller
Unregister-ScheduledTask -TaskName PoisonZero -Confirm:$false
icacls "$env:ProgramFiles\PoisonZero\poisonzero.exe" /reset
Remove-Item -Recurse -Force "$env:ProgramFiles\PoisonZero", "$env:ProgramData\PoisonZero"
Mettre en pause plutôt que désinstaller ? La protection est fail-closed par conception, donc retirer le service est la façon propre de l'arrêter entièrement.
Est-ce utile ?

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