en · ru
Simple Setup

Ready-to-use browser cluster for parallel execution

Selenium Grid Playwright Puppeteer

Ready-to-use Selenium, Playwright, and CDP for automated web application testing and open data collection

Start for Free

Free monthly credits

Compatibility with official documentation

Ready-made infrastructure

Available in Russia and CIS

xClouds cloud browsers — stacked browser windows running in the cloud
Chromium Edge Safari Firefox Chrome
Compatibility with Selenium, Puppeteer and Playwright

You won't have to rewrite your tests to work with our infrastructure.

Wide programming language support

If you use PHP, Python, JavaScript, TypeScript, Java, .NET (C#), Go, Ruby, Kotlin or other popular programming languages, we'll work well together!

Flexible usage model

You can use our infrastructure gradually to evaluate the workflow before fully migrating. For example, connect it only for new projects.

15-minute integration

No complex setup — just change a few lines in your code! Take any of your scripts and see for yourself with our demo cluster.

Sandbox for experiments

Our infrastructure is a great testing ground for your experiments. Use it to try migrating between testing frameworks and demonstrate capabilities to colleagues.

Partner program

Recommend our platform and earn rewards from your very first referral. Our partner program is built on fair reward conditions and honest relationships.

Run hundreds of tasks simultaneously

Extract data from dozens of sources in parallel

Render web pages in bulk to HTML and PDF

Take screenshots at any resolution for your reports

AI Agents

Give your AI agent a real cloud browser

LangChain, CrewAI, Browser Use, AutoGPT — connect in one line. 1000 free credits included.

import asyncio
from browser_use import Agent, Browser, ChatBrowserUse

XCLOUDS_CDP_API_KEY = 'your xclouds api key'
BROWSER_USE_API_KEY = 'your browser-use api key'

async def main():
    browser = Browser(cdp_url=f'wss://cdp.xclouds.dev/cdp/?api_key={XCLOUDS_CDP_API_KEY}')
    agent = Agent(
        task='Visit https://habr.com/ and search for "vpn"',
        browser=browser,
        llm=ChatBrowserUse(api_key=BROWSER_USE_API_KEY),
    )
    await agent.run()


if __name__ == "__main__":
    asyncio.run(main())

import asyncio
from langchain_openai import ChatOpenAI
from browser_use import Agent, Browser

XCLOUDS_CDP_URL = "wss://cdp.xclouds.dev/cdp/?api_key=YOUR_API_KEY"

agent = Agent(
    task="Find the latest AI news",
    llm=ChatOpenAI(model="gpt-4o"),
    browser=Browser(cdp_url=XCLOUDS_CDP_URL)
)
asyncio.run(agent.run())
from crewai.tools import tool

XCLOUDS_SELENIUM_URL = "http://selenium.xclouds.dev/wd/hub?api_key=YOUR_API_KEY"

@tool
def selenium_browser(uri):
    """Fetch a page through the xclouds remote Selenium browser."""
    from selenium import webdriver
    from selenium.common.exceptions import WebDriverException
    from selenium.webdriver.chrome.options import Options as ChromeOptions
    from urllib3.exceptions import MaxRetryError

    try:
        driver = webdriver.Remote(command_executor=XCLOUDS_SELENIUM_URL, options=ChromeOptions())
        driver.get(uri)
        page_source = driver.page_source
        driver.quit()
    except WebDriverException as e:
        print(f"Error: {e.msg}")
    except MaxRetryError as e:
        print(f"Host is unavailable")
    return page_source

# Don't like Selenium?
# You can create tool with Playwright, Puppeteer or CDP. We have it all!
# See our exmaples in proper sections after registration.
# Set PLAYWRIGHT_SERVER_URL in .env:
# wss://playwright.xclouds.dev/v1.58/?api_key=YOUR_API_KEY

# Or direct Playwright connection:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect(
        ws_endpoint='wss://playwright.xclouds.dev/v1.58/?api_key=YOUR_API_KEY'
    )
Localhost Tunnel

Test from localhost, run in the cloud

Expose your local server to a remote browser session in seconds. No config files, no port forwarding — one command.

  • Test webhooks before pushing to staging
  • Share a local prototype with teammates or clients
  • Run integration tests against localhost in CI
Try for free
terminal
$ xclouds tunnel start --authtoken AUTH_TOKEN --local-port 81
Connecting to xclouds.dev...
 Tunnel active: https://a3f7c291.tunnel.xclouds.dev