""" Simple demonstration of the CDP feature. To test this locally, follow these steps: 1. Create a shortcut for the executable Chrome file. 2. Add the following argument to the shortcut: - On Windows: `--remote-debugging-port=9222` 3. Open a web browser and navigate to `http://localhost:9222/json/version` to verify that the Remote Debugging Protocol (CDP) is running. 4. Launch this example. @dev You need to set the `GEMINI_API_KEY` environment variable before proceeding. """ import os import sys from dotenv import load_dotenv from pydantic import SecretStr sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio from langchain_google_genai import ChatGoogleGenerativeAI from browser_use import Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig load_dotenv() api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') browser = Browser( config=BrowserConfig( headless=False, cdp_url='http://localhost:9222', ) ) controller = Controller() async def main(): task = 'In docs.google.com write my Papa a quick thank you for everything letter \n - Magnus' task += ' and save the document as pdf' model = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp', api_key=SecretStr(str(api_key))) agent = Agent( task=task, llm=model, controller=controller, browser=browser, ) await agent.run() await browser.close() input('Press Enter to close...') if __name__ == '__main__': asyncio.run(main())