Automate browser-based workflows with LLMs and Computer Vision
đ Automate Browser-based workflows using LLMs and Computer Vision đ
Skyvern automates browser-based workflows using LLMs and computer vision. It provides a simple API endpoint to fully automate manual workflows on a large number of websites, replacing brittle or unreliable automation solutions.
Traditional approaches to browser automations required writing custom scripts for websites, often relying on DOM parsing and XPath-based interactions which would break whenever the website layouts changed.
Instead of only relying on code-defined XPath interactions, Skyvern relies on prompts in addition to computer vision and LLMs to parse items in the viewport in real-time, create a plan for interaction and interact with them.
This approach gives us a few advantages:
Want to see examples of Skyvern in action? Jump to #real-world-examples-of-skyvern
Skyvern was inspired by the Task-Driven autonomous agent design popularized by BabyAGI and AutoGPT â with one major bonus: we give Skyvern the ability to interact with websites using browser automation libraries like Playwright.
Skyvern uses a swarm of agents to comprehend a website, and plan and execute its actions:
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
We offer a managed cloud version of Skyvern that allows you to run Skyvern without having to manage the infrastructure. It allows you to run multiple Skyvern instances in parallel to automate your workflows at scale. In addition, Skyvern cloud comes bundled with anti-bot detection mechanisms, proxy network, and CAPTCHA solving to allow you to complete more complicated workflows.
If youâd like to try it out,
Here are some tips that may help you on your adventure:
This quickstart guide will walk you through getting Skyvern up and running on your local machine.
docker ps
to check) docker compose up -d
http://localhost:8080
in your browser to start using the UIâ ď¸ â ď¸ Only well-tested on MacOS â ď¸ â ď¸
Before you begin, make sure you have the following installed:
brew install poetry
Note: Our setup script does these two for you, but they are here for reference.
poetry env use 3.11
brew install postgresql
./setup.sh
./run_skyvern.sh
./run_ui.sh
http://localhost:8080
in your browser to start using the UIIf youâre looking to contribute to Skyvern, youâll need to install the pre-commit hooks to ensure code quality and consistency. You can do this by running the following command:
pre-commit install
Tasks are the fundamental building block inside Skyvern. Each task is a single request to Skyvern, instructing it to navigate through a website and accomplish a specific goal.
Tasks require you to specify a url
, navigation_goal
, and optionally data_extraction_goal
if youâd like to extract data from the website, and a navigation_payload
if youâd like to provide additional context to help Skyvern fill information or answer questions presented by a website.
Workflows are a way to chain multiple tasks together to form a cohesive unit of work.
For example, if you wanted to download all invoices newer than January 1st, you could create a workflow that first navigated to the invoices page, then filtered down to only show invoices newer than January 1st, extracted a list of all eligible invoices, and iterated through each invoice to download it.
Another example is if you wanted to automate purchasing products from an e-commerce store, you could create a workflow that first navigated to the desired product, then added it to a cart. Second, it would navigate to the cart and validate the cart state. Finally, it would go through the checkout process to purchase the items.
Supported workflow features include:
Skyvern allows you to livestream the viewport of the browser to your local machine so that you can see exactly what Skyvern is doing on the web. This is useful for debugging and understanding how Skyvern is interacting with a website, and intervening when necessary
Skyvern is natively capable of filling out form inputs on websites. Passing in information via the navigation_goal
or navigation_payload
will allow Skyvern to comprehend the information and fill out the form accordingly.
Skyvern is also capable of extracting data from a website. Specifying a data_extraction_goal
will allow Skyvern to extract the data and return it to you in the response.
You can also specify a data_extraction_schema
to tell Skyvern exactly what data youâd like to extract from the website, in jsonc format. Skyvernâs output will be structured in accordance to the supplied schema.
Skyvern is also capable of downloading files from a website. Specifying a file_download_goal
will allow Skyvern to download the file and return a link to the file in the response.
Skyvern supports a number of different authentication methods to make it easier to automate tasks behind a login.
Skyvern currently supports the following password manager integrations:
Skyvern supports a number of different 2FA methods to allow you to automate workflows that require 2FA.
Examples include:
We love to see how Skyvern is being used in the wild. Here are some examples of how Skyvern is being used to automate workflows in the real world. Please open PRs to add your own examples!
Youâll need to have Skyvern running locally if you want to try these examples out. Please run the following command after going through the quickstart guide:
./run_skyvern.sh
More extensive documentation can be found on our documentation website. Please let us know if something is unclear or missing by opening an issue or reaching out to us via email or discord.
Provider | Supported Models |
---|---|
OpenAI | gpt4-turbo, gpt-4o, gpt-4o-mini |
Anthropic | Claude 3 (Haiku, Sonnet, Opus), Claude 3.5 (Sonnet) |
Azure OpenAI | Any GPT models. Better performance with a multimodal llm (azure/gpt4-o) |
AWS Bedrock | Anthropic Claude 3 (Haiku, Sonnet, Opus), Claude 3.5 (Sonnet) |
Ollama | Coming soon (contributions welcome) |
Gemini | Coming soon (contributions welcome) |
Llama 3.2 | Coming soon (contributions welcome) |
Variable | Description | Type | Sample Value |
---|---|---|---|
ENABLE_OPENAI |
Register OpenAI models | Boolean | true , false |
ENABLE_ANTHROPIC |
Register Anthropic models | Boolean | true , false |
ENABLE_AZURE |
Register Azure OpenAI models | Boolean | true , false |
ENABLE_BEDROCK |
Register AWS Bedrock models | Boolean | true , false |
LLM_KEY |
The name of the model you want to use | String | Currently supported llm keys: OPENAI_GPT4_TURBO , OPENAI_GPT4V , OPENAI_GPT4O , OPENAI_GPT4O_MINI , ANTHROPIC_CLAUDE3 , ANTHROPIC_CLAUDE3_OPUS , ANTHROPIC_CLAUDE3_SONNET , ANTHROPIC_CLAUDE3_HAIKU , ANTHROPIC_CLAUDE3.5_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_OPUS , BEDROCK_ANTHROPIC_CLAUDE3_SONNET , BEDROCK_ANTHROPIC_CLAUDE3_HAIKU , BEDROCK_ANTHROPIC_CLAUDE3.5_SONNET , AZURE_OPENAI |
OPENAI_API_KEY |
OpenAI API Key | String | sk-1234567890 |
OPENAI_API_BASE |
OpenAI API Base, optional | String | https://openai.api.base |
OPENAI_ORGANIZATION |
OpenAI Organization ID, optional | String | your-org-id |
ANTHROPIC_API_KEY |
Anthropic API key | String | sk-1234567890 |
AZURE_API_KEY |
Azure deployment API key | String | sk-1234567890 |
AZURE_DEPLOYMENT |
Azure OpenAI Deployment Name | String | skyvern-deployment |
AZURE_API_BASE |
Azure deployment api base url | String | https://skyvern-deployment.openai.azure.com/ |
AZURE_API_VERSION |
Azure API Version | String | 2024-02-01 |
This is our planned roadmap for the next few months. If you have any suggestions or would like to see a feature added, please donât hesitate to reach out to us via email or discord.
We welcome PRs and suggestions! Donât hesitate to open a PR/issue or to reach out to us via email or discord.
Please have a look at our contribution guide and
âHelp Wantedâ issues to get started!
If you want to chat with the skyvern repository to get a high level overview of how it is structured, how to build off it, and how to resolve usage questions, check out Code Sage.
By Default, Skyvern collects basic usage statistics to help us understand how Skyvern is being used. If you would like to opt-out of telemetry, please set the SKYVERN_TELEMETRY
environment variable to false
.
Skyvernâs open source repository is supported via a managed cloud. All of the core logic powering Skyvern is available in this open source repository licensed under the AGPL-3.0 License, with the exception of anti-bot measures available in our managed cloud offering.
If you have any questions or concerns around licensing, please contact us and we would be happy to help.