Skyvern
officielServeur MCP d'automatisation de navigateur alimenté par IA — naviguer sur des sites, remplir des formulaires, extraire des données et gérer les connexions via Claude Code CLI
Que pouvez-vous faire avec Skyvern MCP ?
- Exécuter des tâches de navigation en langage naturel — Demandez à votre assistant d'effectuer des workflows web en plusieurs étapes via
page.agent.run_task(), comme « Trouver le post le plus populaire sur hackernews aujourd'hui ». - Extraire des données structurées des pages — Utilisez
page.extract()avec un schéma JSON optionnel pour récupérer des informations spécifiques, comme les détails de commande ou les listes de produits. - Effectuer des actions Playwright augmentées par l'IA — Cliquez, remplissez, sélectionnez ou téléversez des fichiers en utilisant des invites en langage naturel au lieu de sélecteurs CSS/XPath, par exemple
page.click(prompt="Cliquez sur le bouton vert Soumettre"). - Valider l'état de la page — Utilisez
page.validate()pour vérifier des conditions comme l'état de connexion, renvoyant un résultat booléen. - S'authentifier avec des identifiants stockés — Utilisez
page.agent.login()pour vous connecter avec les identifiants Skyvern, Bitwarden ou 1Password, y compris la prise en charge de la 2FA. - Télécharger des fichiers via des invites — Demandez à
page.agent.download_files()de naviguer et de récupérer des fichiers, qui sont téléversés vers le stockage de blocs.
Documentation
🐉 Automatisez les workflows basés sur navigateur grâce aux LLM et à la vision par ordinateur 🐉
Skyvern automatise les workflows basés sur navigateur grâce aux LLM et à la vision par ordinateur. Il fournit un SDK compatible Playwright qui ajoute des fonctionnalités d'IA par-dessus Playwright, ainsi qu'un générateur de workflows sans code pour aider les utilisateurs techniques et non techniques à automatiser des workflows manuels sur n'importe quel site web, en remplaçant les solutions d'automatisation fragiles ou peu fiables.
Les approches traditionnelles de l'automatisation de navigateur exigeaient d'écrire des scripts personnalisés pour chaque site web, souvent basés sur l'analyse du DOM et des interactions via XPath, qui cassaient dès que la mise en page du site changeait.
Au lieu de s'appuyer uniquement sur des interactions XPath définies dans le code, Skyvern utilise des LLM de vision pour apprendre et interagir avec les sites web.
Comment ça fonctionne
Skyvern s'inspire de la conception d'agent autonome piloté par tâches popularisée par BabyAGI et AutoGPT — avec un avantage majeur : nous donnons à Skyvern la capacité d'interagir avec les sites web à l'aide de bibliothèques d'automatisation de navigateur comme Playwright.
Skyvern utilise un essaim d'agents pour comprendre un site web, planifier et exécuter ses actions :
Cette approche présente plusieurs avantages :
- Skyvern peut fonctionner sur des sites web qu'il n'a jamais vus, car il est capable de faire correspondre les éléments visuels aux actions nécessaires pour accomplir un workflow, sans aucun code personnalisé
- Skyvern résiste aux changements de mise en page des sites web, car aucun XPath ni autre sélecteur prédéterminé n'est recherché par notre système lors de la navigation
- Skyvern peut prendre un seul workflow et l'appliquer à un grand nombre de sites web, car il est capable de raisonner sur les interactions nécessaires pour accomplir le workflow Un rapport technique détaillé est disponible ici.
Démo
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Démarrage rapide
Skyvern Cloud
Skyvern Cloud est une version cloud gérée de Skyvern qui vous permet d'exécuter Skyvern sans vous soucier de l'infrastructure. Elle permet d'exécuter plusieurs instances Skyvern en parallèle et inclut des mécanismes anti-bot, un réseau de proxys et des solveurs de CAPTCHA.
Si vous souhaitez l'essayer, rendez-vous sur app.skyvern.com et créez un compte.
Exécution locale (interface + serveur)
Choisissez la méthode d'installation qui vous convient :
Base de données par défaut :
skyvern quickstartetskyvern run serverutilisent par défaut une base de données SQLite à~/.skyvern/data.db, de sorte que le chemin pip fonctionne sans Postgres ni Docker. Pour utiliser Postgres à la place, passez--database-stringpour une base existante (ou omettez--no-postgresafin quequickstartdémarre son propre conteneur Postgres). Docker Compose utilise toujours le service Postgres intégré.
Option A : installation pip (recommandée pour une configuration locale gérée par Python)
Dépendances requises :
En outre, sous Windows :
- Rust
- VS Code avec les outils de développement C++ et le SDK Windows
1. Installer Skyvern
pip install "skyvern[all]"
2. Exécuter Skyvern
skyvern quickstart
Le démarrage rapide pip utilise SQLite par défaut. Pour utiliser un conteneur Postgres local à la place, exécutez skyvern quickstart (le conteneur Postgres est démarré sauf si vous passez --no-postgres), ou connectez-vous à une base existante avec --database-string=postgresql+psycopg://user:pass@host:5432/dbname.
Option B : Docker Compose
Utilisez cette option si vous souhaitez que tout soit conteneurisé (Postgres, API, interface) et ne souhaitez pas installer Python/Node localement.
- Installez Docker Desktop
- Clonez le dépôt :
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - Configurez votre fournisseur LLM dans
.env(la commandequickstart --docker-composeci-dessous le créera à partir de.env.examples'il est manquant) :cp .env.example .env # if not already created # edit .env to add your LLM API key - Démarrez tout :
docker compose up -d - Ouvrez http://localhost:8080
Dépannage
(sqlite3.OperationalError) table organizations already exists — Vous avez rencontré un bug connu dans pip install skyvern==1.0.31. Correctif :
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
Si vous êtes toujours sur 1.0.31 et ne pouvez pas mettre à niveau, installez via uv à la place :
uv pip install skyvern
pip install skyvern échoue avec ResolutionImpossible (litellm / fastmcp) — Vous avez rencontré un conflit de résolution de dépendances dans 1.0.31. Mettez à niveau vers 1.0.32+ ou utilisez uv : uv pip install skyvern.
SDK
Skyvern est une extension Playwright qui ajoute l'automatisation de navigateur pilotée par IA. Elle vous offre toute la puissance de Playwright avec des capacités d'IA supplémentaires — utilisez des invites en langage naturel pour interagir avec les éléments, extraire des données et automatiser des workflows complexes en plusieurs étapes.
Installation :
- SDK Python / API cloud :
pip install skyvern - Serveur local + interface packagée :
pip install "skyvern[all]"puis exécutezskyvern quickstart - Serveur local + interface packagée avec Postgres :
pip install "skyvern[all]"puis exécutezskyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname - Interface packagée pour une API existante :
pip install "skyvern[ui]"puis définissezVITE_API_BASE_URL(etVITE_SKYVERN_API_KEYsi votre API requiert une clé) et exécutezskyvern run ui - TypeScript :
npm install @skyvern/client
Commandes de page pilotées par IA
Skyvern ajoute quatre commandes IA principales directement sur l'objet page :
| Commande | Description |
|---|---|
page.act(prompt) | Effectuer des actions en langage naturel (par ex., « Cliquer sur le bouton de connexion ») |
page.extract(prompt, schema) | Extraire des données structurées de la page avec un schéma JSON facultatif |
page.validate(prompt) | Valider l'état de la page, renvoie bool (par ex., « Vérifier si l'utilisateur est connecté ») |
page.prompt(prompt, schema) | Envoyer des invites arbitraires au LLM avec un schéma de réponse facultatif |
De plus, page.agent fournit des commandes de workflow de niveau supérieur :
| Commande | Description |
|---|---|
page.agent.run_task(prompt) | Exécuter des tâches complexes en plusieurs étapes |
page.agent.login(credential_type, credential_id) | S'authentifier avec des identifiants stockés (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Naviguer et télécharger des fichiers |
page.agent.run_workflow(workflow_id) | Exécuter des workflows préconstruits |
Actions Playwright augmentées par IA
Toutes les actions Playwright standard prennent en charge un paramètre facultatif prompt pour la localisation d'éléments pilotée par IA :
| Action | Playwright | Augmenté par IA |
|---|---|---|
| Clic | page.click("#btn") | page.click(prompt="Click login button") |
| Saisie | page.fill("#email", "a@b.com") | page.fill(prompt="Email field", value="a@b.com") |
| Sélection | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Téléversement | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
Trois modes d'interaction :
# 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")
Commandes IA principales — Exemples
# 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")
Exemples de démarrage rapide
Exécution via l'interface :
skyvern run all
Accédez à http://localhost:8080 pour exécuter des tâches via l'interface web. Si l'interface packagée est manquante, skyvern run ui proposera d'installer le package d'interface correspondant.
Pour exécuter uniquement l'interface packagée avec une API Skyvern existante, installez skyvern[ui] et définissez les
variables d'environnement ci-dessous avant d'exécuter skyvern run ui :
VITE_API_BASE_URL(par ex.http://localhost:8000/api/v1) — pointe l'interface vers votre API SkyvernVITE_SKYVERN_API_KEY— la clé API si votre API en requiert uneVITE_WSS_BASE_URL— point de terminaison WebSocket (déduit deVITE_API_BASE_URLs'il n'est pas défini)VITE_ARTIFACT_API_BASE_URL— URL de base pour les téléchargements d'artefactsVITE_BROWSER_STREAMING_MODE— mode de diffusion du viewport du navigateur
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();
Exécution de tâche simple :
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
Utilisation avancée
Contrôler votre propre navigateur (Chrome)
Laissez Skyvern contrôler votre navigateur Chrome existant — avec tous vos cookies, connexions et extensions.
Étape 1 : Activer le débogage à distance dans Chrome
- Ouvrez Chrome et accédez à
chrome://inspect/#remote-debugging - Cliquez sur Activer pour démarrer le serveur de débogage
- Vous devriez voir : Serveur en cours d'exécution sur : 127.0.0.1:9222
[!TIP] La commande
skyvern init browserpeut le faire automatiquement — elle ouvrechrome://inspect/#remote-debugging, attend que vous l'activiez, et enregistre la configuration.
Étape 2 : Connecter Skyvern
Option A — Code 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",
)
Option B — Service Skyvern :
Ajoutez deux variables à votre fichier .env :
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Redémarrez le service Skyvern skyvern run all et exécutez la tâche via l'interface ou le code
Connecter Skyvern Cloud à votre navigateur local
Laissez Skyvern Cloud contrôler un navigateur Chrome exécuté sur votre machine — avec tous vos cookies, connexions et extensions existants. Utile pour automatiser des sites sur lesquels vous êtes déjà connecté ou derrière un VPN.
# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
Utilisez ensuite l'URL du tunnel dans votre tâche :
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",
)
[!ATTENTION] Utilisez toujours
--api-keylorsque vous exposez votre navigateur via un tunnel. Sans cela, toute personne disposant de l'URL a un contrôle total sur votre navigateur. Consultez la documentation de sécurité.
Consultez la documentation complète pour toutes les options, la configuration manuelle du tunnel et le dépannage.
Obtenir un schéma de sortie cohérent de votre exécution
Vous pouvez le faire en ajoutant le paramètre 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"
}
}
}
)
Commandes utiles pour déboguer les problèmes
# 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
Performances et évaluation
Skyvern atteint des performances de pointe sur le benchmark WebBench avec une précision de 64,4 %. Le rapport technique et l'évaluation sont disponibles ici
Performances sur les tâches WRITE (ex. remplir des formulaires, se connecter, télécharger des fichiers, etc.)
Skyvern est l'agent le plus performant sur les tâches WRITE (ex. remplir des formulaires, se connecter, télécharger des fichiers, etc.), principalement utilisées pour les tâches proches de la RPA (Robotic Process Automation).
Fonctionnalités de Skyvern
Tâches Skyvern
Les tâches sont les éléments fondamentaux de Skyvern. Chaque tâche est une requête unique adressée à Skyvern, lui demandant de naviguer sur un site web et d'accomplir un objectif précis.
Les tâches exigent de spécifier un url, un prompt, et peuvent facultativement inclure un data schema (si vous souhaitez que la sortie respecte un schéma spécifique) et un error codes (si vous souhaitez que Skyvern s'arrête dans des situations particulières).
Workflows Skyvern
Les workflows permettent d'enchaîner plusieurs tâches pour former une unité de travail cohérente.
Par exemple, si vous souhaitez télécharger toutes les factures datant d'après le 1er janvier, vous pouvez créer un workflow qui navigue d'abord vers la page des factures, filtre ensuite pour n'afficher que les factures postérieures au 1er janvier, extrait la liste de toutes les factures éligibles, puis parcourt chaque facture pour la télécharger.
Un autre exemple : si vous souhaitez automatiser l'achat de produits sur une boutique en ligne, vous pouvez créer un workflow qui navigue d'abord vers le produit souhaité, puis l'ajoute au panier. Ensuite, il naviguerait vers le panier et validerait l'état du panier. Enfin, il passerait par le processus de paiement pour acheter les articles.
Les fonctionnalités de workflow prises en charge incluent :
- Tâche navigateur
- Action navigateur
- Extraction de données
- Validation
- Boucles For
- Analyse de fichiers
- Envoi d'e-mails
- Invites textuelles
- Bloc de requête HTTP
- Bloc de code personnalisé
- Téléversement de fichiers vers le stockage de blocs
- (Bientôt disponible) Conditionnelles
Diffusion en direct
Skyvern vous permet de diffuser en direct le viewport du navigateur vers votre machine locale afin que vous puissiez voir exactement ce que Skyvern fait sur le web. C'est utile pour le débogage, pour comprendre comment Skyvern interagit avec un site web et pour intervenir si nécessaire.
Remplissage de formulaires
Skyvern est nativement capable de remplir les champs de formulaires sur les sites web. En passant des informations via le navigation_goal, Skyvern pourra comprendre les informations et remplir le formulaire en conséquence.
Extraction de données
Skyvern est également capable d'extraire des données d'un site web.
Vous pouvez également spécifier un data_extraction_schema directement dans l'invite principale pour indiquer à Skyvern exactement quelles données vous souhaitez extraire du site web, au format jsonc. La sortie de Skyvern sera structurée conformément au schéma fourni.
Téléchargement de fichiers
Skyvern est également capable de télécharger des fichiers depuis un site web. Tous les fichiers téléchargés sont automatiquement envoyés vers le stockage par blocs (si configuré), et vous pouvez y accéder via l'interface utilisateur.
Authentification
Skyvern prend en charge plusieurs méthodes d'authentification différentes pour faciliter l'automatisation des tâches derrière une connexion. Si vous souhaitez l'essayer, veuillez nous contacter par e-mail ou discord.
🔐 Prise en charge de la 2FA (TOTP)
Skyvern prend en charge plusieurs méthodes de 2FA différentes pour vous permettre d'automatiser des flux de travail qui nécessitent une 2FA.
Exemples :
- 2FA basée sur QR (par exemple Google Authenticator, Authy)
- 2FA par e-mail
- 2FA par SMS
🔐 En savoir plus sur la prise en charge de la 2FA ici.
Intégrations de gestionnaires de mots de passe
Skyvern prend actuellement en charge les intégrations de gestionnaires de mots de passe suivantes :
- Bitwarden
- Service d'identifiants personnalisé (API HTTP)
- 1Password
- LastPass
Protocole de contexte de modèle (MCP)
Skyvern prend en charge le protocole de contexte de modèle (MCP) pour vous permettre d'utiliser tout LLM prenant en charge MCP.
Voir la documentation MCP ici
Intégration Zapier / Make.com / N8N
Skyvern prend en charge Zapier, Make.com et N8N pour vous permettre de connecter vos flux de travail Skyvern à d'autres applications.
🔐 En savoir plus sur la prise en charge de la 2FA ici.
Exemples concrets d'utilisation de Skyvern
Nous aimons voir comment Skyvern est utilisé dans le monde réel. Voici quelques exemples de la façon dont Skyvern est utilisé pour automatiser des flux de travail dans le monde réel. Veuillez ouvrir des PR pour ajouter vos propres exemples !
Téléchargement de factures sur de nombreux sites web
Réservez une démo pour le voir en direct
Automatiser le processus de candidature à un emploi
Automatiser l'approvisionnement en matériaux pour une entreprise manufacturière
Naviguer sur des sites gouvernementaux pour créer des comptes ou remplir des formulaires
Remplir des formulaires de contact aléatoires
Obtenir des devis d'assurance auprès de fournisseurs d'assurance dans n'importe quelle langue
Configuration pour les contributeurs
Assurez-vous d'avoir uv installé.
- Exécutez ceci pour créer votre environnement virtuel (
.venv)uv sync --group dev - Effectuez la configuration initiale du serveur
uv run skyvern quickstart - Accédez à
http://localhost:8080dans votre navigateur pour commencer à utiliser l'interface utilisateur L'interface CLI de Skyvern prend en charge les environnements Windows, WSL, macOS et Linux.
Documentation
Une documentation plus complète est disponible sur notre 📕 page de documentation. Veuillez nous faire savoir si quelque chose n'est pas clair ou manquant en ouvrant une issue ou en nous contactant par e-mail ou discord.
LLM pris en charge
| Fournisseur | Modèles pris en charge |
|---|---|
| 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 | Tous les modèles GPT déployés sur votre abonnement 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 | Exécutez n'importe quel modèle hébergé localement via Ollama |
| OpenRouter | Accédez aux modèles via OpenRouter |
| Compatible OpenAI | Tout point de terminaison API personnalisé qui suit le format API d'OpenAI (via liteLLM) |
Pour une configuration détaillée des LLM, y compris toutes les clés de modèle disponibles, les variables d'environnement et les configurations multi-modèles, consultez la documentation de configuration LLM.
Contribuer
Nous accueillons les PR et les suggestions ! N'hésitez pas à ouvrir une PR/issue ou à nous contacter par e-mail ou discord. Veuillez consulter notre guide de contribution et les issues "Help Wanted" pour commencer !
Si vous souhaitez discuter avec le dépôt skyvern pour obtenir une vue d'ensemble de sa structure, de la façon de l'étendre et de résoudre les questions d'utilisation, consultez Code Sage.
Télémétrie
Par défaut, Skyvern collecte des statistiques d'utilisation de base pour nous aider à comprendre comment Skyvern est utilisé. Si vous souhaitez vous désinscrire de la télémétrie, veuillez définir la variable d'environnement SKYVERN_TELEMETRY sur false.
Licence
Le dépôt open source de Skyvern est soutenu par un cloud géré. Toute la logique principale qui alimente Skyvern est disponible dans ce dépôt open source sous licence AGPL-3.0, à l'exception des mesures anti-bot disponibles dans notre offre cloud gérée.
Si vous avez des questions ou des préoccupations concernant les licences, veuillez nous contacter et nous serons heureux de vous aider.