Ejecutar Codex en tu portátil funciona hasta que la tarea dura más que la tapa abierta. Una refactorización larga, una revisión nocturna o una batería de tests que tarda una hora necesitan una máquina que siga encendida, mantenga un checkout limpio y no dependa de la Wi-Fi en la que estés.
Esa máquina suele ser un VPS pequeño. Esta guía es el setup que haríamos a mano en un servidor Ubuntu 24.04 recién creado: dimensionarlo, asegurarlo, instalar Codex CLI, iniciar sesión sin navegador, mantener las sesiones vivas y acceder sin exponer SSH a internet.
Qué necesita Codex de un VPS
El modelo se ejecuta en los servidores de OpenAI, así que Codex CLI en un VPS es sobre todo un cliente de terminal más lo que haga tu repo: instalaciones, builds, tests. La documentación de instalación de OpenAI indica Ubuntu 20.04+ o Debian 10+ en Linux, 4 GB de RAM como mínimo y 8 GB recomendados, y Git 2.23+ como opcional pero recomendado.
Coincide con lo que usamos para nuestros propios agentes:
| Mínimo | Recomendado | Por qué | |
|---|---|---|---|
| CPU | 2 vCPU | 4 vCPU | Tus builds y tests, no el modelo |
| RAM | 4 GB | 8 GB | La recomendación de OpenAI para la CLI |
| Disco | 50 GB | 150 GB | Repos, node_modules, cachés de build, logs |
| SO | Ubuntu 24.04 | Ubuntu 24.04 | LTS actual, compatible con Codex y Tailscale |
Una carga de Codex por VPS es la opción aburrida y segura. Si una tarea sale mal, el daño queda en una máquina pequeña que puedes borrar y reconstruir.
Pon en marcha tu primer agente en unos 3 minutos
Instala la CLI de Office Claws, conecta tu cuenta de Contabo y tu suscripción de Codex, y tu agente tendrá su propio VPS y un escritorio en la oficina.
curl -fsSL https://officeclaws.com/downloads/install.sh | sh$4.99/mes + tu propio VPS de Contabo · las claves se quedan en tu llavero
Paso 1: crear un usuario sin privilegios de root
Las imágenes nuevas de VPS suelen darte root. No ejecutes como root un agente que edita archivos y lanza comandos. Crea un usuario dedicado y copia tu clave SSH:
# as root, once
adduser codex
usermod -aG sudo codex
mkdir -p /home/codex/.ssh
cp ~/.ssh/authorized_keys /home/codex/.ssh/
chown -R codex:codex /home/codex/.ssh
chmod 700 /home/codex/.ssh
chmod 600 /home/codex/.ssh/authorized_keysEntra como codex desde una segunda terminal antes de cerrar la sesión de root. Todo lo que sigue se ejecuta con ese usuario.
Paso 2: instalar Codex CLI
OpenAI publica un instalador independiente para macOS y Linux, así que no necesitas Node.js en el servidor. Instala lo básico y después Codex:
sudo apt update && sudo apt install -y git tmux curl
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --versionSi ya gestionas Node en la máquina, npm install -g @openai/codex es la otra vía oficial. Ambas aparecen en el README de openai/codex y en la documentación de Codex CLI.
Paso 3: iniciar sesión — plan de ChatGPT o API key
La primera vez que ejecutas codex te ofrece Sign in with ChatGPT. En un portátil eso abre un navegador. En un VPS no hay navegador, así que la documentación de autenticación de OpenAI da tres opciones:
Código de dispositivo (preferido en servidores sin pantalla). Está en beta y primero debes activarlo en la configuración de seguridad de ChatGPT:
codex login --device-authReenvío de puertos por SSH. El callback del login escucha en localhost:1455. Reenvía ese puerto desde tu portátil y abre la dirección que aparece en tu navegador local:
# on your laptop
ssh -L 1455:localhost:1455 codex@your-vps
# then, inside that SSH session
codex loginAPI key. Pásala por una tubería en lugar de pegarla en el historial de la shell:
printenv OPENAI_API_KEY | codex login --with-api-keyElegir una u otra es sobre todo una cuestión de facturación. Codex está incluido en los planes Free, Go, Plus, Pro, Business, Edu y Enterprise de ChatGPT, con límites de uso que dependen del plan. Una API key, en cambio, se cobra por token a precios de la API. Hacemos las cuentas en Suscripción de Codex vs coste de la API.
Elijas lo que elijas, Codex guarda las credenciales en ~/.codex/auth.json (o en el almacén de credenciales del sistema). OpenAI recomienda tratar ese archivo como una contraseña: nunca lo subas al repo, no lo pegues en un ticket ni lo compartas en un chat.
Paso 4: mantener las sesiones vivas con tmux y systemd
Una sesión SSH muere cuando el portátil se suspende, y con ella todo lo que Codex estaba haciendo. Para trabajo interactivo, ejecuta Codex dentro de tmux:
tmux new -s codex
cd ~/work/project
codex
# detach with Ctrl-b then d; later, from any machine:
tmux attach -t codexPara tareas recurrentes, olvídate de la terminal. codex exec se ejecuta de forma no interactiva, imprime la respuesta final en stdout y por defecto usa un sandbox de solo lectura, así que tienes que permitir cambios con --sandbox workspace-write (documentación del modo no interactivo). Un timer de systemd lo convierte en una tarea nocturna:
# /etc/systemd/system/codex-nightly.service
[Unit]
Description=Nightly Codex review
[Service]
Type=oneshot
User=codex
WorkingDirectory=/home/codex/work/project
ExecStart=/bin/bash -lc 'codex exec --sandbox workspace-write "review the last day of commits and write findings to REVIEW.md"'
# /etc/systemd/system/codex-nightly.timer
[Timer]
OnCalendar=*-*-* 03:00
Persistent=true
[Install]
WantedBy=timers.targetsudo systemctl daemon-reload
sudo systemctl enable --now codex-nightly.timerProfundizamos en ambos patrones en Tareas largas de Codex y Tareas en segundo plano con Codex CLI.
Paso 5: acceder al VPS de forma segura
Un VPS con el puerto 22 abierto al mundo recibe intentos de fuerza bruta en minutos. Un VPS con un agente y tus credenciales de Codex en disco es un mal sitio para equivocarse.
Hacemos tres cosas:
-
Solo claves. En
/etc/ssh/sshd_config, ponPasswordAuthentication noyPermitRootLogin no, y luegosudo systemctl restart ssh. -
Unirse a una red privada. Instala Tailscale y conecta el servidor a tu tailnet:
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up -
Cerrar el puerto público. Cuando ya puedas entrar por SSH usando la IP de Tailscale del servidor, permite tráfico entrante solo en la interfaz de Tailscale:
sudo ufw allow in on tailscale0 sudo ufw enable
Haz el paso 3 desde una sesión que ya vaya por la tailnet, o te quedarás fuera. La consola web de tu proveedor es la puerta de emergencia. El flujo SSH del día a día lo contamos en Flujo remoto de Codex por SSH.
Paso 6: mantener Codex actualizado
Codex se actualiza a menudo. La vía documentada para la instalación independiente es volver a ejecutar el instalador; si usaste npm, reinstala el paquete:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# or, if you used npm
npm install -g @openai/codexActualiza también el sistema: sudo apt update && sudo apt upgrade de forma periódica, o activa unattended-upgrades para los parches de seguridad.
Cuánto cuesta
| Concepto | Qué pagas | Notas |
|---|---|---|
| VPS | El precio mensual de tu proveedor | Los planes de entrada de 4 vCPU / 8 GB bastan para un agente |
| Codex con plan de ChatGPT | Tu plan actual | Los límites de uso dependen del plan |
| Codex con API key | Precio de la API por token | Solo es predecible si limitas el uso |
| Tailscale | Gratis para uso personal | El plan Personal es suficiente |
Para la mayoría, un plan de ChatGPT es la forma más barata de mantener un agente en un VPS; las API keys tienen sentido para CI o automatizaciones a ráfagas. Si quieres varios agentes en paralelo, lee Cómo ejecutar varios agentes de Codex.
O deja que Office Claws haga estos pasos
Todo lo anterior es lo que automatiza Office Claws. Aportas un VPS Ubuntu 24.04 recién instalado en tu propia cuenta de Contabo y una auth key de Tailscale, y ejecutas:
officeclaws onboard --name Mona
officeclaws connect-codexonboard añade una clave SSH dedicada, crea un usuario separado, activa el firewall, la protección contra fuerza bruta y las actualizaciones de seguridad automáticas, desactiva el login por contraseña y como root, une el servidor a tu tailnet, cierra el SSH público y arranca el agente. Suele tardar 5–10 minutos. connect-codex conecta el agente a tu plan de ChatGPT mediante el inicio de sesión oficial de OpenAI, sin API key y sin facturación por token.
Para ser claros con el compromiso: obtienes un agente con el que chateas desde la CLI o Telegram, con tareas programadas, no una terminal de Codex en bruto que automatizas tú. Office Claws cuesta $4.99/mes; el VPS lo factura Contabo directamente. La guía completa está en el inicio rápido.
Recomendaciones
Empieza con un VPS, un usuario y una sesión de Codex en tmux. Haz funcionar el inicio de sesión con código de dispositivo, cierra el puerto SSH público y solo entonces añade timers o un segundo agente. Si prefieres saltarte el setup, deja que Office Claws lo haga y dedica ese tiempo a la tarea de verdad.
Lecturas relacionadas:
- Flujo remoto de Codex por SSH — el día a día por SSH una vez que el VPS funciona
- Tareas largas de Codex — por qué importan las sesiones persistentes cuando el trabajo dura horas
- Tareas en segundo plano con Codex CLI — ejecutar Codex sin una terminal conectada
- Cómo ejecutar varios agentes de Codex — de un VPS a un pequeño equipo
- Suscripción de Codex vs coste de la API — qué factura de Codex tiene sentido para un agente en un VPS