Cody abstrae, orquesta y potencia el motor Google Antigravity CLI (agy). Ofrece streaming bidireccional en tiempo real, bloqueos de concurrencia seguros por carpeta, interfaz Web PWA reactiva y control operativo completo desde Telegram.
server.py y ejecuta las pruebas unitarias.
server.py: L30-L75
server.py — añadido verify_token() en endpoint /ws
pytest tests/test_auth.py → 4 passed in 0.42s
He implementado la validación criptográfica RS256 con PyJWKClient sobre la cabecera cf-access-jwt-assertion. Los WebSockets rechazan ahora conexiones con código 4401 si el token es inválido o no coincide con el AUD establecido.
Cody elimina la fricción entre la IA generativa de vanguardia y el entorno de ejecución real de tus proyectos en servidor.
Observa cómo el agente piensa, planea y ejecuta herramientas en tiempo real. Soporta difusión multi-cliente para seguir una misma conversación simultáneamente desde tu laptop y tu teléfono sin perder el hilo.
{"type": "tool", "label": "🔧 run_command: git status"}
{"type": "delta", "text": "Los cambios están listos..."}
{"type": "done", "status": "completed"}
Validación criptográfica RS256 de aserciones JWT por Cloudflare Access (Zero Trust). Toda operación de archivo pasa por safe_path() resolviendo enlaces simbólicos para impedir cualquier fuga fuera de PROJECTS_ROOT.
Evita condiciones de carrera catastróficas. El semáforo global limita la carga computacional y el sistema _cwd_locks garantiza que dos chats concurrentes nunca modifiquen los mismos archivos simultáneamente.
Ejecuta comandos bash con /exec, descarga archivos con /download, lee y escribe código o ajusta el nivel de razonamiento (/effort) sin abrir la laptop. Throttling inteligente para evitar bloqueos de API.
Inspección nativa directa de /proc/stat, /proc/meminfo y controladores de cgroups v1 y v2. Mide el consumo real de CPU, memoria de contenedor Docker/LXC y uso de disco en tiempo real.
Si una conversación expira o se invalida en el motor Antigravity, Cody detecta la anomalía, limpia el contexto obsoleto y recrea la sesión sin interrumpir la experiencia de trabajo del usuario.
Selecciona una tarea de ingeniería o introduce un comando para observar la simulación de ejecución de herramientas, trazas y streaming.
El bot de Telegram de Cody te permite resolver incidentes, compilar proyectos o consultar métricas desde cualquier lugar sin necesidad de SSH tradicional.
/exec <cmd>Ejecuta cualquier comando bash en el servidor. Protegido con timeout configurable de 120s y captura de stdout/stderr.
/read & /writeConsulta ficheros en bloques o recíbelos como documentos descargables. Edita configuraciones críticas con un simple mensaje.
/info & /modelCambia el modelo de Antigravity en caliente, ajusta el nivel de razonamiento o consulta CPU, memoria y cgroups al instante.
@owner_onlySolo responde a tu ID de Telegram autorizado (ALLOWED_USER_ID). Cualquier intento externo es descartado silenciosamente.
| Comando | Uso | Descripción |
|---|---|---|
/exec |
/exec <comando> |
Ejecuta un script o comando bash en el servidor. |
/cd |
/cd <carpeta> |
Navega dentro del árbol de proyectos. |
/ls |
/ls [carpeta] |
Lista archivos y directorios con tamaños. |
/download |
/download <ruta> |
Envía el archivo al chat como adjunto nativo. |
/upload |
Al adjuntar foto/doc | Guarda el documento subido en el servidor. |
/model |
/model [slug] |
Consulta o cambia el modelo de Antigravity. |
/effort |
/effort [nivel] |
Ajusta el razonamiento del modelo de IA. |
/cancel |
/cancel |
Mata de inmediato el proceso en curso con SIGKILL. |
Diseñado bajo una separación estricta de responsabilidades: el núcleo cody_core.py es agnóstico a la interfaz gráfica.
agy)
Ejecutado con --output-format stream-json para recepción token a token de eventos de razonamiento y uso de herramientas.
Interconecta tus propias herramientas o scripts con los endpoints y eventos del servidor Cody.
PROJECTS_ROOT
/ws)// Enviar turno al agente
{
"type": "chat",
"chat_id": "4b7a1e2f9012",
"text": "¿Cómo puedo optimizar la consulta SQL?",
"files": ["/mnt/projects/models.py"]
}
// Cancelar ejecución en curso
{
"type": "cancel",
"chat_id": "4b7a1e2f9012"
}
Configura y lanza Cody en tu servidor Linux en menos de 3 minutos.
Requiere Python 3.10+ y el CLI de Google Antigravity (agy) instalado en el PATH.
# Instalar dependencias para el Núcleo y Servidor Web FastAPI
pip install -r requirements.txt
# Si vas a utilizar el bot de Telegram (app.py):
pip install "python-telegram-bot>=21"
Define la raíz de proyectos permitida y las opciones del servidor y del bot.
cat << 'EOF' > .env
PROJECTS_ROOT=/mnt/projects
AGY_BIN=agy
AGENT_PERMISSIONS=skip
AGENT_TIMEOUT=600
MAX_PARALLEL=2
# Configuración Web
WEB_HOST=0.0.0.0
WEB_PORT=8080
WEB_DEV_NO_AUTH=1
# Telegram Bot (Opcional)
# TELEGRAM_TOKEN=123456789:ABCDefghIJKlmnoPQRstuvWXYZ
# ALLOWED_USER_ID=12345678
EOF
Inicia el servidor ASGI con soporte para WebSockets y carga de archivos.
# Ejecutar servidor FastAPI / Uvicorn
python3 server.py
# Abre en tu navegador preferido:
# http://localhost:8080
Inicia el cliente de mensajería para interacción móvil autónoma.
# Iniciar polling del bot
python3 app.py
Mantén Cody en ejecución continua como servicio de sistema con autoreinicio.
# /etc/systemd/system/cody_elbot.service
[Unit]
Description=Servicio Cody Elbot (Web Backend)
After=network.target
[Service]
User=root
WorkingDirectory=/mnt/projects
ExecStart=/usr/bin/python3 /mnt/projects/server.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now cody_elbot.service
sudo systemctl status cody_elbot.service
Cody invoca el ejecutable agy en subprocesos aislados con la bandera --output-format stream-json. Esto permite parsear en tiempo real eventos NDJSON de inicialización, deltas de texto token a token y trazas de ejecución de herramientas sin bloquear el servidor web.
Utiliza la función de blindaje safe_path(base, name) que resuelve enlaces simbólicos con os.path.realpath y valida con os.path.commonpath que ninguna ruta solicitada escape del directorio PROJECTS_ROOT. Esto previene ataques de Path-Traversal tanto desde la web como desde Telegram.
Sí. La arquitectura WebSocket de server.py implementa un gestor de conexiones con broadcast multi-cliente. Si tienes la sesión abierta en tu portátil y en tu tableta, ambos dispositivos reciben los tokens y trazas sincronizados en tiempo real.
Cody cuenta con un sistema de bloqueos asíncronos por directorio (_cwd_locks). Si una conversación está modificando archivos en una ruta determinada, cualquier otra petición hacia esa misma carpeta esperará en cola de forma ordenada hasta que el lock sea liberado.
Totalmente. El módulo de telemetría de cody_core.py detecta automáticamente controladores de cgroups v1 y v2 (/sys/fs/cgroup) para reportar cuotas de CPU y límites reales de memoria del contenedor en lugar de confundirlos con el host entero.