✨ Programación en parejas & Agente Autónomo Open Architecture

Tu Ingeniero de Software IA residiendo en tu propio servidor

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.

Seguridad Zero Trust & SafePath
Streaming WebSocket NDJSON
Web PWA + Telegram Bot
En línea (FastAPI + agy)
📂 api/
📄 server.py
⚙️ cody_core.py
🤖 app.py
🌐 index.html
🔒 .env
# refactor-fastapi-ws Cwd: /mnt/projects • Gemini 3.8 Flash
LIVE WS
TÚ
Agrega validación de tokens JWT de Cloudflare Access a los WebSockets de server.py y ejecuta las pruebas unitarias.
Cody
🔧 read_file server.py: L30-L75
✏️ edit_file server.py — añadido verify_token() en endpoint /ws
⚡ run_command 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.

✨ Tarea completada con éxito • 0 errores • Lock liberado
Escribe una instrucción o arrastra archivos...
🤖
⋮
/exec git status && df -h /mnt/projects
09:14
Cody Elbot
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       120G   34G   81G  30% /mnt/projects
⏱️ Ejecutado en 0.28s • Timeout: 120s
09:14
/info
09:15
Cody Elbot
📊 Estado del Sistema (Cody v4.0.0)
• CPU: 8.2% (Host) • Uptime: 14d 6h
• Memoria: 2.4 GB / 16.0 GB (15%)
• Cgroups: Quota unmetered (v2)
• Motor IA: Google Antigravity CLI (stream-json)
• Modelo Activo: gemini-3.8-flash
• Directorio: /mnt/projects
09:15
📎 Mensaje o comando (/exec, /read, /ls)... ➤
< 15ms
Latencia WebSocket en broadcast
100%
Aislamiento Anti Path-Traversal
200MB
Carga de archivos drag & drop
0Zombies
Limpieza de procesos con killpg
Poder & Control

Diseñado para desarrolladores que exigen control total

Cody elimina la fricción entre la IA generativa de vanguardia y el entorno de ejecución real de tus proyectos en servidor.

Streaming Reactivo NDJSON & Broadcast WebSocket

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.

FastAPI WebSocket NDJSON stream-json Sincronización multi-cliente
Eventos en vivoWebSocket
{"type": "tool", "label": "🔧 run_command: git status"}
{"type": "delta", "text": "Los cambios están listos..."}
{"type": "done", "status": "completed"}

Blindaje SafePath & Cloudflare Access

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.

Bloqueos de Carpeta Asíncronos

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.

Control Total desde Telegram

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.

Telemetría Kernel & cgroups

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.

Auto-recuperación de Sesiones

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.

Laboratorio Interactivo

Prueba a Cody en Vivo

Selecciona una tarea de ingeniería o introduce un comando para observar la simulación de ejecución de herramientas, trazas y streaming.

Escenarios de prueba:
cody-session://terminal-stream
# Haz clic en "Ejecutar Simulación" o selecciona un escenario arriba
cody@srv:/mnt/projects$ cody "Refactorizar endpoints WebSockets de server.py para validar tokens de Cloudflare Access"
Móvil Primero

El poder de tu servidor, directo en tu bolsillo

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>

Ejecución Remota con Timeout

Ejecuta cualquier comando bash en el servidor. Protegido con timeout configurable de 120s y captura de stdout/stderr.

/read & /write

Lectura y Edición de Archivos

Consulta ficheros en bloques o recíbelos como documentos descargables. Edita configuraciones críticas con un simple mensaje.

/info & /model

Telemetría y Cambio de Modelo

Cambia el modelo de Antigravity en caliente, ajusta el nivel de razonamiento o consulta CPU, memoria y cgroups al instante.

@owner_only

Seguridad de Acceso Restringido

Solo responde a tu ID de Telegram autorizado (ALLOWED_USER_ID). Cualquier intento externo es descartado silenciosamente.

Comandos de Telegram Cheat Sheet

app.py
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.
Ingeniería Interna

Arquitectura Modular Desacoplada

Diseñado bajo una separación estricta de responsabilidades: el núcleo cody_core.py es agnóstico a la interfaz gráfica.

Canales de Entrada
🌐
Frontend Web / PWA
SPA reactiva, streaming WebSocket, breadcrumbs y drop zone
📱
Cliente Telegram
python-telegram-bot v21+, polling y streaming throttled
↓ Autenticación & Transporte Seguro ↓
Seguridad Perimetral
🛡️
Cloudflare Access
Validación JWKS RS256 de cabeceras JWT con zero-trust
👤
Telegram Owner Filter
Decorador @owner_only descartando usuarios no autorizados
↓ Capa de Aplicación Asíncrona ↓
Capa de Servidores
⚡
server.py (FastAPI)
Broadcast WebSocket, REST API de archivos y chats persistentes
🤖
app.py (Bot Telegram)
Gestor de comandos, edición progresiva (1.2s) y subidas
↓ Núcleo Común (cody_core.py) ↓
cody_core.py — Núcleo del Agente
Semáforo & Locks MAX_PARALLEL + _cwd_locks por carpeta
SafePath Shield Anti symlinks & validación commonpath
Process Manager killpg anti huérfanos + NDJSON parser
Telemetría /proc/stat + cgroups v1/v2 Docker
↓ Invocación CLI Headless ↓
Motor de Inteligencia Artificial
Google Antigravity CLI (agy)

Ejecutado con --output-format stream-json para recepción token a token de eventos de razonamiento y uso de herramientas.

Especificación Técnica

API REST & Protocolo WebSocket

Interconecta tus propias herramientas o scripts con los endpoints y eventos del servidor Cody.

Endpoints REST Principales

HTTP JSON
GET /api/ls?path=... Lista archivos en PROJECTS_ROOT
GET /api/file?path=... Descarga archivo binario o de texto
POST /api/upload Sube archivos (multipart, hasta 200MB)
GET /api/info Telemetría de CPU, RAM, disco y cgroups
GET /api/chats Listado de conversaciones persistentes
POST /api/chats Crea un chat vinculado a una carpeta
DELETE /api/chats/{id} Elimina el historial de conversación

Protocolo WebSocket (/ws)

Bidireccional

Cliente → Servidor

// 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"
}

Servidor → Cliente (Eventos)

start Inicio con prompt y cola delta Token incremental de texto tool Notificación de herramienta activa done Estado final (ok, error, cancel)
Despliegue Rápido

Instalación y Puesta en Marcha

Configura y lanza Cody en tu servidor Linux en menos de 3 minutos.

1. Instalación de Dependencias

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"

2. Configuración del Archivo .env

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

3. Ejecución del Servidor Web FastAPI

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

4. Lanzar el Bot de Telegram

Inicia el cliente de mensajería para interacción móvil autónoma.

# Iniciar polling del bot
python3 app.py

5. Despliegue Permanente con Systemd

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
Dudas Frecuentes

Preguntas Frecuentes

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.

Lleva tu productividad de desarrollo a otro nivel

Despliega a Cody en tu propio servidor y disfruta de un asistente de ingeniería autónomo, seguro y accesible desde cualquier lugar.