Skyvern
oficialServidor MCP de automação de navegador com IA — navegue em sites, preencha formulários, extraia dados e gerencie logins via Claude Code CLI
O que você pode fazer com Skyvern MCP?
-
Executar tarefas do navegador a partir de comandos em linguagem natural — Use
skyvern.run_taskpara navegar em sites e concluir objetivos como "Encontre o post mais popular do HackerNews hoje." -
Extrair dados estruturados com um esquema — Passe um
data_extraction_schemaparaskyvern.run_taske obtenha uma saída JSON consistente que corresponda às suas propriedades definidas. -
Controlar seu próprio navegador Chrome — Conecte o Skyvern a uma instância local do Chrome via depuração remota para automatizar sites usando seus cookies e logins existentes.
-
Executar interações de página com IA — Use
page.act,page.extract,page.validateoupage.agent.run_taskpara interagir com páginas usando linguagem natural em vez de seletores. -
Encadear fluxos de trabalho com várias etapas — Crie fluxos de trabalho na interface que combinam tarefas do navegador, extração de dados, validação, downloads de arquivos e requisições HTTP em uma única sequência automatizada.
Documentação
🐉 Automatize fluxos de trabalho baseados em navegador usando LLMs e Visão Computacional 🐉
Skyvern automatiza fluxos de trabalho baseados em navegador usando LLMs e visão computacional. Ele fornece um SDK compatível com Playwright que adiciona funcionalidades de IA sobre o Playwright, além de um construtor de fluxos de trabalho sem código para ajudar tanto usuários técnicos quanto não técnicos a automatizar fluxos de trabalho manuais em qualquer site, substituindo soluções de automação frágeis ou não confiáveis.
Abordagens tradicionais para automações de navegador exigiam a escrita de scripts personalizados para sites, muitas vezes dependendo de análise de DOM e interações baseadas em XPath que quebravam sempre que os layouts do site mudavam.
Em vez de depender apenas de interações XPath definidas por código, o Skyvern depende de LLMs de Visão para aprender e interagir com os sites.
Como funciona
O Skyvern foi inspirado pelo design de agente autônomo orientado a tarefas popularizado por BabyAGI e AutoGPT -- com um grande bônus: damos ao Skyvern a capacidade de interagir com sites usando bibliotecas de automação de navegador como Playwright.
O Skyvern usa um enxame de agentes para compreender um site e planejar e executar suas ações:
Esta abordagem tem algumas vantagens:
- O Skyvern pode operar em sites que nunca viu antes, pois é capaz de mapear elementos visuais para ações necessárias para completar um fluxo de trabalho, sem nenhum código personalizado
- O Skyvern é resistente a mudanças de layout do site, pois não há XPaths predeterminados ou outros seletores que nosso sistema procura ao tentar navegar
- O Skyvern é capaz de pegar um único fluxo de trabalho e aplicá-lo a um grande número de sites, pois é capaz de raciocinar sobre as interações necessárias para completar o fluxo de trabalho Um relatório técnico detalhado pode ser encontrado aqui.
Demonstração
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Início Rápido
Skyvern Cloud
Skyvern Cloud é uma versão em nuvem gerenciada do Skyvern que permite executar o Skyvern sem se preocupar com a infraestrutura. Ele permite executar várias instâncias do Skyvern em paralelo e vem com mecanismos de detecção anti-bot, rede de proxy e solucionadores de CAPTCHA integrados.
Se você quiser experimentar, navegue até app.skyvern.com e crie uma conta.
Executar Localmente (UI + Servidor)
Escolha seu método de configuração preferido:
Padrão do banco de dados:
skyvern quickstarteskyvern run serverusam como padrão um banco de dados SQLite em~/.skyvern/data.db, então o caminho do pip funciona sem Postgres ou Docker. Para usar Postgres em vez disso, passe--postgrespara um contêiner local ou--database-stringpara um banco de dados existente. O Docker Compose sempre usa o serviço Postgres integrado.
Opção A: instalação via pip (Recomendado para configuração local gerenciada por Python)
Dependências necessárias:
Adicionalmente, para Windows:
- Rust
- VS Code com ferramentas de desenvolvimento C++ e Windows SDK
1. Instalar o Skyvern
pip install "skyvern[all]"
2. Executar o Skyvern
skyvern quickstart
O início rápido via pip usa SQLite por padrão. Para um contêiner Postgres local, execute skyvern quickstart --postgres.
Opção B: Docker Compose
Use esta opção se você quiser tudo conteinerizado (Postgres, API, UI) e não quiser instalar Python/Node localmente.
- Instale o Docker Desktop
- Clone o repositório:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - Configure seu provedor de LLM em
.env(o comandoquickstart --docker-composeabaixo o criará a partir de.env.examplese estiver faltando):cp .env.example .env # if not already created # edit .env to add your LLM API key - Inicie tudo:
docker compose up -d - Abra http://localhost:8080
Solução de Problemas
(sqlite3.OperationalError) table organizations already exists — Você encontrou um bug conhecido em pip install skyvern==1.0.31. Correção:
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
Se você ainda estiver na versão 1.0.31 e não puder atualizar, instale via uv:
uv pip install skyvern
pip install skyvern falha com ResolutionImpossible (litellm / fastmcp) — Você encontrou um conflito de resolução de dependência na versão 1.0.31. Atualize para 1.0.32+ ou use uv: uv pip install skyvern.
SDK
Skyvern é uma extensão do Playwright que adiciona automação de navegador com tecnologia de IA. Ele oferece todo o poder do Playwright com capacidades adicionais de IA — use prompts em linguagem natural para interagir com elementos, extrair dados e automatizar fluxos de trabalho complexos de várias etapas.
Instalação:
- SDK Python / API da nuvem:
pip install skyvern - Servidor local + UI empacotada:
pip install "skyvern[all]"e então executeskyvern quickstart - Servidor local + UI empacotada com Postgres:
pip install "skyvern[all]"e então executeskyvern quickstart --postgres - UI empacotada para uma API existente:
pip install "skyvern[ui]"e então executeskyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
Comandos de Página com Tecnologia de IA
O Skyvern adiciona quatro comandos principais de IA diretamente no objeto da página:
| Comando | Descrição |
|---|---|
page.act(prompt) | Executa ações usando linguagem natural (ex., "Clique no botão de login") |
page.extract(prompt, schema) | Extrai dados estruturados da página com esquema JSON opcional |
page.validate(prompt) | Valida o estado da página, retorna bool (ex., "Verifique se o usuário está logado") |
page.prompt(prompt, schema) | Envia prompts arbitrários para o LLM com esquema de resposta opcional |
Adicionalmente, page.agent fornece comandos de fluxo de trabalho de nível superior:
| Comando | Descrição |
|---|---|
page.agent.run_task(prompt) | Executa tarefas complexas de várias etapas |
page.agent.login(credential_type, credential_id) | Autentica com credenciais armazenadas (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Navega e baixa arquivos |
page.agent.run_workflow(workflow_id) | Executa fluxos de trabalho pré-construídos |
Ações do Playwright Aprimoradas por IA
Todas as ações padrão do Playwright suportam um parâmetro opcional prompt para localização de elementos com tecnologia de IA:
| Ação | Playwright | Aprimorado por IA |
|---|---|---|
| Clicar | page.click("#btn") | page.click(prompt="Click login button") |
| Preencher | page.fill("#email", "a@b.com") | page.fill(prompt="Email field", value="a@b.com") |
| Selecionar | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Enviar | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
Três modos de interação:
# 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 Principais de IA - Exemplos
# 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")
Exemplos de Início Rápido
Executar via UI:
skyvern run all
Navegue até http://localhost:8080 para executar tarefas através da interface web. Se a UI empacotada estiver faltando, skyvern run ui oferecerá a instalação do pacote de UI correspondente. Para configuração não interativa, use skyvern run ui --install-ui ou skyvern run all --install-ui.
Para executar apenas a UI empacotada contra uma API Skyvern existente, instale skyvern[ui] e passe
--api-url; a CLI infere --wss-url da URL da API, a menos que você a substitua. Você também pode definir
VITE_API_BASE_URL, VITE_WSS_BASE_URL, VITE_ARTIFACT_API_BASE_URL, VITE_SKYVERN_API_KEY,
e VITE_BROWSER_STREAMING_MODE antes de executar skyvern run ui.
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 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();
Execução simples de tarefa:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
Uso Avançado
Controle seu próprio navegador (Chrome)
Deixe o Skyvern controlar seu navegador Chrome existente — com todos os seus cookies, logins e extensões.
Passo 1: Habilitar depuração remota no Chrome
- Abra o Chrome e navegue até
chrome://inspect/#remote-debugging - Clique em Ativar para iniciar o servidor de depuração
- Você deve ver: Servidor rodando em: 127.0.0.1:9222
[!DICA] O comando
skyvern init browserpode fazer isso automaticamente — ele abrechrome://inspect/#remote-debugging, espera você ativá-lo e salva a configuração.
Passo 2: Conectar o Skyvern
Opção A — Código 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",
)
Opção B — Serviço Skyvern:
Adicione duas variáveis ao seu arquivo .env:
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Reinicie o serviço Skyvern skyvern run all e execute a tarefa através da UI ou código
Conectar o Skyvern Cloud ao seu navegador local
Deixe o Skyvern Cloud controlar um navegador Chrome rodando em sua máquina — com todos os seus cookies, logins e extensões existentes. Útil para automatizar sites onde você já está logado ou atrás de uma VPN.
# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
Em seguida, use a URL do túnel em sua tarefa:
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",
)
[!AVISO] Sempre use
--api-keyao expor seu navegador através de um túnel. Sem ele, qualquer pessoa com a URL tem controle total do seu navegador. Consulte a documentação de segurança.
Consulte a documentação completa para todas as opções, configuração manual de túnel e solução de problemas.
Obter esquema de saída consistente da sua execução
Você pode fazer isso adicionando o parâmetro data_extraction_schema:
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 úteis para depurar problemas
# 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
Desempenho e Avaliação
O Skyvern tem desempenho SOTA no benchmark WebBench com uma precisão de 64,4%. O relatório técnico + avaliação pode ser encontrado aqui
Desempenho em tarefas WRITE (ex., preencher formulários, fazer login, baixar arquivos, etc)
O Skyvern é o agente de melhor desempenho em tarefas WRITE (ex., preencher formulários, fazer login, baixar arquivos, etc), que são usadas principalmente para tarefas adjacentes a RPA (Automação Robótica de Processos).
Funcionalidades do Skyvern
Tarefas do Skyvern
Tarefas são o bloco de construção fundamental dentro do Skyvern. Cada tarefa é uma única solicitação ao Skyvern, instruindo-o a navegar por um site e alcançar um objetivo específico.
Tarefas exigem que você especifique um url, prompt, e podem opcionalmente incluir um data schema (se você quiser que a saída esteja em conformidade com um esquema específico) e error codes (se você quiser que o Skyvern pare de executar em situações específicas).
Fluxos de Trabalho do Skyvern
Fluxos de trabalho são uma forma de encadear várias tarefas para formar uma unidade de trabalho coesa.
Por exemplo, se você quisesse baixar todas as faturas mais recentes que 1º de janeiro, você poderia criar um fluxo de trabalho que primeiro navegasse para a página de faturas, depois filtrasse para mostrar apenas faturas mais recentes que 1º de janeiro, extraísse uma lista de todas as faturas elegíveis e iterasse por cada fatura para baixá-la.
Outro exemplo é se você quisesse automatizar a compra de produtos de uma loja de comércio eletrônico, você poderia criar um fluxo de trabalho que primeiro navegasse para o produto desejado e depois o adicionasse a um carrinho. Em segundo lugar, navegaria para o carrinho e validaria o estado do carrinho. Finalmente, passaria pelo processo de checkout para comprar os itens.
As funcionalidades de fluxo de trabalho suportadas incluem:
- Tarefa de Navegador
- Ação de Navegador
- Extração de Dados
- Validação
- Loops For
- Análise de arquivos
- Envio de e-mails
- Prompts de Texto
- Bloco de Requisição HTTP
- Bloco de Código Personalizado
- Upload de arquivos para armazenamento em bloco
- (Em breve) Condicionais
Transmissão ao Vivo
O Skyvern permite que você transmita ao vivo a janela de visualização do navegador para sua máquina local para que você possa ver exatamente o que o Skyvern está fazendo na web. Isso é útil para depuração e compreensão de como o Skyvern está interagindo com um site, e para intervir quando necessário.
Preenchimento de Formulários
O Skyvern é nativamente capaz de preencher entradas de formulários em sites. Passar informações através do navigation_goal permitirá que o Skyvern compreenda as informações e preencha o formulário de acordo.
Extração de Dados
O Skyvern também é capaz de extrair dados de um site.
Você também pode especificar um data_extraction_schema diretamente no prompt principal para informar ao Skyvern exatamente quais dados você gostaria de extrair do site, no formato jsonc. A saída do Skyvern será estruturada de acordo com o esquema fornecido.
Download de Arquivos
O Skyvern também é capaz de baixar arquivos de um site. Todos os arquivos baixados são automaticamente enviados para o armazenamento em bloco (se configurado), e você pode acessá-los pela interface do usuário.
Autenticação
O Skyvern oferece suporte a vários métodos de autenticação diferentes para facilitar a automação de tarefas que exigem login. Se você quiser experimentar, entre em contato conosco por e-mail ou discord.
🔐 Suporte a 2FA (TOTP)
O Skyvern oferece suporte a vários métodos de 2FA para permitir que você automatize fluxos de trabalho que exigem 2FA.
Exemplos incluem:
- 2FA baseado em QR (ex.: Google Authenticator, Authy)
- 2FA baseado em e-mail
- 2FA baseado em SMS
🔐 Saiba mais sobre o suporte a 2FA aqui.
Integrações com Gerenciadores de Senhas
O Skyvern atualmente oferece suporte às seguintes integrações com gerenciadores de senhas:
- Bitwarden
- Serviço de Credenciais Personalizado (API HTTP)
- 1Password
- LastPass
Model Context Protocol (MCP)
O Skyvern oferece suporte ao Model Context Protocol (MCP) para permitir que você use qualquer LLM que suporte MCP.
Veja a documentação do MCP aqui
Integração com Zapier / Make.com / N8N
O Skyvern oferece suporte ao Zapier, Make.com e N8N para permitir que você conecte seus fluxos de trabalho do Skyvern a outros aplicativos.
🔐 Saiba mais sobre o suporte a 2FA aqui.
Exemplos reais de uso do Skyvern
Adoramos ver como o Skyvern está sendo usado no mundo real. Aqui estão alguns exemplos de como o Skyvern está sendo usado para automatizar fluxos de trabalho na prática. Por favor, abra PRs para adicionar seus próprios exemplos!
Download de Faturas em diversos sites
Agende uma demonstração para ver ao vivo
Automatizar o processo de candidatura a empregos
Automatizar a aquisição de materiais para uma empresa de manufatura
Navegar em sites governamentais para registrar contas ou preencher formulários
Preencher formulários de contato aleatórios
Obter cotações de seguro de provedores em qualquer idioma
Configuração para Contribuidores
Certifique-se de ter o uv instalado.
- Execute isto para criar seu ambiente virtual (
.venv)uv sync --group dev - Realize a configuração inicial do servidor
uv run skyvern quickstart - Navegue até
http://localhost:8080no seu navegador para começar a usar a interface do usuário A CLI do Skyvern oferece suporte aos ambientes Windows, WSL, macOS e Linux.
Documentação
Documentação mais extensa pode ser encontrada em nossa 📕 página de documentação. Por favor, nos avise se algo não estiver claro ou estiver faltando, abrindo uma issue ou entrando em contato conosco por e-mail ou discord.
LLMs Suportados
| Provedor | Modelos Suportados |
|---|---|
| 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 | Quaisquer modelos GPT implantados na sua assinatura do Azure |
| 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 | Execute qualquer modelo hospedado localmente via Ollama |
| OpenRouter | Acesse modelos através do OpenRouter |
| Compatível com OpenAI | Qualquer endpoint de API personalizado que siga o formato da API da OpenAI (via liteLLM) |
Para configuração detalhada de LLM, incluindo todas as chaves de modelo disponíveis, variáveis de ambiente e configurações de múltiplos modelos, veja a documentação de Configuração de LLM.
Contribuindo
Aceitamos PRs e sugestões! Não hesite em abrir uma PR/issue ou entrar em contato conosco por e-mail ou discord. Por favor, dê uma olhada no nosso guia de contribuição e nas issues "Help Wanted" para começar!
Se você quiser conversar com o repositório do Skyvern para obter uma visão geral de alto nível de como ele está estruturado, como desenvolvê-lo e como resolver dúvidas de uso, confira o Code Sage.
Telemetria
Por padrão, o Skyvern coleta estatísticas básicas de uso para nos ajudar a entender como o Skyvern está sendo usado. Se você quiser desativar a telemetria, defina a variável de ambiente SKYVERN_TELEMETRY como false.
Licença
O repositório de código aberto do Skyvern é suportado por uma nuvem gerenciada. Toda a lógica central que alimenta o Skyvern está disponível neste repositório de código aberto licenciado sob a Licença AGPL-3.0, com exceção das medidas anti-bot disponíveis em nossa oferta de nuvem gerenciada.
Se você tiver alguma dúvida ou preocupação sobre licenciamento, entre em contato conosco e teremos prazer em ajudar.