Computer use con Claude: tutorial de automatización UI sin API
Tutorial para automatizar tareas en navegador o desktop con Claude computer use cuando el sistema destino no tiene API. Código real, casos, costos y límites.
Computer use es la capacidad de Claude (vía API de Anthropic) para ver una pantalla, decidir acciones (clic, tipeo, navegación) y ejecutarlas. Es la solución cuando el sistema destino NO tiene API y no se puede integrar formalmente. Útil para automatizar portales legacy, herramientas internas sin API, sistemas de proveedores que solo ofrecen UI. Este tutorial entrega los casos donde sí conviene, código mínimo para empezar, costos reales y límites importantes que evitan sorpresas.
Cuándo conviene computer use
Computer use es la última opción, no la primera. Antes de usar computer use, descartar:
- ¿El sistema tiene API REST o GraphQL? Usar API directa.
- ¿El sistema tiene MCP server oficial o comunitario? Usar MCP.
- ¿Hay scraper estructurado disponible? Usar scraper.
- ¿La acción es repetible mediante RPA tradicional (UiPath, Power Automate)? Evaluar costo vs computer use.
Si TODAS las opciones anteriores no aplican, computer use es candidato. Casos típicos donde sí conviene:
- Portales legacy de proveedores sin API.
- Sistemas internos heredados que requieren autenticación interactiva.
- Operaciones puntuales de baja frecuencia donde RPA es excesivo.
- Procesos donde la UI cambia ocasionalmente (computer use se adapta).
Cómo funciona técnicamente
Computer use combina 3 capacidades de Claude:
- Vision: lee screenshot de la pantalla y entiende su contenido.
- Reasoning: decide qué acción ejecutar basado en el objetivo y el estado actual.
- Tool calling: invoca tools predefinidas (screenshot, mouse move, mouse click, keyboard type, etc.).
El cliente (tu código) implementa las tools que efectivamente mueven el mouse, hacen clic, tipean. Claude solo decide; la ejecución es responsabilidad del cliente. Esto da control total sobre el ambiente (sandbox, VM, container) y permite seguridad.
Setup mínimo en Python
pip install anthropic pillow pyautoguiPara corridas seguras recomendamos VM o container (no en tu máquina principal):
docker run -it --rm --network host \
-v $(pwd):/work \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
ubuntu:24.04 bashEn Python:
from anthropic import Anthropic
import pyautogui
import io
import base64
client = Anthropic()
def take_screenshot() -> str:
"""Captura pantalla y retorna en base64."""
img = pyautogui.screenshot()
buffer = io.BytesIO()
img.save(buffer, format='PNG')
return base64.b64encode(buffer.getvalue()).decode('utf-8')
def execute_action(action: dict):
"""Ejecuta la acción decidida por Claude."""
if action['action'] == 'click':
x, y = action['coordinate']
pyautogui.click(x, y)
elif action['action'] == 'type':
pyautogui.write(action['text'], interval=0.05)
elif action['action'] == 'key':
pyautogui.press(action['key'])
# ... más acciones según necesidad
def agent_loop(goal: str, max_iterations: int = 20):
messages = [{"role": "user", "content": goal}]
for iteration in range(max_iterations):
screenshot_b64 = take_screenshot()
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
tools=[{
"type": "computer_20250101",
"name": "computer",
"display_width_px": 1920,
"display_height_px": 1080,
}],
messages=messages + [
{
"role": "user",
"content": [{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": screenshot_b64,
},
}],
}
],
)
# Si Claude indica que terminó, salir
if response.stop_reason == 'end_turn':
print("Objetivo cumplido")
break
# Ejecutar las tool calls
for block in response.content:
if block.type == 'tool_use':
execute_action(block.input)
agent_loop("Abre el portal SII y descarga el último Form 29")
Este código es esquemático. Para producción requiere manejo robusto de errores, reintentos, validación de estados y guardrails.
Casos donde sí lo usamos en clientes
- Descarga periódica de declaraciones desde portal SII (cuando la API directa tiene limitaciones del caso específico).
- Procesamiento de portales de proveedores que solo entregan respuestas en UI.
- Generación de reportes en sistemas legacy de RRHH/contabilidad sin API.
- Carga puntual de información en plataformas regulatorias que aún no tienen API.
Costos y límites
Costos
Computer use consume tokens de input significativos (cada screenshot ocupa miles de tokens). Para una tarea típica de 15-20 pasos con Opus 4.7: USD 0.50-2.00 por ejecución completa. Para 100 ejecuciones/día: USD 50-200/día (CLP 1.5-6M/mes).
Reducir costo usando Sonnet 4.6 (10x más barato) cuando la calidad lo permite, screenshots a resolución menor, paginación de pasos.
Límites importantes
- No es determinista: la misma tarea puede tomar más o menos pasos según el estado del sistema.
- Vulnerable a cambios visuales del sistema destino (re-diseño, A/B testing del proveedor).
- Latencia alta: cada paso requiere screenshot + LLM call + ejecución (~5-10 segundos por paso).
- Riesgo de error en operaciones críticas: NUNCA usar para operaciones destructivas sin human-in-the-loop.
- Captcha y autenticación 2FA pueden bloquear ejecución.
- Algunos sistemas tienen términos que prohíben automatización no autorizada.
Patrones de seguridad obligatorios
- Ejecutar en VM o container aislado, no en máquina principal.
- Limitar credenciales al mínimo necesario (cuenta específica con permisos reducidos).
- Logging completo de cada acción ejecutada para auditoría posterior.
- Human-in-the-loop para operaciones destructivas (eliminar, pagar, enviar).
- Timeout máximo para evitar loops infinitos.
- Rate limiting para evitar gastos descontrolados.
- Validación post-acción: verificar que el estado esperado se alcanzó antes de seguir.
Alternativas cuando computer use no es la respuesta
- Playwright + scripting: para automatizaciones de navegador estables y de alta frecuencia.
- RPA tradicional (UiPath, Power Automate): mejor TCO para procesos repetitivos volumen alto.
- Construir adapter custom: si el sistema tiene autoridad legal/comercial para integración, exigir API.
- Combinación: Playwright para navegación + Claude vision para extracción de campos no estructurados.
Computer use con Claude paso a paso
Cinco pasos desde setup hasta primera tarea ejecutada.
- 15 min
Setup ambiente
Container o VM + dependencias.
- Docker container con dependencias Python
- API key de Anthropic configurada
- 30 min
Implementar tools
Funciones de screenshot, click, type, key.
- take_screenshot con pyautogui
- execute_action con dispatcher
- 30 min
Agent loop
Loop que itera hasta cumplir objetivo o agotar iteraciones.
- Conversación stateful con Claude
- Procesar tool_use blocks
- Validar condición de término
- 30 min
Guardrails
Logging, validación, human-in-the-loop, timeout.
- Logging estructurado
- Lista blanca de acciones permitidas
- Confirmación humana para destructivas
- 15 min
Prueba real
Ejecutar tarea simple end-to-end.
- Caso simple: navegar URL + extraer info
- Revisar logs + ajustar
Preguntas frecuentes
Da el siguiente paso
Hablemos
Cuéntanos sobre tu negocio. Respondemos en 24 horas.
Otros canales
Escríbenos por WhatsApp o agenda una llamada de 30 minutos.