Instalar PoisonZero: referencia completa
PoisonZero instala en cada dispositivo un pequeño daemon que vigila localmente los archivos de memoria de tus agentes. Esta página documenta el instalador de principio a fin: los comandos de instalación rápida, cada variable de entorno, el directorio de datos por sistema operativo, el servicio que ejecuta el daemon y cómo desplegarlo de forma desatendida.
Resumen
Lo que hace el instalador, en orden:
- Descarga el binario del daemon correspondiente desde
https://poisonzero.com/dl/latest(Linux/macOS/Windows,amd64oarm64). - Verifica su suma de comprobación SHA-256 contra el archivo
SHA256SUMSpublicado; aborta ante cualquier discrepancia. - Instala un servicio privilegiado y, opcionalmente, inscribe el dispositivo con una clave de instalación del panel.
sudo) en Linux/macOS, una PowerShell de Administrador en Windows. Usa PZ_FETCH_ONLY=1 para solo descargar y verificar.Requisitos comprobados antes de instalar:
- x86-64: AVX2 (Intel Haswell/2013+, AMD Zen+).
- ARM64: i8mm (Apple M2+; Apple M1 no compatible).
- Windows: directorio de datos en un volumen NTFS.
Instalación rápida
Crea una clave de instalación en el panel (o usa un código heredado por dispositivo) y ejecuta el comando para tu plataforma:
curl -fsSL https://poisonzero.com/install.sh | sudo \ PZ_ENROLL_CODE="tu-codigo" sh
$env:PZ_ENROLL_CODE="tu-codigo" irm https://poisonzero.com/install.ps1 | iex
- Sin código predefinido: el instalador pide la clave de instalación (más las opciones de aceleración/nivel y headless en una terminal real); solo pide un app ID para el procedimiento heredado por dispositivo.
- Una clave de instalación es de uso múltiple hasta su límite de canjes; un código heredado por dispositivo sigue siendo de un solo uso.
- Ya inscrito y reejecutado sin código nuevo = actualización: reemplaza el binario, reinicia el servicio, conserva tus credenciales.
Claves de instalación
Crea una clave de instalación en el panel, en Claves de instalación. Es la forma recomendada de enrolar dispositivos:
- De uso múltiple: una clave enrola dispositivos hasta el límite de canjes que fijas al crearla; cada enrolamiento cuenta contra ese límite.
- Se muestra una sola vez: cópiala al crearla - el panel no vuelve a mostrarla después.
- Revocable: revócala en el panel para detener de inmediato más canjes; los dispositivos ya enrolados siguen funcionando.
- Sin app ID necesario: el backend asigna a cada dispositivo su identidad en el momento del canje.
Variables de entorno
Fija cualquier opción mediante una variable de entorno para ejecutar la instalación de forma no interactiva:
| Variable | Valores | Por defecto | Efecto |
|---|---|---|---|
PZ_ENROLL_CODE | clave de instalación | ninguno | La clave de instalación del panel. Requerida para un enrolamiento nuevo; sola basta, porque el backend asigna la identidad del dispositivo. Pasar una clave nueva en un dispositivo ya inscrito fuerza una reinscripción deliberada. |
PZ_APP_ID | App ID | ninguno | Heredada y opcional: solo hace falta junto con un código por dispositivo más antiguo, generado antes de las claves de instalación. Se ignora sola. |
PZ_HEADLESS | none, standard, strict | none | Fija la gestión de las solicitudes de confirmación del usuario en una máquina sin usuario de escritorio. none autodetecta a partir del usuario conectado; standard/strict escriben un archivo headlessmode que el daemon lee. |
PZ_BACKEND | cpu, gpu | cpu | Backend de aceleración. Solo CPU es el valor por defecto recomendado y más seguro. La GPU es opcional y muestra un aviso de seguridad; el motor de GPU aún no está publicado. |
PZ_TIER | enterprise, ultra | enterprise | Nivel de producto. ultra implica GPU y es fail-closed sin retorno a CPU; enterprise con GPU recae en una instalación de solo CPU que funciona. |
PZ_FETCH_ONLY | 1 | sin definir | Solo descarga y verifica el binario, luego sale. No se instala ningún servicio, así que no hacen falta permisos elevados. |
PZ_FETCH_DEST | ruta | ./poisonzero (.\poisonzero.exe en Windows) | Ruta de destino del binario verificado cuando PZ_FETCH_ONLY=1. |
PZ_SETUP_AGENTS | lista separada por comas, p. ej. claude,codex | sin definir | Conecta el comando local de estadísticas /poisonzero en los agentes indicados (Claude Code, Codex, Gemini, Cursor). Totalmente local, por adhesión. |
PZ_SETUP_STATUSLINE | 1 | sin definir | Añade la línea de estado de PoisonZero en Claude Code (~/.claude/settings.json). Una línea de estado existente nunca se reemplaza. |
PZ_DRY_RUN | 1 | sin definir | Imprime el modo resuelto (fresh/re-enroll/upgrade) y sale antes de cualquier efecto secundario. Útil para probar la automatización. |
POISONZERO_DATA_DIR | ruta | valor por defecto según el SO (ver abajo) | Sobrescribe el directorio de datos que usan el daemon y el instalador. |
--headless none|standard|strict (gana sobre PZ_HEADLESS); el script de despliegue de Windows toma -Headless.Directorio de datos y archivos
Binario: /usr/local/bin/poisonzero (Linux/macOS), <ProgramFiles>\PoisonZero\poisonzero.exe (Windows). Directorio de datos por SO:
| SO | Directorio de datos | Propietario |
|---|---|---|
| Linux | /var/lib/poisonzero (archivo enroll en /etc/poisonzero/enroll) | poisonzero:poisonzero |
| macOS | /Library/Application Support/PoisonZero | root:wheel |
| Windows | <ProgramData>\PoisonZero | SYSTEM / Administradores |
Archivos dentro del directorio de datos:
credentials- token almacenado del dispositivo; su presencia marca el dispositivo como inscrito y nunca se sobrescribe en una actualización.enroll- entrada de inscripción de un solo uso (la clave de instalación, másappIden el procedimiento heredado) que consumepoisonzero enrollen el primer arranque.headlessmode- presente solo cuando se fijóstandard/strict; ausente o vacío = autodetección.vault/- almacén de cuarentena para el contenido revertido.
Servicio / daemon
Se ejecuta como un servicio en segundo plano privilegiado, un mecanismo por SO:
| SO | Tipo | Nombre y comando de estado |
|---|---|---|
| Linux | unidad systemd (root) | poisonzero.service · systemctl status poisonzero |
| macOS | LaunchDaemon de launchd | com.poisonzero.daemon · launchctl print system/com.poisonzero.daemon |
| Windows | Tarea programada (SYSTEM, al arrancar) | PoisonZero · Get-ScheduledTask -TaskName PoisonZero |
- Windows usa una tarea programada, no un servicio de Windows: el binario de Go carga su modelo en el primer arranque y perdería el tiempo de espera de arranque del Service Control Manager.
- Un notificador de escritorio se ejecuta en cada sesión de usuario para la solicitud de confirmación del usuario: autoarranque XDG (Linux), LaunchAgent por usuario (macOS), envoltorio VBS vía clave Run (Windows).
Instalación desatendida (Intune / SCCM)
Define la clave de instalación en el entorno y luego ejecuta la misma línea; con el código presente y sin terminal, se ejecuta sin avisos:
PZ_ENROLL_CODE="tu-codigo" \ sh -c "$(curl -fsSL https://poisonzero.com/install.sh)"
$env:PZ_ENROLL_CODE="tu-codigo" irm https://poisonzero.com/install.ps1 | iex
PZ_DRY_RUN=1 para imprimir el modo resuelto (fresh/re-enroll/upgrade) y salir antes de cualquier cambio.Solo descargar y verificar
PZ_FETCH_ONLY=1 descarga el binario, verifica su suma de comprobación SHA-256 y lo escribe en disco sin instalar un servicio (sin permisos elevados):
curl -fsSL https://poisonzero.com/install.sh | PZ_FETCH_ONLY=1 sh # escribe ./poisonzero (sobrescribir con PZ_FETCH_DEST)
$env:PZ_FETCH_ONLY="1"; irm https://poisonzero.com/install.ps1 | iex # escribe .\poisonzero.exe (sobrescribir con $env:PZ_FETCH_DEST)
Verificar el dispositivo
- Comprueba que el servicio está en marcha con el comando de estado para tu SO (tabla de arriba).
- Abre el panel: el dispositivo inscrito aparece con su estado en tu lista de dispositivos.
- Para pasar un dispositivo a una clave de instalación nueva, reejecuta el instalador con una nueva
PZ_ENROLL_CODE- se reinscribe limpiamente.
Desinstalar
Detén el servicio, luego elimina el binario y el directorio de datos:
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"
Protege cada dispositivo con un solo comando.
Gratis para Linux, macOS y Windows. Instala una vez, las actualizaciones se ejecutan automáticamente.
Sign me up