
skyvern v1.0.50
Automatiza flujos de trabajo basados en navegador con IA.
🐉 Automatiza flujos de trabajo basados en navegador usando LLMs y Visión por Computadora 🐉
Skyvern automatiza flujos de trabajo basados en navegador utilizando LLMs y visión por computadora. Proporciona un SDK compatible con Playwright que añade funcionalidad de IA sobre Playwright, así como un creador de flujos de trabajo sin código para ayudar tanto a usuarios técnicos como no técnicos a automatizar flujos de trabajo manuales en cualquier sitio web, reemplazando soluciones de automatización frágiles o poco fiables.
Los enfoques tradicionales para las automatizaciones de navegador requerían escribir scripts personalizados para los sitios web, a menudo basándose en el análisis del DOM y en interacciones basadas en XPath que se rompían cada vez que cambiaban los diseños del sitio web.
En lugar de confiar únicamente en interacciones XPath definidas por código, Skyvern se basa en LLMs de Visión para aprender e interactuar con los sitios web.
Cómo funciona
Skyvern se inspiró en el diseño de agentes autónomos impulsados por tareas popularizado por BabyAGI y AutoGPT -- con una gran ventaja adicional: le damos a Skyvern la capacidad de interactuar con sitios web utilizando bibliotecas de automatización de navegador como Playwright.
Skyvern utiliza un enjambre de agentes para comprender un sitio web, y planificar y ejecutar sus acciones:
Este enfoque tiene varias ventajas:
- Skyvern puede operar en sitios web que nunca ha visto antes, ya que es capaz de mapear elementos visuales a acciones necesarias para completar un flujo de trabajo, sin ningún código personalizado
- Skyvern es resistente a los cambios de diseño del sitio web, ya que no hay XPaths predeterminados ni otros selectores que nuestro sistema busque al intentar navegar
- Skyvern es capaz de tomar un único flujo de trabajo y aplicarlo a una gran cantidad de sitios web, ya que puede razonar a través de las interacciones necesarias para completar el flujo de trabajo Se puede encontrar un informe técnico detallado aquí.
Demo
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Inicio rápido
Skyvern Cloud
Skyvern Cloud es una versión en la nube gestionada de Skyvern que te permite ejecutar Skyvern sin preocuparte por la infraestructura. Te permite ejecutar múltiples instancias de Skyvern en paralelo y viene incluido con mecanismos de detección anti-bot, red de proxy y solucionadores de CAPTCHA.
Si deseas probarlo, ve a app.skyvern.com y crea una cuenta.
Ejecutar localmente (UI + Servidor)
Elige tu método de configuración preferido:
Base de datos predeterminada:
skyvern quickstartyskyvern run serverusan por defecto una base de datos SQLite en~/.skyvern/data.dbpara que la ruta pip funcione sin Postgres ni Docker. Para usar Postgres en su lugar, pasa--postgrespara un contenedor local o--database-stringpara una base de datos existente. Docker Compose siempre usa el servicio Postgres incluido.
Opción A: pip install (Recomendado para configuración local gestionada por Python)
Dependencias necesarias:
Adicionalmente, para Windows:
- Rust
- VS Code con herramientas de desarrollo C++ y Windows SDK
1. Instalar Skyvern```bash
pip install "skyvern[all]"
#### 2. Ejecutar Skyvern```bash
skyvern quickstart
El inicio rápido con pip usa SQLite por defecto. Para un contenedor local de Postgres, ejecuta skyvern quickstart --postgres.
Opción B: Docker Compose
Usa esta opción si quieres todo contenerizado (Postgres, API, UI) y no quieres instalar Python/Node localmente.
- Instala Docker Desktop
- Clona el repositorio: ```bash
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
- Configura tu proveedor de LLM en
.env(el comandoquickstart --docker-composea continuación lo creará desde.env.examplesi falta): ```bash cp .env.example .env # if not already creatededit .env to add your LLM API key
- Iniciar todo: ```bash
docker compose up -d
- Abre http://localhost:8080
Solución de problemas
(sqlite3.OperationalError) table organizations already exists — Has encontrado un error conocido en pip install skyvern==1.0.31. Solución:```bash
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
Si todavía estás en la versión 1.0.31 y no puedes actualizar, instala mediante uv en su lugar:```bash
uv pip install skyvern
pip install skyvern falla con ResolutionImpossible (litellm / fastmcp) — Te encontraste con un conflicto de resolución de dependencias en 1.0.31. Actualiza a 1.0.32+ o usa uv: uv pip install skyvern.
SDK
Skyvern es una extensión de Playwright que añade automatización del navegador impulsada por IA. Te da todo el poder de Playwright con capacidades adicionales de IA: usa indicaciones en lenguaje natural para interactuar con elementos, extraer datos y automatizar flujos de trabajo complejos de varios pasos.
Instalación:
- SDK de Python / API en la nube:
pip install skyvern - Servidor local + interfaz empaquetada:
pip install "skyvern[all]"y luego ejecutaskyvern quickstart - Servidor local + interfaz empaquetada con Postgres:
pip install "skyvern[all]"y luego ejecutaskyvern quickstart --postgres - Interfaz empaquetada para una API existente:
pip install "skyvern[ui]"y luego ejecutaskyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
Comandos de página impulsados por IA
Skyvern añade cuatro comandos principales de IA directamente en el objeto page:
| Command | Description |
|---|---|
page.act(prompt) | Realiza acciones usando lenguaje natural (ej., "Haz clic en el botón de inicio de sesión") |
page.extract(prompt, schema) | Extrae datos estructurados de la página con esquema JSON opcional |
page.validate(prompt) | Valida el estado de la página, devuelve bool (ej., "Verifica si el usuario ha iniciado sesión") |
page.prompt(prompt, schema) | Envía indicaciones arbitrarias al LLM con esquema de respuesta opcional |
Adicionalmente, page.agent proporciona comandos de flujo de trabajo de mayor nivel:
| Command | Description |
|---|---|
page.agent.run_task(prompt) | Ejecuta tareas complejas de varios pasos |
page.agent.login(credential_type, credential_id) | Autentica con credenciales almacenadas (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Navega y descarga archivos |
page.agent.run_workflow(workflow_id) | Ejecuta flujos de trabajo predefinidos |
Acciones de Playwright aumentadas con IA
Todas las acciones estándar de Playwright soportan un parámetro opcional prompt para la localización de elementos impulsada por IA:
| Acción | Playwright | Aumentada por IA |
|---|---|---|
| Clic | page.click("#btn") | page.click(prompt="Click login button") |
| Rellenar | page.fill("#email", "[email protected]") | page.fill(prompt="Email field", value="[email protected]") |
| Seleccionar | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Subir | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
Tres modos de interacción:```python
1. Traditional Playwright - CSS/XPath selectors
await page.click("#submit-button")
2. AI-powered - natural language
await page.click(prompt="Click the green Submit button")
3. AI fallback - tries selector first, falls back to AI if it fails
await page.click("#submit-btn", prompt="Click the Submit button")
### Comandos principales de IA - Ejemplos```python
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")
# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")
# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")
Ejemplos de inicio rápido
Ejecutar mediante UI:```bash skyvern run all
Navega a http://localhost:8080 para ejecutar tareas a través de la interfaz web. Si la interfaz de usuario empaquetada falta, `skyvern run ui` ofrecerá instalar el paquete de interfaz correspondiente. Para una configuración no interactiva, usa `skyvern run ui --install-ui` o `skyvern run all --install-ui`.
Para ejecutar solo la interfaz empaquetada contra una API de Skyvern existente, instala `skyvern[ui]` y pasa `--api-url`; la CLI deduce `--wss-url` de la URL de la API a menos que la sobrescribas. También puedes establecer `VITE_API_BASE_URL`, `VITE_WSS_BASE_URL`, `VITE_ARTIFACT_API_BASE_URL`, `VITE_SKYVERN_API_KEY` y `VITE_BROWSER_STREAMING_MODE` antes de ejecutar `skyvern run ui`.
**Python SDK:**```python
from skyvern import Skyvern
# Local mode
skyvern = Skyvern.local()
# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")
# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button") # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI login
await page.click(prompt="Add first item to cart") # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345") # AI task
SDK de TypeScript:```typescript import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" }); const browser = await skyvern.launchCloudBrowser(); const page = await browser.getWorkingPage();
// Mix Playwright with AI-powered actions await page.goto("https://example.com"); await page.click("#login-button"); // Traditional Playwright await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login await page.click({ prompt: "Add first item to cart" }); // AI-augmented click await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task
await browser.close();
**Ejecución simple de tareas:**```python
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
Advanced Usage
Control your own browser (Chrome)
Permite que Skyvern controle tu navegador Chrome existente — con todas tus cookies, inicios de sesión y extensiones.
Step 1: Habilita la depuración remota en Chrome
- Abre Chrome y navega a
chrome://inspect/#remote-debugging - Haz clic en Habilitar para iniciar el servidor de depuración
- Deberías ver: Servidor ejecutándose en: 127.0.0.1:9222
[!TIP] El comando
skyvern init browserpuede hacer esto automáticamente — abrechrome://inspect/#remote-debugging, espera a que lo habilites y guarda la configuración.
Step 2: Conecta Skyvern
Option A — Código Python:```python from skyvern import Skyvern
skyvern = Skyvern( base_url="http://localhost:8000", api_key="YOUR_API_KEY", browser_address="http://127.0.0.1:9222", ) task = await skyvern.run_task( prompt="Find the top post on hackernews today", )
**Opción B — Skyvern Service:**
Agrega dos variables a tu archivo .env:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Reinicia el servicio Skyvern skyvern run all y ejecuta la tarea a través de la UI o el código
Conecta Skyvern Cloud a tu navegador local
Permite que Skyvern Cloud controle un navegador Chrome que se ejecuta en tu máquina — con todas tus cookies, inicios de sesión y extensiones existentes. Útil para automatizar sitios en los que ya has iniciado sesión o estás detrás de una VPN.```bash
One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
Luego, usa la URL del túnel en tu tarea:```python
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
browser_address="https://abc123.ngrok-free.dev",
)
[!WARNING] Siempre usa
--api-keyal exponer tu navegador a través de un túnel. Sin él, cualquier persona con la URL tiene control total de tu navegador. Consulta la documentación de seguridad.
Consulta la documentación completa para todas las opciones, configuración manual del túnel y resolución de problemas.
Obtén un esquema de salida consistente de tu ejecución
Puedes hacerlo añadiendo el parámetro data_extraction_schema:```python
from skyvern import Skyvern
skyvern = Skyvern() task = await skyvern.run_task( prompt="Find the top post on hackernews today", data_extraction_schema={ "type": "object", "properties": { "title": { "type": "string", "description": "The title of the top post" }, "url": { "type": "string", "description": "The URL of the top post" }, "points": { "type": "integer", "description": "Number of points the post has received" } } } )
### Comandos útiles para depurar problemas```bash
# Launch the Skyvern Server Separately*
skyvern run server
# Launch the Skyvern UI
skyvern run ui
# Check status of the Skyvern service
skyvern status
# Stop the Skyvern service
skyvern stop all
# Stop the Skyvern UI
skyvern stop ui
# Stop the Skyvern Server Separately
skyvern stop server
Performance & Evaluation
Skyvern tiene un rendimiento de última generación en el benchmark WebBench con una precisión del 64.4%. El informe técnico y la evaluación se pueden encontrar aquí
Rendimiento en tareas WRITE (por ejemplo, llenar formularios, iniciar sesión, descargar archivos, etc.)
Skyvern es el agente con mejor rendimiento en tareas WRITE (por ejemplo, llenar formularios, iniciar sesión, descargar archivos, etc.), que se utilizan principalmente para tareas adyacentes a RPA (Automatización Robótica de Procesos).
Características de Skyvern
Tareas de Skyvern
Las tareas son el bloque fundamental dentro de Skyvern. Cada tarea es una solicitud única a Skyvern, indicándole que navegue por un sitio web y cumpla un objetivo específico.
Las tareas requieren que especifiques una url, un prompt, y opcionalmente pueden incluir un data schema (si deseas que la salida se ajuste a un esquema específico) y error codes (si deseas que Skyvern deje de ejecutarse en situaciones específicas).
Flujos de trabajo de Skyvern
Los flujos de trabajo son una forma de encadenar múltiples tareas para formar una unidad de trabajo cohesionada.
Por ejemplo, si quisieras descargar todas las facturas posteriores al 1 de enero, podrías crear un flujo de trabajo que primero navegara a la página de facturas, luego filtrara para mostrar solo las facturas posteriores al 1 de enero, extrajera una lista de todas las facturas elegibles y recorriera cada factura para descargarla.
Otro ejemplo es si quisieras automatizar la compra de productos en una tienda de comercio electrónico, podrías crear un flujo de trabajo que primero navegara al producto deseado, luego lo agregara al carrito. En segundo lugar, navegaría al carrito y validaría el estado del carrito. Finalmente, pasaría por el proceso de pago para comprar los artículos.
Las características de flujo de trabajo compatibles incluyen:
- Tarea de navegador
- Acción de navegador
- Extracción de datos
- Validación
- Bucles For
- Análisis de archivos
- Envío de correos electrónicos
- Indicaciones de texto
- Bloque de solicitud HTTP
- Bloque de código personalizado
- Subida de archivos al almacenamiento en bloque
- (Próximamente) Condicionales
Transmisión en vivo
Skyvern te permite transmitir en vivo el viewport del navegador a tu máquina local para que puedas ver exactamente lo que Skyvern está haciendo en la web. Esto es útil para depurar y comprender cómo Skyvern interactúa con un sitio web, e intervenir cuando sea necesario
Relleno de formularios
Skyvern es capaz de forma nativa de rellenar entradas de formularios en sitios web. Pasar información a través del navigation_goal permitirá que Skyvern comprenda la información y rellene el formulario en consecuencia.
Extracción de datos
Skyvern también es capaz de extraer datos de un sitio web.
También puedes especificar un data_extraction_schema directamente dentro del prompt principal para indicarle a Skyvern exactamente qué datos deseas extraer del sitio web, en formato jsonc. La salida de Skyvern se estructurará de acuerdo con el esquema proporcionado.
Descarga de archivos
Skyvern también es capaz de descargar archivos de un sitio web. Todos los archivos descargados se suben automáticamente al almacenamiento en bloque (si está configurado) y puedes acceder a ellos a través de la interfaz de usuario.
Autenticación
Skyvern admite varios métodos de autenticación diferentes para facilitar la automatización de tareas detrás de un inicio de sesión. Si deseas probarlo, contáctanos por correo electrónico o discord.
🔐 Soporte para 2FA (TOTP)
Skyvern admite varios métodos diferentes de 2FA para permitirte automatizar flujos de trabajo que requieren 2FA.
Ejemplos incluyen:
- 2FA basado en QR (p. ej., Google Authenticator, Authy)
- 2FA basado en correo electrónico
- 2FA basado en SMS
🔐 Obtén más información sobre el soporte para 2FA aquí.
Integraciones con gestores de contraseñas
Skyvern actualmente admite las siguientes integraciones con gestores de contraseñas:
- Bitwarden
- Servicio de credenciales personalizado (API HTTP)
- 1Password
- LastPass
Model Context Protocol (MCP)
Skyvern admite el Model Context Protocol (MCP) para permitirte usar cualquier LLM que sea compatible con MCP.
Consulta la documentación de MCP aquí
Integración con Zapier / Make.com / N8N
Skyvern admite Zapier, Make.com y N8N para permitirte conectar tus flujos de trabajo de Skyvern con otras aplicaciones.
🔐 Obtén más información sobre el soporte para 2FA aquí.
Ejemplos del mundo real de Skyvern
Nos encanta ver cómo se utiliza Skyvern en la naturaleza. Aquí hay algunos ejemplos de cómo se utiliza Skyvern para automatizar flujos de trabajo en el mundo real. ¡Abre PRs para agregar tus propios ejemplos!
Descarga de facturas en muchos sitios web diferentes
Reserva una demo para verlo en vivo
Automatiza el proceso de solicitud de empleo
Automatiza la adquisición de materiales para una empresa manufacturera
Navegar a sitios web gubernamentales para registrar cuentas o llenar formularios
Llenar formularios de contacto aleatorios
Obtener cotizaciones de seguros de proveedores de seguros en cualquier idioma
Configuración para colaboradores
Asegúrate de tener instalado uv.
- Ejecuta esto para crear tu entorno virtual (
.venv)uv sync --group dev - Realiza la configuración inicial del servidor
uv run skyvern quickstart - Navega a
http://localhost:8080en tu navegador para comenzar a usar la interfaz de usuario La CLI de Skyvern es compatible con entornos Windows, WSL, macOS y Linux.
Documentación
Puedes encontrar documentación más extensa en nuestra 📕 página de documentación. Háznos saber si algo no está claro o falta abriendo un issue o contactándonos por correo electrónico o discord.
LLMs compatibles
| Proveedor | Modelos compatibles |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | Any GPT models deployed to your Azure subscription |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | Ejecuta cualquier modelo alojado localmente a través de Ollama |
| OpenRouter | Accede a modelos a través de OpenRouter |
| OpenAI-compatible | Cualquier endpoint de API personalizado que siga el formato de API de OpenAI (a través de liteLLM) |
Para obtener una configuración detallada de LLM que incluya todas las claves de modelo disponibles, variables de entorno y configuraciones multi-modelo, consulta los documentos de configuración de LLM.
Contribuciones
¡Damos la bienvenida a PRs y sugerencias! No dudes en abrir un PR/issue o contactarnos por correo electrónico o discord. ¡Échale un vistazo a nuestra guía de contribución y a los issues "Help Wanted" para empezar!
Si deseas conversar con el repositorio de skyvern para obtener una visión general de alto nivel de cómo está estructurado, cómo construir a partir de él y cómo resolver preguntas de uso, consulta Code Sage.
Telemetría
Por defecto, Skyvern recopila estadísticas básicas de uso para ayudarnos a entender cómo se está utilizando Skyvern. Si deseas optar por no participar en la telemetría, establece la variable de entorno SKYVERN_TELEMETRY en false.
Licencia
El repositorio de código abierto de Skyvern está respaldado por una nube gestionada. Toda la lógica central que impulsa Skyvern está disponible en este repositorio de código abierto bajo la Licencia AGPL-3.0, a excepción de las medidas anti-bot disponibles en nuestra oferta de nube gestionada.
Si tienes alguna pregunta o inquietud sobre la licencia, contáctanos y estaremos encantados de ayudarte.